HTTPCLIENT-1777: fixed binary compatibility with 4.4
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/4.5.x@1778410 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
bc5d688a4f
commit
75f7b398ea
|
@ -100,7 +100,7 @@ public final class HttpProxyConfigurationActivator implements BundleActivator, M
|
|||
props.put(Constants.SERVICE_VENDOR, context.getBundle().getHeaders().get(Constants.BUNDLE_VENDOR));
|
||||
props.put(Constants.SERVICE_DESCRIPTION, BUILDER_FACTORY_SERVICE_NAME);
|
||||
clientFactory = context.registerService(HttpClientBuilderFactory.class.getName(),
|
||||
new OSGiClientBuilderFactory(configurator, httpClientTracker),
|
||||
new OSGiHttpClientBuilderFactory(configurator, httpClientTracker),
|
||||
props);
|
||||
|
||||
props.clear();
|
||||
|
@ -108,7 +108,7 @@ public final class HttpProxyConfigurationActivator implements BundleActivator, M
|
|||
props.put(Constants.SERVICE_VENDOR, context.getBundle().getHeaders().get(Constants.BUNDLE_VENDOR));
|
||||
props.put(Constants.SERVICE_DESCRIPTION, CACHEABLE_BUILDER_FACTORY_SERVICE_NAME);
|
||||
cachingClientFactory = context.registerService(CachingHttpClientBuilderFactory.class.getName(),
|
||||
new OSGiCachingClientBuilderFactory(configurator, httpClientTracker),
|
||||
new OSGiCachingHttpClientBuilderFactory(configurator, httpClientTracker),
|
||||
props);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,16 +30,13 @@ import org.apache.http.impl.client.CloseableHttpClient;
|
|||
import org.apache.http.impl.client.cache.CachingHttpClientBuilder;
|
||||
import org.apache.http.osgi.services.CachingHttpClientBuilderFactory;
|
||||
|
||||
/**
|
||||
* @since 4.3
|
||||
*/
|
||||
final class OSGiCachingClientBuilderFactory implements CachingHttpClientBuilderFactory {
|
||||
final class OSGiCachingHttpClientBuilderFactory implements CachingHttpClientBuilderFactory {
|
||||
|
||||
private final HttpClientBuilderConfigurator configurator;
|
||||
|
||||
private final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker;
|
||||
|
||||
OSGiCachingClientBuilderFactory(
|
||||
OSGiCachingHttpClientBuilderFactory(
|
||||
final HttpClientBuilderConfigurator configurator,
|
||||
final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker) {
|
||||
this.configurator = configurator;
|
|
@ -26,35 +26,50 @@
|
|||
*/
|
||||
package org.apache.http.osgi.impl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.osgi.services.HttpClientBuilderFactory;
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.framework.ServiceRegistration;
|
||||
|
||||
/**
|
||||
* @since 4.3
|
||||
*
|
||||
* @deprecated (4.5). No longer used.
|
||||
*/
|
||||
final class OSGiClientBuilderFactory implements HttpClientBuilderFactory {
|
||||
@Deprecated
|
||||
public final class OSGiClientBuilderFactory implements HttpClientBuilderFactory {
|
||||
|
||||
private final HttpClientBuilderConfigurator configurator;
|
||||
private final BundleContext bundleContext;
|
||||
|
||||
private final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker;
|
||||
private final Map<String, ServiceRegistration> registeredConfigurations;
|
||||
|
||||
OSGiClientBuilderFactory(
|
||||
final HttpClientBuilderConfigurator configurator,
|
||||
final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker) {
|
||||
this.configurator = configurator;
|
||||
this.httpClientTracker = httpClientTracker;
|
||||
private final List<CloseableHttpClient> trackedHttpClients;
|
||||
|
||||
public OSGiClientBuilderFactory(
|
||||
final BundleContext bundleContext,
|
||||
final Map<String, ServiceRegistration> registeredConfigurations,
|
||||
final List<CloseableHttpClient> trackedHttpClients) {
|
||||
this.bundleContext = bundleContext;
|
||||
this.registeredConfigurations = registeredConfigurations;
|
||||
this.trackedHttpClients = trackedHttpClients;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpClientBuilder newBuilder() {
|
||||
return configurator.configure(new HttpClientBuilder() {
|
||||
return new HttpClientBuilder() {
|
||||
@Override
|
||||
public CloseableHttpClient build() {
|
||||
final CloseableHttpClient client = super.build();
|
||||
httpClientTracker.track(client);
|
||||
return client;
|
||||
final CloseableHttpClient httpClient = super.build();
|
||||
synchronized (trackedHttpClients) {
|
||||
trackedHttpClients.add(httpClient);
|
||||
}
|
||||
});
|
||||
return httpClient;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
* ====================================================================
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
* ====================================================================
|
||||
*
|
||||
* This software consists of voluntary contributions made by many
|
||||
* individuals on behalf of the Apache Software Foundation. For more
|
||||
* information on the Apache Software Foundation, please see
|
||||
* <http://www.apache.org/>.
|
||||
*
|
||||
*/
|
||||
package org.apache.http.osgi.impl;
|
||||
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.osgi.services.HttpClientBuilderFactory;
|
||||
|
||||
final class OSGiHttpClientBuilderFactory implements HttpClientBuilderFactory {
|
||||
|
||||
private final HttpClientBuilderConfigurator configurator;
|
||||
|
||||
private final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker;
|
||||
|
||||
OSGiHttpClientBuilderFactory(
|
||||
final HttpClientBuilderConfigurator configurator,
|
||||
final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker) {
|
||||
this.configurator = configurator;
|
||||
this.httpClientTracker = httpClientTracker;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpClientBuilder newBuilder() {
|
||||
return configurator.configure(new HttpClientBuilder() {
|
||||
@Override
|
||||
public CloseableHttpClient build() {
|
||||
final CloseableHttpClient client = super.build();
|
||||
httpClientTracker.track(client);
|
||||
return client;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue