summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTReferenceBindingProvider.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTReferenceBindingProvider.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTReferenceBindingProvider.java b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTReferenceBindingProvider.java
index e218f32573..71d7aa79ba 100644
--- a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTReferenceBindingProvider.java
+++ b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTReferenceBindingProvider.java
@@ -19,8 +19,10 @@
package org.apache.tuscany.sca.binding.rest.provider;
+import org.apache.http.client.HttpClient;
import org.apache.tuscany.sca.binding.rest.RESTBinding;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.host.http.client.HttpClientFactory;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Invoker;
@@ -33,18 +35,22 @@ import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
public class RESTReferenceBindingProvider implements EndpointReferenceProvider {
private ExtensionPointRegistry registry;
private RuntimeEndpointReference endpointReference;
+
+ private HttpClientFactory httpClientFactory;
+ private HttpClient httpClient;
public RESTReferenceBindingProvider(ExtensionPointRegistry registry, RuntimeEndpointReference endpointReference) {
super();
this.registry = registry;
this.endpointReference = endpointReference;
+ this.httpClientFactory = HttpClientFactory.getInstance(registry);
}
public void configure() {
}
public Invoker createInvoker(Operation operation) {
- return new RESTBindingInvoker(registry, (RESTBinding)endpointReference.getBinding(), operation);
+ return new RESTBindingInvoker(registry, (RESTBinding)endpointReference.getBinding(), operation, httpClient);
}
public InterfaceContract getBindingInterfaceContract() {
@@ -56,9 +62,14 @@ public class RESTReferenceBindingProvider implements EndpointReferenceProvider {
}
public void start() {
+ // Create an HTTP client
+ httpClient = httpClientFactory.createHttpClient();
}
public void stop() {
+ if (httpClient != null) {
+ httpClient.getConnectionManager().shutdown();
+ }
}
}