diff options
Diffstat (limited to '')
6 files changed, 25 insertions, 11 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingInvoker.java b/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingInvoker.java index 4af8c3ca14..e6e85447a9 100644 --- a/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingInvoker.java +++ b/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingInvoker.java @@ -233,11 +233,13 @@ class AtomBindingInvoker implements Invoker { } } else if (status == 404) { + response.getEntity().consumeContent(); if (provider.supportsFeedEntries()) msg.setFaultBody(new NotFoundException()); else msg.setFaultBody(new org.apache.tuscany.sca.data.collection.NotFoundException()); } else { + response.getEntity().consumeContent(); msg.setFaultBody(new ServiceRuntimeException("HTTP status code: " + status)); } diff --git a/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java b/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java index a160925e4e..9d41fd2a50 100644 --- a/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java +++ b/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java @@ -26,6 +26,7 @@ import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.databinding.Mediator; import org.apache.tuscany.sca.host.http.ServletHost; import org.apache.tuscany.sca.host.http.ServletHostHelper; +import org.apache.tuscany.sca.host.http.client.HttpClientFactory; import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.provider.BindingProviderFactory; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; @@ -43,16 +44,18 @@ public class AtomBindingProviderFactory implements BindingProviderFactory<AtomBi private MessageFactory messageFactory; private Mediator mediator; private ServletHost servletHost; + private HttpClientFactory httpClientFactory; public AtomBindingProviderFactory(ExtensionPointRegistry extensionPoints) { this.servletHost = ServletHostHelper.getServletHost(extensionPoints); FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); this.messageFactory = modelFactories.getFactory(MessageFactory.class); this.mediator = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class).getUtility(Mediator.class); + this.httpClientFactory = HttpClientFactory.getInstance(extensionPoints); } public ReferenceBindingProvider createReferenceBindingProvider(RuntimeEndpointReference endpointReference) { - return new AtomReferenceBindingProvider(endpointReference, mediator); + return new AtomReferenceBindingProvider(httpClientFactory, endpointReference, mediator); } public ServiceBindingProvider createServiceBindingProvider(RuntimeEndpoint endpoint) { diff --git a/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomReferenceBindingProvider.java b/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomReferenceBindingProvider.java index 9f4ea496c1..024705803f 100644 --- a/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomReferenceBindingProvider.java +++ b/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomReferenceBindingProvider.java @@ -39,6 +39,7 @@ import org.apache.tuscany.sca.runtime.RuntimeComponentReference; * @version $Rev$ $Date$ */ class AtomReferenceBindingProvider implements ReferenceBindingProvider { + private HttpClientFactory httpClientFactory; private EndpointReference endpointReference; private RuntimeComponentReference reference; private AtomBinding binding; @@ -56,11 +57,13 @@ class AtomReferenceBindingProvider implements ReferenceBindingProvider { * @param binding * @param mediator */ - AtomReferenceBindingProvider(EndpointReference endpointReference, + AtomReferenceBindingProvider(HttpClientFactory httpClientFactory, + EndpointReference endpointReference, Mediator mediator) { + this.httpClientFactory = httpClientFactory; this.endpointReference = endpointReference; - this.reference = (RuntimeComponentReference) endpointReference.getReference(); - this.binding = (AtomBinding) endpointReference.getBinding(); + this.reference = (RuntimeComponentReference)endpointReference.getReference(); + this.binding = (AtomBinding)endpointReference.getBinding(); this.mediator = mediator; // Prepare authorization header @@ -121,8 +124,7 @@ class AtomReferenceBindingProvider implements ReferenceBindingProvider { // Find the get operation on the reference interface // Create an HTTP client - HttpClientFactory clientFactory = new HttpClientFactory(); - httpClient = clientFactory.createHttpClient(); + httpClient = httpClientFactory.createHttpClient(); } public void stop() { diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java index 526283c8fa..348b76bd14 100644 --- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java +++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java @@ -183,6 +183,10 @@ public class JSONRPCBindingInvoker implements Invoker, DataExchangeSemantics { // JavaScript exceptions. throw new ServiceRuntimeException("Unable to parse response", e); } + } else { + // Consume the content so the connection can be released + response.getEntity().consumeContent(); + throw new ServiceRuntimeException("Abnormal HTTP response: " + response.getStatusLine().toString()); } } catch (Exception e) { // e.printStackTrace(); diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java index c9b9328b61..8ecadf4a92 100644 --- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java +++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java @@ -24,6 +24,7 @@ import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.host.http.ServletHost; import org.apache.tuscany.sca.host.http.ServletHostHelper; +import org.apache.tuscany.sca.host.http.client.HttpClientFactory; import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.provider.BindingProviderFactory; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; @@ -40,16 +41,18 @@ public class JSONRPCBindingProviderFactory implements BindingProviderFactory<JSO private MessageFactory messageFactory; private ServletHost servletHost; + private HttpClientFactory httpClientFactory; public JSONRPCBindingProviderFactory(ExtensionPointRegistry extensionPoints) { this.servletHost = ServletHostHelper.getServletHost(extensionPoints); FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); messageFactory = modelFactories.getFactory(MessageFactory.class); + this.httpClientFactory = HttpClientFactory.getInstance(extensionPoints); } public ReferenceBindingProvider createReferenceBindingProvider(RuntimeEndpointReference endpointReference) { - return new JSONRPCReferenceBindingProvider(endpointReference); + return new JSONRPCReferenceBindingProvider(httpClientFactory, endpointReference); } public ServiceBindingProvider createServiceBindingProvider(RuntimeEndpoint endpoint) { diff --git a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java index d0b24a0253..f7fda6e83c 100644 --- a/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java +++ b/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java @@ -39,10 +39,11 @@ public class JSONRPCReferenceBindingProvider implements ReferenceBindingProvider private RuntimeComponentReference reference; private InterfaceContract referenceContract; + private HttpClientFactory httpClientFactory; private HttpClient httpClient; - public JSONRPCReferenceBindingProvider(EndpointReference endpointReference) { - + public JSONRPCReferenceBindingProvider(HttpClientFactory httpClientFactory, EndpointReference endpointReference) { + this.httpClientFactory = httpClientFactory; this.endpointReference = endpointReference; this.reference = (RuntimeComponentReference)endpointReference.getReference(); @@ -74,8 +75,7 @@ public class JSONRPCReferenceBindingProvider implements ReferenceBindingProvider public void start() { // Create an HTTP client - HttpClientFactory clientFactory = new HttpClientFactory(); - httpClient = clientFactory.createHttpClient(); + httpClient = httpClientFactory.createHttpClient(); } public void stop() { |