From c1feaec0db0ef74488bda2d64513e1b7b2e8ab34 Mon Sep 17 00:00:00 2001 From: slaws Date: Fri, 19 Jun 2009 15:54:54 +0000 Subject: TUSCANY-3092 - bring up remote version of binding.sca and include it in the build git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@786563 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/assembly/DistributedSCABinding.java | 4 +- ...onentReferenceEndpointReferenceBuilderImpl.java | 18 ++++- .../axis2/impl/Axis2SCABindingProviderFactory.java | 16 ++--- .../impl/Axis2SCAReferenceBindingProvider.java | 36 ++++++---- .../axis2/impl/Axis2SCAServiceBindingProvider.java | 40 +++++++---- .../sca/axis2/impl/Axis2SCAServiceProvider.java | 82 ---------------------- .../sca/binding/sca/axis2/AsynchTestCase.java | 1 + .../sca/binding/sca/axis2/PromotionTestCase.java | 2 + .../impl/HelloWorldServiceCallbackRemoteImpl.java | 4 ++ .../resources/asynchReference/HelloWorld.composite | 2 +- .../asynchReference/META-INF/sca-contribution.xml | 2 +- .../resources/asynchService/HelloWorld.composite | 2 +- .../asynchService/META-INF/sca-contribution.xml | 2 +- .../callbackReference/HelloWorld.composite | 2 +- .../META-INF/sca-contribution.xml | 2 +- .../resources/callbackService/HelloWorld.composite | 2 +- .../callbackService/META-INF/sca-contribution.xml | 2 +- .../promotionReference/HelloWorld.composite | 2 +- .../HelloWorldComponent.composite | 2 +- .../META-INF/sca-contribution.xml | 2 +- .../promotionService/HelloWorld.composite | 2 +- .../promotionService/HelloWorldComponent.composite | 2 +- .../promotionService/META-INF/sca-contribution.xml | 2 +- .../invocation/impl/CallbackReferenceImpl.java | 20 ++++-- .../impl/EndpointReferenceBuilderImpl.java | 20 ++++-- java/sca/modules/pom.xml | 1 + 26 files changed, 125 insertions(+), 147 deletions(-) delete mode 100644 java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java (limited to 'java/sca/modules') diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DistributedSCABinding.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DistributedSCABinding.java index f8adb980be..8fb4215e36 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DistributedSCABinding.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DistributedSCABinding.java @@ -24,8 +24,8 @@ import org.apache.tuscany.sca.assembly.SCABinding; /** * Represents an SCA binding used in the distributed runtime. - * At the moment just provides us with a sensibly named type - * against which the distributed sca binding providers can be registered + * It provides us with a sensibly named type against which + * distributed sca binding providers can be registered * * @version $Rev: 556322 $ $Date: 2007-07-14 19:53:15 +0100 (Sat, 14 Jul 2007) $ */ diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java index 5439ca538f..34c169bf40 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java @@ -38,6 +38,7 @@ import org.apache.tuscany.sca.assembly.Multiplicity; import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.assembly.impl.SCABindingImpl; import org.apache.tuscany.sca.definitions.Definitions; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; @@ -237,7 +238,15 @@ public class ComponentReferenceEndpointReferenceBuilderImpl extends BaseBuilderI // signify that this reference is pointing at some unwired endpoint EndpointReference endpointRef = createEndpointRef( component, reference, binding, null, false ); - endpointRef.setTargetEndpoint(createEndpoint(false)); + if (binding instanceof SCABinding){ + // Assume that the system need to resolve this binding later as + // it's the SCA binding + endpointRef.setTargetEndpoint(createEndpoint(true)); + } else { + // The user has configured a binding so assume they know what + // they are doing and mark in as already resolved. + endpointRef.setTargetEndpoint(createEndpoint(false)); + } endpointRef.setIsRemoteReference(true); reference.getEndpointReferences().add(endpointRef); continue; @@ -278,9 +287,12 @@ public class ComponentReferenceEndpointReferenceBuilderImpl extends BaseBuilderI } } else { // create endpoint reference for manually configured bindings with resolved endpoint - // to signify that this reference is pointing at some unwired endpoint + // to signify that this reference is pointing at some unwired endpoint. The endpoint + // is given the configured binding as a representation of the endpoint configuration. EndpointReference endpointRef = createEndpointRef( component, reference, binding, null, false ); - endpointRef.setTargetEndpoint(createEndpoint( false )); + Endpoint endpoint = createEndpoint( false ); + endpoint.setBinding(binding); + endpointRef.setTargetEndpoint(endpoint); endpointRef.setIsRemoteReference(true); reference.getEndpointReferences().add(endpointRef); } // end if diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java b/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java index 45331114a5..4e3f6d82e7 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java +++ b/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java @@ -20,6 +20,8 @@ package org.apache.tuscany.sca.binding.sca.axis2.impl; import org.apache.tuscany.sca.assembly.DistributedSCABinding; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.provider.BindingProviderFactory; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; @@ -41,18 +43,12 @@ public class Axis2SCABindingProviderFactory implements BindingProviderFactory getModelType() { diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java b/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java index ef92540e9c..77ec50b097 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java +++ b/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java @@ -23,10 +23,10 @@ import java.util.logging.Logger; import org.apache.axiom.om.OMElement; import org.apache.tuscany.sca.assembly.DistributedSCABinding; +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.WebServiceBindingFactory; -import org.apache.tuscany.sca.binding.ws.axis2.Axis2ReferenceBindingProvider; import org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.FactoryExtensionPoint; @@ -34,6 +34,8 @@ import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.invocation.Invoker; +import org.apache.tuscany.sca.provider.BindingProviderFactory; +import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; import org.apache.tuscany.sca.runtime.RuntimeComponentReference; @@ -50,20 +52,19 @@ public class Axis2SCAReferenceBindingProvider implements ReferenceBindingProvide private RuntimeComponent component; private RuntimeComponentReference reference; private SCABinding binding; - private Axis2ReferenceBindingProvider axisReferenceBindingProvider; + + private ReferenceBindingProvider axisReferenceBindingProvider; private WebServiceBinding wsBinding; - public Axis2SCAReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - DistributedSCABinding binding, + public Axis2SCAReferenceBindingProvider(EndpointReference endpointReference, ExtensionPointRegistry extensionPoints) { FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); DataBindingExtensionPoint dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class); - this.component = component; - this.reference = reference; - this.binding = binding.getSCABinding(); + this.component = (RuntimeComponent)endpointReference.getComponent(); + this.reference = (RuntimeComponentReference)endpointReference.getReference(); + this.binding = ((DistributedSCABinding)endpointReference.getBinding()).getSCABinding(); // build a ws binding model wsBinding = modelFactories.getFactory(WebServiceBindingFactory.class).createWebServiceBinding(); @@ -76,12 +77,21 @@ public class Axis2SCAReferenceBindingProvider implements ReferenceBindingProvide InterfaceContract contract = wsBinding.getBindingInterfaceContract(); contract.getInterface().resetDataBinding(OMElement.class.getName()); + // create a copy of the endpoint reference but with the web service binding in + EndpointReference epr = null; + try { + epr = (EndpointReference)endpointReference.clone(); + } catch (Exception ex){ + // we know we can clone endpoint references + } + epr.setBinding(wsBinding); + // create the real Axis2 reference binding provider - axisReferenceBindingProvider = new Axis2ReferenceBindingProvider(component, - reference, - wsBinding, - modelFactories, - dataBindings); + ProviderFactoryExtensionPoint providerFactories = + extensionPoints.getExtensionPoint(ProviderFactoryExtensionPoint.class); + BindingProviderFactory providerFactory = + (BindingProviderFactory) providerFactories.getProviderFactory(WebServiceBinding.class); + axisReferenceBindingProvider = providerFactory.createReferenceBindingProvider(epr); } public InterfaceContract getBindingInterfaceContract() { diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java b/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java index 10387c62cc..27f669b889 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java +++ b/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java @@ -23,10 +23,11 @@ import java.util.logging.Logger; import org.apache.axiom.om.OMElement; import org.apache.tuscany.sca.assembly.DistributedSCABinding; +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.WebServiceBindingFactory; -import org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceProvider; import org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.FactoryExtensionPoint; @@ -34,6 +35,8 @@ import org.apache.tuscany.sca.host.http.ServletHost; import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.invocation.MessageFactory; +import org.apache.tuscany.sca.provider.BindingProviderFactory; +import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint; import org.apache.tuscany.sca.provider.ServiceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; import org.apache.tuscany.sca.runtime.RuntimeComponentService; @@ -48,16 +51,17 @@ public class Axis2SCAServiceBindingProvider implements ServiceBindingProvider { private static final Logger logger = Logger.getLogger(Axis2SCAServiceBindingProvider.class.getName()); + private RuntimeComponent component; + private RuntimeComponentService service; private SCABinding binding; - private Axis2ServiceProvider axisProvider; + + private ServiceBindingProvider axisProvider; private WebServiceBinding wsBinding; private boolean started = false; - public Axis2SCAServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - DistributedSCABinding binding, + public Axis2SCAServiceBindingProvider(Endpoint endpoint, ExtensionPointRegistry extensionPoints) { ServletHostExtensionPoint servletHosts = extensionPoints.getExtensionPoint(ServletHostExtensionPoint.class); @@ -65,7 +69,9 @@ public class Axis2SCAServiceBindingProvider implements ServiceBindingProvider { FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); MessageFactory messageFactory = modelFactories.getFactory(MessageFactory.class); - this.binding = binding.getSCABinding(); + this.component = (RuntimeComponent)endpoint.getComponent(); + this.service = (RuntimeComponentService)endpoint.getService(); + this.binding = ((DistributedSCABinding)endpoint.getBinding()).getSCABinding(); // create a ws binding model wsBinding = modelFactories.getFactory(WebServiceBindingFactory.class).createWebServiceBinding(); @@ -79,14 +85,22 @@ public class Axis2SCAServiceBindingProvider implements ServiceBindingProvider { InterfaceContract contract = wsBinding.getBindingInterfaceContract(); contract.getInterface().resetDataBinding(OMElement.class.getName()); + // create a copy of the endpoint but with the web service binding in + Endpoint ep = null; + try { + ep = (Endpoint)endpoint.clone(); + } catch (Exception ex){ + // we know we can clone endpoint references + } + ep.setBinding(wsBinding); + // create the real Axis2 service provider - axisProvider = new Axis2SCAServiceProvider(component, - service, - this.binding, - wsBinding, - servletHost, - messageFactory, - modelFactories); + ProviderFactoryExtensionPoint providerFactories = + extensionPoints.getExtensionPoint(ProviderFactoryExtensionPoint.class); + BindingProviderFactory providerFactory = + (BindingProviderFactory) providerFactories.getProviderFactory(WebServiceBinding.class); + axisProvider = providerFactory.createServiceBindingProvider(ep); + } public InterfaceContract getBindingInterfaceContract() { diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java b/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java deleted file mode 100644 index 51a175a9e6..0000000000 --- a/java/sca/modules/binding-sca-axis2-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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. - */ - -package org.apache.tuscany.sca.binding.sca.axis2.impl; - -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.SCABinding; -import org.apache.tuscany.sca.binding.ws.WebServiceBinding; -import org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceProvider; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.host.http.ServletHost; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -/** - * A specialization of the Axis2BindingProvider that just switches in the SCABinding model - * element when it is required. The SCABinding is required as the service binding provider - * finds the service wire based on the binding - * - * @version $Rev$ $Date$ - */ -public class Axis2SCAServiceProvider extends Axis2ServiceProvider { - - private SCABinding binding; - - /** - * Switch in the fake ws binding - * - * @param component - * @param service - * @param binding - * @param wsBinding - * @param servletHost - * @param messageFactory - */ - public Axis2SCAServiceProvider(RuntimeComponent component, - RuntimeComponentService service, - SCABinding binding, - WebServiceBinding wsBinding, - ServletHost servletHost, - MessageFactory messageFactory, - FactoryExtensionPoint modelFactories) { - - super(component, - service, - wsBinding, - servletHost, - messageFactory, - modelFactories); - - this.binding = binding; - } - - /** - * Return the sca binding as wires will be registered against this rather - * than against the wsBinding that the Axis2SCAServiceProvider is - * expecting - * - * @return the binding - */ - @Override - protected Binding getBinding(){ - return binding; - } -} diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/AsynchTestCase.java b/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/AsynchTestCase.java index 128fdfa91f..a2424e02a6 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/AsynchTestCase.java +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/AsynchTestCase.java @@ -28,6 +28,7 @@ import org.apache.tuscany.sca.node.Node; import org.apache.tuscany.sca.node.NodeFactory; import org.junit.AfterClass; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; public class AsynchTestCase { diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/PromotionTestCase.java b/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/PromotionTestCase.java index ce62d393b0..30919c5cb0 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/PromotionTestCase.java +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/PromotionTestCase.java @@ -26,6 +26,7 @@ import org.apache.tuscany.sca.node.Node; import org.apache.tuscany.sca.node.NodeFactory; import org.junit.AfterClass; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; public class PromotionTestCase { @@ -62,6 +63,7 @@ public class PromotionTestCase { } @Test + @Ignore public void testHelloWorldPromotion() throws Exception { HelloWorldClient helloWorldClientA; helloWorldClientA = nodeA.getService(HelloWorldClient.class, "AHelloWorldClientRemotePromotion"); diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceCallbackRemoteImpl.java b/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceCallbackRemoteImpl.java index 04477579ef..b15d6dea80 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceCallbackRemoteImpl.java +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceCallbackRemoteImpl.java @@ -27,6 +27,10 @@ public class HelloWorldServiceCallbackRemoteImpl implements HelloWorldServiceCal @Callback protected HelloWorldCallbackRemote theCallback; + + public HelloWorldServiceCallbackRemoteImpl() { + System.out.println("Constructor"); + } public String getGreetingsRemote(String s) { return "Hello " + theCallback.getGreetingsCallbackRemote(s); diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/HelloWorld.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/HelloWorld.composite index 6921187621..51489a5cd9 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/HelloWorld.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/HelloWorld.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/META-INF/sca-contribution.xml b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/META-INF/sca-contribution.xml index 2ad4f4ae66..00afc5b7f4 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/META-INF/sca-contribution.xml +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchReference/META-INF/sca-contribution.xml @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - \ No newline at end of file diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/HelloWorld.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/HelloWorld.composite index 3d7c5f5832..0c1720540b 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/HelloWorld.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/HelloWorld.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/META-INF/sca-contribution.xml b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/META-INF/sca-contribution.xml index 2ad4f4ae66..00afc5b7f4 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/META-INF/sca-contribution.xml +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/asynchService/META-INF/sca-contribution.xml @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - \ No newline at end of file diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/HelloWorld.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/HelloWorld.composite index cfa601871b..13a8b98277 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/HelloWorld.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/HelloWorld.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/META-INF/sca-contribution.xml b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/META-INF/sca-contribution.xml index ba0f9c7b79..d7685c6143 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/META-INF/sca-contribution.xml +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackReference/META-INF/sca-contribution.xml @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/HelloWorld.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/HelloWorld.composite index d598790068..06a2fb9bed 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/HelloWorld.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/HelloWorld.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/META-INF/sca-contribution.xml b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/META-INF/sca-contribution.xml index ba0f9c7b79..d7685c6143 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/META-INF/sca-contribution.xml +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/callbackService/META-INF/sca-contribution.xml @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorld.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorld.composite index 3f1ebb0b97..10c78d0b30 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorld.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorld.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorldComponent.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorldComponent.composite index 602572779a..4579442a99 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorldComponent.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/HelloWorldComponent.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/META-INF/sca-contribution.xml b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/META-INF/sca-contribution.xml index ba0f9c7b79..d7685c6143 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/META-INF/sca-contribution.xml +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionReference/META-INF/sca-contribution.xml @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorld.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorld.composite index 89fea0d539..00ac746111 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorld.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorld.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorldComponent.composite b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorldComponent.composite index 310270fc91..944dd0b625 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorldComponent.composite +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/HelloWorldComponent.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/META-INF/sca-contribution.xml b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/META-INF/sca-contribution.xml index ba0f9c7b79..d7685c6143 100644 --- a/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/META-INF/sca-contribution.xml +++ b/java/sca/modules/binding-sca-axis2-runtime/src/test/resources/promotionService/META-INF/sca-contribution.xml @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java index c349e43615..ac977cbf37 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java @@ -143,12 +143,20 @@ public class CallbackReferenceImpl extends CallableReferenceImpl { try { // TODO - EPR - is this correct? - // Fluff up a new response wire based on the callback endpoint - RuntimeComponentReference ref = - bind((RuntimeComponentReference)wire.getEndpointReference().getReference(), - resolvedEndpoint); - - boundWire = ref.getRuntimeWires().get(0); + // test if the call back wire is manually configured + if ((wire.getEndpointReference().isUnresolved()== false) && + (wire.getEndpointReference().getTargetEndpoint().isUnresolved()== false)){ + boundWire = wire; + resolvedEndpoint = wire.getEndpointReference().getTargetEndpoint(); + } else { + // Fluff up a new response wire based on the callback endpoint + // that came in across the wire + RuntimeComponentReference ref = + bind((RuntimeComponentReference)wire.getEndpointReference().getReference(), + resolvedEndpoint); + + boundWire = ref.getRuntimeWires().get(0); + } Binding binding = wire.getEndpointReference().getBinding(); diff --git a/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java b/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java index ccb70b6a21..d4a9f31497 100644 --- a/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java +++ b/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java @@ -175,7 +175,18 @@ public class EndpointReferenceBuilderImpl implements CompositeBuilder, EndpointR } else { if (endpoint.isUnresolved() == false){ // Wired - service resolved - binding matched - // The service is in the same composite + // The service is in the same composite or the + // binding is remote and has a full URI + + // still need to check that the callback endpoint is set correctly + if ((endpointReference.getCallbackEndpoint() != null) && + (endpointReference.getCallbackEndpoint().isUnresolved() == false)){ + return; + } + + matchCallbackBinding(endpointReference, + monitor); + return; } @@ -359,9 +370,10 @@ public class EndpointReferenceBuilderImpl implements CompositeBuilder, EndpointR List matchedEndpoint = new ArrayList(); // Find the corresponding bindings from callback service side - if ((callbackEndpointReferences.get(0).getReference().getBindings().size() == 0) || - ((callbackEndpointReferences.get(0).getReference().getBindings().size() == 1) && - (callbackEndpointReferences.get(0).getReference().getBindings().get(0) instanceof SCABinding))){ + if ((callbackEndpointReferences.size() ==0) || + (callbackEndpointReferences.get(0).getReference().getBindings().size() == 0) || + ((callbackEndpointReferences.get(0).getReference().getBindings().size() == 1) && + (callbackEndpointReferences.get(0).getReference().getBindings().get(0) instanceof SCABinding))){ // OAISIS - choose a binding from the service side // (could have been specified as part of the target string) // last part of this test that is looking for binding SCA is diff --git a/java/sca/modules/pom.xml b/java/sca/modules/pom.xml index a8bf408823..bee543f522 100644 --- a/java/sca/modules/pom.xml +++ b/java/sca/modules/pom.xml @@ -37,6 +37,7 @@ binding-rmi binding-rmi-runtime binding-sca-runtime + binding-sca-axis2-runtime binding-ws binding-ws-axis2 binding-ws-axis2-policy -- cgit v1.2.3