diff options
author | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2009-06-19 15:37:36 +0000 |
---|---|---|
committer | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2009-06-19 15:37:36 +0000 |
commit | 9b8fd2b5139dce38fdd0f032676881ac885b31ac (patch) | |
tree | 3991e1579db942202433b8e229d5160cee1ba27b /java/sca/modules/binding-ws-axis2 | |
parent | 7f94dc1acc9bd08d246ddeeb5f4bfd0c5e3f76b1 (diff) |
TUSCANY-3101 pass EndpointReference and Endpoint in to binding providers rather than component/reference or service/binding
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@786552 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/binding-ws-axis2')
4 files changed, 35 insertions, 19 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 cc65988553..a04e0d54e5 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,6 +20,8 @@ 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; @@ -55,19 +57,12 @@ public class Axis2BindingProviderFactory implements BindingProviderFactory<WebSe dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class); } - public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - WebServiceBinding binding) { - return new Axis2ReferenceBindingProvider(component, reference, binding, - modelFactories, dataBindings); + public ReferenceBindingProvider createReferenceBindingProvider(EndpointReference endpointReference) { + return new Axis2ReferenceBindingProvider(endpointReference, modelFactories, dataBindings); } - public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - WebServiceBinding binding) { - return new Axis2ServiceBindingProvider(component, service, binding, - servletHost, modelFactories, - dataBindings); + public ServiceBindingProvider createServiceBindingProvider(Endpoint endpoint) { + return new Axis2ServiceBindingProvider(endpoint, servletHost, modelFactories, dataBindings); } public Class<WebServiceBinding> getModelType() { diff --git a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java index 184d02642e..2aabce9937 100644 --- a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java +++ b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java @@ -19,6 +19,7 @@ package org.apache.tuscany.sca.binding.ws.axis2; import org.apache.axiom.om.OMElement; +import org.apache.tuscany.sca.assembly.EndpointReference; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; @@ -33,17 +34,20 @@ import org.oasisopen.sca.ServiceRuntimeException; public class Axis2ReferenceBindingProvider implements ReferenceBindingProvider { + private RuntimeComponent component; + private RuntimeComponentReference reference; private WebServiceBinding wsBinding; + private Axis2ServiceClient axisClient; - public Axis2ReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - WebServiceBinding wsBinding, + public Axis2ReferenceBindingProvider(EndpointReference endpointReference, FactoryExtensionPoint modelFactories, DataBindingExtensionPoint dataBindings) { MessageFactory messageFactory = modelFactories.getFactory(MessageFactory.class); - this.wsBinding = wsBinding; + this.wsBinding = (WebServiceBinding)endpointReference.getBinding(); + this.component = (RuntimeComponent)endpointReference.getComponent(); + this.reference = (RuntimeComponentReference)endpointReference.getReference(); // A WSDL document should always be present in the binding if (wsBinding.getWSDLDocument() == null) { 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 5306a519ab..b6aac923a0 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,6 +19,7 @@ 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; @@ -32,12 +33,13 @@ import org.oasisopen.sca.ServiceRuntimeException; public class Axis2ServiceBindingProvider implements ServiceBindingProvider { + private RuntimeComponent component; + private RuntimeComponentService service; private WebServiceBinding wsBinding; + private Axis2ServiceProvider axisProvider; - public Axis2ServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - WebServiceBinding wsBinding, + public Axis2ServiceBindingProvider(Endpoint endpoint, ServletHost servletHost, FactoryExtensionPoint modelFactories, DataBindingExtensionPoint dataBindings) { @@ -47,7 +49,9 @@ public class Axis2ServiceBindingProvider implements ServiceBindingProvider { } MessageFactory messageFactory = modelFactories.getFactory(MessageFactory.class); - this.wsBinding = wsBinding; + this.wsBinding = (WebServiceBinding)endpoint.getBinding(); + this.component = (RuntimeComponent)endpoint.getComponent(); + this.service = (RuntimeComponentService)endpoint.getService(); // A WSDL document should always be present in the binding if (wsBinding.getWSDLDocument() == null) { 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 1749872ea1..fc39c8c055 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 @@ -83,6 +83,7 @@ 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; @@ -835,6 +836,18 @@ public class Axis2ServiceProvider { // 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; + } + } + } Object response = wire.invoke(op, msg); return response; |