diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-13 21:49:15 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-13 21:49:15 +0000 |
commit | 4dcff7533534e4b634b349a1105c7862d1655405 (patch) | |
tree | 61674abfb88ba63870bec8576101dc3d222454fa /java/sca/modules/binding-ws-axis2/src/main/java | |
parent | c6a1c369e49090b6b9a6f2448045740a368c7ca3 (diff) |
Replace RuntimeWire with RuntimeEnpoint/RuntimeEndpointReference as the owner of invocaiton chains
(http://www.mail-archive.com/dev@tuscany.apache.org/msg07856.html)
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@836009 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/binding-ws-axis2/src/main/java')
3 files changed, 16 insertions, 32 deletions
diff --git a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingProviderFactory.java b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingProviderFactory.java index a04e0d54e5..0e847cf982 100644 --- a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingProviderFactory.java +++ b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingProviderFactory.java @@ -20,8 +20,6 @@ package org.apache.tuscany.sca.binding.ws.axis2; import java.util.List; -import org.apache.tuscany.sca.assembly.Endpoint; -import org.apache.tuscany.sca.assembly.EndpointReference; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.FactoryExtensionPoint; @@ -34,6 +32,8 @@ import org.apache.tuscany.sca.provider.ServiceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; import org.apache.tuscany.sca.runtime.RuntimeComponentReference; import org.apache.tuscany.sca.runtime.RuntimeComponentService; +import org.apache.tuscany.sca.runtime.RuntimeEndpoint; +import org.apache.tuscany.sca.runtime.RuntimeEndpointReference; /** * Axis2BindingProviderFactory @@ -57,11 +57,11 @@ public class Axis2BindingProviderFactory implements BindingProviderFactory<WebSe dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class); } - public ReferenceBindingProvider createReferenceBindingProvider(EndpointReference endpointReference) { + public ReferenceBindingProvider createReferenceBindingProvider(RuntimeEndpointReference endpointReference) { return new Axis2ReferenceBindingProvider(endpointReference, modelFactories, dataBindings); } - public ServiceBindingProvider createServiceBindingProvider(Endpoint endpoint) { + public ServiceBindingProvider createServiceBindingProvider(RuntimeEndpoint endpoint) { return new Axis2ServiceBindingProvider(endpoint, servletHost, modelFactories, dataBindings); } diff --git a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java index b6aac923a0..a0dea01cd2 100644 --- a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java +++ b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java @@ -19,7 +19,6 @@ package org.apache.tuscany.sca.binding.ws.axis2; import org.apache.axiom.om.OMElement; -import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; @@ -29,6 +28,7 @@ import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.provider.ServiceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; import org.apache.tuscany.sca.runtime.RuntimeComponentService; +import org.apache.tuscany.sca.runtime.RuntimeEndpoint; import org.oasisopen.sca.ServiceRuntimeException; public class Axis2ServiceBindingProvider implements ServiceBindingProvider { @@ -39,7 +39,7 @@ public class Axis2ServiceBindingProvider implements ServiceBindingProvider { private Axis2ServiceProvider axisProvider; - public Axis2ServiceBindingProvider(Endpoint endpoint, + public Axis2ServiceBindingProvider(RuntimeEndpoint endpoint, ServletHost servletHost, FactoryExtensionPoint modelFactories, DataBindingExtensionPoint dataBindings) { @@ -62,7 +62,7 @@ public class Axis2ServiceBindingProvider implements ServiceBindingProvider { InterfaceContract contract = wsBinding.getBindingInterfaceContract(); contract.getInterface().resetDataBinding(OMElement.class.getName()); - axisProvider = new Axis2ServiceProvider(component, service, wsBinding, servletHost, messageFactory, modelFactories); + axisProvider = new Axis2ServiceProvider(endpoint, component, service, wsBinding, servletHost, messageFactory, modelFactories); } public void start() { diff --git a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java index 1ee885b004..90cc3cd31a 100644 --- a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java +++ b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java @@ -77,7 +77,6 @@ import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.assembly.EndpointReference; -import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; import org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceClient.URIResolverImpl; import org.apache.tuscany.sca.binding.ws.axis2.policy.authentication.token.Axis2TokenAuthenticationPolicy; @@ -98,8 +97,7 @@ import org.apache.tuscany.sca.policy.PolicySet; import org.apache.tuscany.sca.policy.PolicySubject; import org.apache.tuscany.sca.policy.authentication.basic.BasicAuthenticationPolicy; import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; -import org.apache.tuscany.sca.runtime.RuntimeWire; +import org.apache.tuscany.sca.runtime.RuntimeEndpoint; import org.apache.tuscany.sca.xsd.XSDefinition; import org.apache.ws.commons.schema.XmlSchema; import org.apache.ws.commons.schema.XmlSchemaExternal; @@ -117,6 +115,7 @@ public class Axis2ServiceProvider { private static final Logger logger = Logger.getLogger(Axis2ServiceProvider.class.getName()); + private RuntimeEndpoint endpoint; private RuntimeComponent component; private AbstractContract contract; private WebServiceBinding wsBinding; @@ -159,13 +158,14 @@ public class Axis2ServiceProvider { public static final List<QName> XSD_QNAME_LIST = Arrays.asList(new QName[] {Q_ELEM_XSD_1999, Q_ELEM_XSD_2000, Q_ELEM_XSD_2001}); - public Axis2ServiceProvider(RuntimeComponent component, + public Axis2ServiceProvider(RuntimeEndpoint endpoint, + RuntimeComponent component, AbstractContract contract, WebServiceBinding wsBinding, ServletHost servletHost, MessageFactory messageFactory, final FactoryExtensionPoint modelFactories) { - + this.endpoint = endpoint; this.component = component; this.contract = contract; this.wsBinding = wsBinding; @@ -696,27 +696,11 @@ public class Axis2ServiceProvider { from.setCallbackEndpoint(callbackEndpoint); } - // find the runtime wire and invoke it with the message - RuntimeWire wire = ((RuntimeComponentService)contract).getRuntimeWire(getBinding()); - - // TODO - EPR - if there is no wire then find the wire for the SCA binding - // because this WS endpoint is providing remote support for the - // SCA binding - if (wire == null){ - for(RuntimeWire tmpWire : ((RuntimeComponentService)contract).getRuntimeWires()){ - if (tmpWire.getEndpoint().getBinding() instanceof SCABinding){ - wire = tmpWire; - break; - } - } + Message response = endpoint.invoke(op, msg); + if(response.isFault()) { + throw new InvocationTargetException((Throwable) response.getBody()); } - Object response = wire.invoke(op, msg); - - return response; - } - - public boolean isConversational() { - return wsBinding.getBindingInterfaceContract().getInterface().isConversational(); + return response.getBody(); } /** |