class FailureExposingHttpClient extends AbstractHttpClientDecorator {

    public HttpResponse execute(HttpHost host, HttpRequest req, HttpContext ctx)
            throws IOException, ClientProtocolException {
        HttpResponse resp = backend.execute(host, req, ctx);
        if (assessor.isFailure(resp)) {
            throw new UnsuccessfulResponseException(resp);
        }
        return resp;
    }

    public  FailureExposingHttpClient(HttpClient backend);
    public  FailureExposingHttpClient(HttpClient backend, ResponseFailureAssessor assessor);

}