class PerHostServiceWrappedHttpClient extends AbstractHttpClientDecorator {

    public HttpResponse execute(HttpHost host, HttpRequest req, HttpContext ctx)
            throws IOException, ClientProtocolException {
        host = getCanonicalHost(host);
        HttpClient client = clients.get(host);
        if (client == null) {
            ServiceWrapper wrapper = factory.getWrapperWithName(host.toHostString());
            client = new ServiceWrappedHttpClient(backend, wrapper);
            clients.put(host, client);
        }
        return client.execute(host, req, ctx);
    }

    public  PerHostServiceWrappedHttpClient(HttpClient backend, ServiceWrapperFactory factory);

}