Author: slaws
Date: Tue Jun 15 12:57:56 2010
New Revision: 954856

URL: http://svn.apache.org/viewvc?rev=954856&view=rev
Log:
TUSCANY-3594 - flow the actual callback URL in the SOAP header as opposed to 
the SCA endpoint URI. Thanks to Mike for working on this in parallel with 
writing the Otests for this. 

Modified:
    
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingInvoker.java
    
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyServiceProvider.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingInvoker.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingInvoker.java?rev=954856&r1=954855&r2=954856&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingInvoker.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingInvoker.java
 Tue Jun 15 12:57:56 2010
@@ -135,7 +135,9 @@ public class Axis2ReferenceBindingInvoke
         // add WS-Addressing header
         //FIXME: is there any way to use the Axis2 addressing support for this?
         if (callbackEndpoint != null) {
-            EndpointReference fromEPR = new 
EndpointReference(callbackEndpoint.getURI());
+            //EndpointReference fromEPR = new 
EndpointReference(callbackEndpoint.getURI());
+               // Load the actual callback endpoint URI into an Axis EPR ready 
to form the content of the wsa:From header
+            EndpointReference fromEPR = new 
EndpointReference(callbackEndpoint.getBinding().getURI());
             SOAPEnvelope sev = requestMC.getEnvelope();
             SOAPHeader sh = sev.getHeader();
             OMElement epr =

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyServiceProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyServiceProvider.java?rev=954856&r1=954855&r2=954856&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyServiceProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/TuscanyServiceProvider.java
 Tue Jun 15 12:57:56 2010
@@ -32,6 +32,7 @@ import org.apache.tuscany.sca.assembly.A
 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.binding.ws.WebServiceBindingFactory;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.core.assembly.RuntimeAssemblyFactory;
@@ -56,6 +57,7 @@ public class TuscanyServiceProvider {
     private MessageFactory messageFactory;
     private FactoryExtensionPoint modelFactories;
     private RuntimeAssemblyFactory assemblyFactory;
+    private WebServiceBindingFactory webServiceBindingFactory;
     private Operation operation;
     
     public TuscanyServiceProvider(ExtensionPointRegistry extensionPoints,
@@ -67,7 +69,8 @@ public class TuscanyServiceProvider {
         this.operation = operation;
         this.modelFactories = 
extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
         this.messageFactory = modelFactories.getFactory(MessageFactory.class);
-        this.assemblyFactory = 
(RuntimeAssemblyFactory)modelFactories.getFactory(AssemblyFactory.class);       
 
+        this.assemblyFactory = 
(RuntimeAssemblyFactory)modelFactories.getFactory(AssemblyFactory.class);
+        this.webServiceBindingFactory = 
(WebServiceBindingFactory)modelFactories.getFactory(WebServiceBindingFactory.class);
     }
     
     public OMElement invoke(OMElement requestOM, MessageContext inMC) throws 
InvocationTargetException {
@@ -104,6 +107,11 @@ public class TuscanyServiceProvider {
             
from.setStatus(EndpointReference.Status.WIRED_TARGET_FOUND_AND_MATCHED);
             msg.setFrom(from);
             Endpoint callbackEndpoint = assemblyFactory.createEndpoint();
+            //
+            WebServiceBinding cbBinding = 
webServiceBindingFactory.createWebServiceBinding();
+            cbBinding.setURI(callbackAddress);
+            callbackEndpoint.setBinding(cbBinding);
+            //
             callbackEndpoint.setURI(callbackAddress);
             callbackEndpoint.setUnresolved(true);
             from.setCallbackEndpoint(callbackEndpoint);


Reply via email to