You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2008/06/10 07:35:04 UTC

svn commit: r665984 - in /incubator/tuscany/java/sca/modules/interface-wsdl: pom.xml src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java

Author: lresende
Date: Mon Jun  9 22:35:03 2008
New Revision: 665984

URL: http://svn.apache.org/viewvc?rev=665984&view=rev
Log:
Adding support for introspecting endConversation extension attribute in wsdl interfaces definitions

Modified:
    incubator/tuscany/java/sca/modules/interface-wsdl/pom.xml
    incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java

Modified: incubator/tuscany/java/sca/modules/interface-wsdl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl/pom.xml?rev=665984&r1=665983&r2=665984&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl/pom.xml Mon Jun  9 22:35:03 2008
@@ -48,6 +48,12 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-policy</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+        </dependency>        
+
+        <dependency>
             <groupId>org.apache.ws.commons.schema</groupId>
             <artifactId>XmlSchema</artifactId>
             <version>1.3.2</version>

Modified: incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java?rev=665984&r1=665983&r2=665984&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java Mon Jun  9 22:35:03 2008
@@ -29,6 +29,7 @@
 
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.interfacedef.ConversationSequence;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
@@ -44,6 +45,7 @@
 public class WSDLInterfaceIntrospectorImpl {
     private static final QName POLICY_REQUIRES = new QName("http://www.osoa.org/xmlns/sca/1.0", "requires");
     private static final QName POLICY_CONVERSATIONAL = new QName("http://www.osoa.org/xmlns/sca/1.0", "conversational");
+    public static final QName POLICY_END_CONVERSATION = new QName("http://www.osoa.org/xmlns/sca/1.0", "endsConversation");
     
     private XSDFactory xsdFactory;
     private PolicyFactory policyFactory;
@@ -58,7 +60,11 @@
         List<Operation> operations = new ArrayList<Operation>();
         for (Object o : portType.getOperations()) {
             javax.wsdl.Operation wsdlOp = (javax.wsdl.Operation)o;
-            operations.add(getOperation(wsdlOp, wsdlDefinition, resolver, xsdFactory));
+            Operation operation = getOperation(wsdlOp, wsdlDefinition, resolver, xsdFactory);
+            if(isEndConversation(wsdlOp)) {
+                operation.setConversationSequence(ConversationSequence.CONVERSATION_END);
+            }
+            operations.add(operation);
         }
         return operations;
     }
@@ -119,5 +125,17 @@
 
         return conversational;
     }
+
+    private boolean isEndConversation(javax.wsdl.Operation operation) {
+        boolean endConversation = false;
+        
+        Object o =  operation.getExtensionAttribute(POLICY_END_CONVERSATION);
+        if(o != null && o instanceof String) {
+            endConversation = Boolean.valueOf((String)o);            
+        }
+
+        return endConversation;
+        
+    }
     
 }