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);