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_VENDOR, context.getBundle().getHeaders().get(Constants.BUNDLE_VENDOR));
|
||||||
props.put(Constants.SERVICE_DESCRIPTION, BUILDER_FACTORY_SERVICE_NAME);
|
props.put(Constants.SERVICE_DESCRIPTION, BUILDER_FACTORY_SERVICE_NAME);
|
||||||
clientFactory = context.registerService(HttpClientBuilderFactory.class.getName(),
|
clientFactory = context.registerService(HttpClientBuilderFactory.class.getName(),
|
||||||
new OSGiClientBuilderFactory(configurator, httpClientTracker),
|
new OSGiHttpClientBuilderFactory(configurator, httpClientTracker),
|
||||||
props);
|
props);
|
||||||
|
|
||||||
props.clear();
|
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_VENDOR, context.getBundle().getHeaders().get(Constants.BUNDLE_VENDOR));
|
||||||
props.put(Constants.SERVICE_DESCRIPTION, CACHEABLE_BUILDER_FACTORY_SERVICE_NAME);
|
props.put(Constants.SERVICE_DESCRIPTION, CACHEABLE_BUILDER_FACTORY_SERVICE_NAME);
|
||||||
cachingClientFactory = context.registerService(CachingHttpClientBuilderFactory.class.getName(),
|
cachingClientFactory = context.registerService(CachingHttpClientBuilderFactory.class.getName(),
|
||||||
new OSGiCachingClientBuilderFactory(configurator, httpClientTracker),
|
new OSGiCachingHttpClientBuilderFactory(configurator, httpClientTracker),
|
||||||
props);
|
props);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,16 +30,13 @@ import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.cache.CachingHttpClientBuilder;
|
import org.apache.http.impl.client.cache.CachingHttpClientBuilder;
|
||||||
import org.apache.http.osgi.services.CachingHttpClientBuilderFactory;
|
import org.apache.http.osgi.services.CachingHttpClientBuilderFactory;
|
||||||
|
|
||||||
/**
|
final class OSGiCachingHttpClientBuilderFactory implements CachingHttpClientBuilderFactory {
|
||||||
* @since 4.3
|
|
||||||
*/
|
|
||||||
final class OSGiCachingClientBuilderFactory implements CachingHttpClientBuilderFactory {
|
|
||||||
|
|
||||||
private final HttpClientBuilderConfigurator configurator;
|
private final HttpClientBuilderConfigurator configurator;
|
||||||
|
|
||||||
private final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker;
|
private final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker;
|
||||||
|
|
||||||
OSGiCachingClientBuilderFactory(
|
OSGiCachingHttpClientBuilderFactory(
|
||||||
final HttpClientBuilderConfigurator configurator,
|
final HttpClientBuilderConfigurator configurator,
|
||||||
final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker) {
|
final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker) {
|
||||||
this.configurator = configurator;
|
this.configurator = configurator;
|
|
@ -26,35 +26,50 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.http.osgi.impl;
|
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.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
||||||
import org.apache.http.osgi.services.HttpClientBuilderFactory;
|
import org.apache.http.osgi.services.HttpClientBuilderFactory;
|
||||||
|
import org.osgi.framework.BundleContext;
|
||||||
|
import org.osgi.framework.ServiceRegistration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 4.3
|
* @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(
|
private final List<CloseableHttpClient> trackedHttpClients;
|
||||||
final HttpClientBuilderConfigurator configurator,
|
|
||||||
final HttpProxyConfigurationActivator.HttpClientTracker httpClientTracker) {
|
public OSGiClientBuilderFactory(
|
||||||
this.configurator = configurator;
|
final BundleContext bundleContext,
|
||||||
this.httpClientTracker = httpClientTracker;
|
final Map<String, ServiceRegistration> registeredConfigurations,
|
||||||
|
final List<CloseableHttpClient> trackedHttpClients) {
|
||||||
|
this.bundleContext = bundleContext;
|
||||||
|
this.registeredConfigurations = registeredConfigurations;
|
||||||
|
this.trackedHttpClients = trackedHttpClients;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpClientBuilder newBuilder() {
|
public HttpClientBuilder newBuilder() {
|
||||||
return configurator.configure(new HttpClientBuilder() {
|
return new HttpClientBuilder() {
|
||||||
@Override
|
@Override
|
||||||
public CloseableHttpClient build() {
|
public CloseableHttpClient build() {
|
||||||
final CloseableHttpClient client = super.build();
|
final CloseableHttpClient httpClient = super.build();
|
||||||
httpClientTracker.track(client);
|
synchronized (trackedHttpClients) {
|
||||||
return client;
|
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