Here is a clean working solution :-)
@Singleton
public class RestEasyConfig {
@Inject
@MyConfig
private Integer httpClientMaxConnectionsPerRoute;
@Inject
@MyConfig
private Integer httpClientTimeoutMillis;
@Inject
@MyConfig
private Integer httpClientMaxTotalConnections;
@Produces
private ClientExecutor clientExecutor;
@PostConstruct
public void createExecutor() {
final BasicHttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, this.httpClientTimeoutMillis);
final SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
final ThreadSafeClientConnManager connManager = new ThreadSafeClientConnManager(schemeRegistry);
connManager.setDefaultMaxPerRoute(this.httpClientMaxConnectionsPerRoute);
connManager.setMaxTotal(this.httpClientMaxTotalConnections);
final HttpClient httpClient = new DefaultHttpClient(connManager, params);
this.clientExecutor = new ApacheHttpClient4Executor(httpClient);
}
}