You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ri...@apache.org on 2006/12/05 15:58:09 UTC
svn commit: r482683 - in /incubator/tuscany/java/sca: ./
services/bindings/binding.axis2/
services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/
services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/
Author: rineholt
Date: Tue Dec 5 06:58:06 2006
New Revision: 482683
URL: http://svn.apache.org/viewvc?view=rev&rev=482683
Log:
flow From EPR with SCA conversation ID
Modified:
incubator/tuscany/java/sca/pom.xml
incubator/tuscany/java/sca/services/bindings/binding.axis2/pom.xml
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2OneWayTargetInvoker.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBinding.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java
Modified: incubator/tuscany/java/sca/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/pom.xml?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/pom.xml (original)
+++ incubator/tuscany/java/sca/pom.xml Tue Dec 5 06:58:06 2006
@@ -140,6 +140,16 @@
<scope>compile</scope>
</dependency>
+<!--
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>addressing</artifactId>
+ <version>${axis2Version}</version>
+ <package>mar</package>
+ <scope>compile</scope>
+ </dependency>
+ -->
+
<!-- AXIOM Implementation -->
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/pom.xml?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/pom.xml (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/pom.xml Tue Dec 5 06:58:06 2006
@@ -63,7 +63,15 @@
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
+
</dependency>
+<!--
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>addressing</artifactId>
+ <package>mar</package>
+ </dependency>
+-->
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java Tue Dec 5 06:58:06 2006
@@ -22,6 +22,7 @@
import java.util.LinkedList;
import javax.xml.namespace.QName;
+import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
import org.apache.tuscany.spi.wire.Message;
@@ -41,8 +42,8 @@
public Axis2AsyncTargetInvoker(ServiceClient serviceClient,
QName wsdlOperationName,
Options options,
- SOAPFactory soapFactory) {
- super(serviceClient, wsdlOperationName, options, soapFactory);
+ SOAPFactory soapFactory, WorkContext workContext) {
+ super(serviceClient, wsdlOperationName, options, soapFactory, workContext);
}
public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException {
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java Tue Dec 5 06:58:06 2006
@@ -32,6 +32,7 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.BindingBuilderExtension;
import org.apache.tuscany.spi.host.ServletHost;
@@ -55,6 +56,8 @@
private ConfigurationContext configContext;
private InterfaceWSDLIntrospector introspector;
+
+ private WorkContext workContext;
public Axis2BindingBuilder() {
initAxis();
@@ -72,6 +75,14 @@
public void setIntrospector(InterfaceWSDLIntrospector introspector) {
this.introspector = introspector;
}
+
+ @Autowire
+ public void setWorkContext(WorkContext workContext) {
+ this.workContext = workContext;
+ }
+
+
+
@SuppressWarnings("unchecked")
public Service build(
@@ -165,7 +176,7 @@
}
Reference reference = new Axis2Reference(boundReferenceDefinition.getName(), parent, wireService, wsBinding,
- inboundContract);
+ inboundContract, workContext);
reference.setBindingServiceContract(outboundContract);
return reference;
@@ -199,4 +210,5 @@
}
}
}
+
}
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2OneWayTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2OneWayTargetInvoker.java?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2OneWayTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2OneWayTargetInvoker.java Tue Dec 5 06:58:06 2006
@@ -21,6 +21,7 @@
import java.lang.reflect.InvocationTargetException;
import javax.xml.namespace.QName;
+import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
import org.apache.tuscany.spi.wire.Message;
@@ -38,9 +39,9 @@
public Axis2OneWayTargetInvoker(ServiceClient serviceClient,
QName wsdlOperationName,
Options options,
- SOAPFactory soapFactory) {
+ SOAPFactory soapFactory, WorkContext workContext) {
- super(serviceClient, wsdlOperationName, options, soapFactory);
+ super(serviceClient, wsdlOperationName, options, soapFactory, workContext);
}
public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException {
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java Tue Dec 5 06:58:06 2006
@@ -36,6 +36,7 @@
import org.apache.tuscany.binding.axis2.util.WebServiceOperationMetaData;
import org.apache.tuscany.binding.axis2.util.WebServicePortMetaData;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.extension.ReferenceExtension;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.ServiceContract;
@@ -50,14 +51,16 @@
private WebServicePortMetaData wsPortMetaData;
private ServiceClient serviceClient;
+ private WorkContext workContext;
@SuppressWarnings("unchecked")
public Axis2Reference(String theName,
CompositeComponent parent,
WireService wireService,
WebServiceBinding wsBinding,
- ServiceContract contract) {
+ ServiceContract contract, WorkContext workContext) {
super(theName, (Class<T>)contract.getInterfaceClass(), parent, wireService);
+ this.workContext = workContext;
try {
Definition wsdlDefinition = wsBinding.getWSDLDefinition();
wsPortMetaData =
@@ -166,11 +169,11 @@
Axis2TargetInvoker invoker;
if (hasCallback) {
invoker =
- new Axis2AsyncTargetInvoker(serviceClient, wsdlOperationQName, options, soapFactory);
+ new Axis2AsyncTargetInvoker(serviceClient, wsdlOperationQName, options, soapFactory, workContext);
} else if (isOneWay) {
- invoker = new Axis2OneWayTargetInvoker(serviceClient, wsdlOperationQName, options, soapFactory);
+ invoker = new Axis2OneWayTargetInvoker(serviceClient, wsdlOperationQName, options, soapFactory, workContext);
} else {
- invoker = new Axis2TargetInvoker(serviceClient, wsdlOperationQName, options, soapFactory);
+ invoker = new Axis2TargetInvoker(serviceClient, wsdlOperationQName, options, soapFactory, workContext);
}
return invoker;
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java Tue Dec 5 06:58:06 2006
@@ -21,15 +21,22 @@
import java.lang.reflect.InvocationTargetException;
import javax.xml.namespace.QName;
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.soap.SOAPBody;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPHeader;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
@@ -49,12 +56,15 @@
private ServiceClient serviceClient;
+ private WorkContext workContext;
+
public Axis2TargetInvoker(ServiceClient serviceClient, QName wsdlOperationName, Options options,
- SOAPFactory soapFactory) {
+ SOAPFactory soapFactory, WorkContext workContext) {
this.wsdlOperationName = wsdlOperationName;
this.options = options;
this.soapFactory = soapFactory;
this.serviceClient = serviceClient;
+ this.workContext = workContext;
}
/**
@@ -98,6 +108,26 @@
requestMC.setEnvelope(env);
// Axis2 operationClients can not be shared so create a new one for each request
OperationClient operationClient = serviceClient.createClient(wsdlOperationName);
+
+
+ if(workContext != null){
+ String conversationId = (String) workContext.getIdentifier(Scope.CONVERSATION);
+ if(conversationId != null && conversationId.length()!=0){
+ EndpointReference fromEPR= new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ fromEPR.addReferenceParameter(WebServiceBinding.CONVERSATION_ID_REFPARM_QN, conversationId);
+ options.setFrom(fromEPR);
+ requestMC.setFrom(fromEPR); //who knows why two ways ?
+
+ //For now do this the brute force method. Need to figure out how to do axis addressing .. configure mar in flow.
+ SOAPEnvelope sev = requestMC.getEnvelope();
+ SOAPHeader sh = sev.getHeader();
+ OMElement el= fromEPR.toOM(AddressingConstants.Final.WSA_NAMESPACE,AddressingConstants.WSA_FROM,AddressingConstants.WSA_DEFAULT_PREFIX);
+ sh.addChild(el);
+ }
+
+ }
+
+
operationClient.setOptions(options);
operationClient.addMessageContext(requestMC);
return operationClient;
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBinding.java?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBinding.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBinding.java Tue Dec 5 06:58:06 2006
@@ -22,7 +22,10 @@
import javax.wsdl.Definition;
import javax.wsdl.Port;
import javax.wsdl.Service;
+import javax.xml.namespace.QName;
+
import org.apache.tuscany.spi.model.Binding;
+import org.osoa.sca.Version;
/**
* Represents a Celtix binding configuration in an assembly
@@ -30,7 +33,7 @@
* @version $Rev$ $Date$
*/
public class WebServiceBinding extends Binding {
-
+ public static final QName CONVERSATION_ID_REFPARM_QN = new QName(Version.XML_NAMESPACE_1_0,"conversationID");
private Definition definition;
private Port port;
private Service service;
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java?view=diff&rev=482683&r1=482682&r2=482683
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java Tue Dec 5 06:58:06 2006
@@ -102,6 +102,6 @@
parent,
wireService,
wsBinding,
- contract);
+ contract, null);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org