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