You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ed...@apache.org on 2009/04/22 11:14:27 UTC

svn commit: r767426 - /tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java

Author: edwardsmj
Date: Wed Apr 22 09:14:27 2009
New Revision: 767426

URL: http://svn.apache.org/viewvc?rev=767426&view=rev
Log:
Added support for BPEL 2.0 process files

Modified:
    tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java

Modified: tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java?rev=767426&r1=767425&r2=767426&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java (original)
+++ tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java Wed Apr 22 09:14:27 2009
@@ -64,23 +64,38 @@
  * @version $Rev$ $Date$
  */
 public class BPELDocumentProcessor extends BaseStAXArtifactProcessor implements URLArtifactProcessor<BPELProcessDefinition> {
-    public final static QName BPEL_PROCESS_DEFINITION = new QName("http://schemas.xmlsoap.org/ws/2004/03/business-process/", "process");
-    public final static QName BPEL_EXECUTABLE_DEFINITION = new QName("http://docs.oasis-open.org/wsbpel/2.0/process/executable", "process");
-    private static final String SCA_BPEL_NS = "http://docs.oasis-open.org/ns/opencsa/sca-bpel/200801";
-    private static final String BPEL_NS = "http://schemas.xmlsoap.org/ws/2004/03/business-process/";
-    private static final String BPEL_PLINK_NS = "http://schemas.xmlsoap.org/ws/2004/03/partner-link/";
-    private static final String WSDL_NS = "http://schemas.xmlsoap.org/wsdl/";
-    private static final QName PROCESS_ELEMENT = new QName(BPEL_NS, "process");
-    private static final QName PARTNERLINK_ELEMENT = new QName(BPEL_NS, "partnerLink");
-    private static final QName ONEVENT_ELEMENT = new QName(BPEL_NS, "onEvent");
-    private static final QName RECEIVE_ELEMENT = new QName(BPEL_NS, "receive");
-    private static final QName ONMESSAGE_ELEMENT = new QName(BPEL_NS, "onMessage");
-    private static final QName INVOKE_ELEMENT = new QName(BPEL_NS, "invoke");
-    private static final QName IMPORT_ELEMENT = new QName(BPEL_NS, "import");
-    private static final String LINKTYPE_NAME = "partnerLinkType";
-    private static final QName LINKTYPE_ELEMENT = new QName(BPEL_PLINK_NS, LINKTYPE_NAME);
-    private final static String NAME_ELEMENT = "name";
-    private final static String TARGET_NAMESPACE = "targetNamespace";
+//    public final static QName BPEL_PROCESS_DEFINITION = new QName("http://schemas.xmlsoap.org/ws/2004/03/business-process/", "process");
+//    public final static QName BPEL_EXECUTABLE_DEFINITION = new QName("http://docs.oasis-open.org/wsbpel/2.0/process/executable", "process");
+
+    private static final String SCA_BPEL_NS 	= "http://docs.oasis-open.org/ns/opencsa/sca-bpel/200801";
+    private static final String WSDL_NS 		= "http://schemas.xmlsoap.org/wsdl/";
+
+    // BPEL 1.1
+    private static final String BPEL_NS 		= "http://schemas.xmlsoap.org/ws/2004/03/business-process/";
+    private static final String BPEL_PLINK_NS 	= "http://schemas.xmlsoap.org/ws/2004/03/partner-link/";
+    private final static String NAME_ELEMENT 		= "name";
+    private static final String LINKTYPE_NAME 		= "partnerLinkType";
+    private final static String TARGET_NAMESPACE 	= "targetNamespace";
+    private static final QName PROCESS_ELEMENT 		= new QName(BPEL_NS, "process");
+    private static final QName PARTNERLINK_ELEMENT 	= new QName(BPEL_NS, "partnerLink");
+    private static final QName ONEVENT_ELEMENT 		= new QName(BPEL_NS, "onEvent");
+    private static final QName RECEIVE_ELEMENT 		= new QName(BPEL_NS, "receive");
+    private static final QName ONMESSAGE_ELEMENT 	= new QName(BPEL_NS, "onMessage");
+    private static final QName INVOKE_ELEMENT 		= new QName(BPEL_NS, "invoke");
+    private static final QName IMPORT_ELEMENT 		= new QName(BPEL_NS, "import");
+    private static final QName LINKTYPE_ELEMENT 	= new QName(BPEL_PLINK_NS, LINKTYPE_NAME);
+    
+    // BPEL 2.0
+    private static final String BPEL_NS_20 			= "http://docs.oasis-open.org/wsbpel/2.0/process/executable";
+    private static final String BPEL_PLINK_NS_20	= "http://docs.oasis-open.org/wsbpel/2.0/plnktype";
+    private static final QName PROCESS_ELEMENT_20 		= new QName(BPEL_NS_20, "process");
+    private static final QName PARTNERLINK_ELEMENT_20 	= new QName(BPEL_NS_20, "partnerLink");
+    private static final QName ONEVENT_ELEMENT_20 		= new QName(BPEL_NS_20, "onEvent");
+    private static final QName RECEIVE_ELEMENT_20 		= new QName(BPEL_NS_20, "receive");
+    private static final QName ONMESSAGE_ELEMENT_20 	= new QName(BPEL_NS_20, "onMessage");
+    private static final QName INVOKE_ELEMENT_20 		= new QName(BPEL_NS_20, "invoke");
+    private static final QName IMPORT_ELEMENT_20 		= new QName(BPEL_NS_20, "import");   
+    private static final QName LINKTYPE_ELEMENT_20 		= new QName(BPEL_PLINK_NS_20, LINKTYPE_NAME);
     
     private final static XMLInputFactory inputFactory = XMLInputFactory.newInstance();
     
@@ -168,8 +183,7 @@
     	model.getPortTypes().addAll(thePortTypes);
     	model.getInterfaces().addAll(theInterfaces);
     	
-    	// Now, for each partnerLink in the BPEL process, find the related partnerLinkType
-    	// element 
+    	// Now, for each partnerLink in the BPEL process, find the related partnerLinkType element 
         List<BPELPartnerLinkElement> thePartnerLinks = model.getPartnerLinks();
         for (BPELPartnerLinkElement thePartnerLink : thePartnerLinks) {
             QName partnerLinkType = thePartnerLink.getPartnerLinkType();
@@ -358,21 +372,23 @@
                 switch (reader.next()) {
                     case START_ELEMENT:
                         QName qname = reader.getName();
-                        if (BPEL_PROCESS_DEFINITION.equals(qname) || BPEL_EXECUTABLE_DEFINITION.equals(qname)) {
+                        if (PROCESS_ELEMENT.equals(qname) || PROCESS_ELEMENT_20.equals(qname)) {
                             QName processName = new QName(getString(reader, TARGET_NAMESPACE), getString(reader, NAME_ELEMENT));
                             processDefinition.setName(processName);
-                        } else if (PARTNERLINK_ELEMENT.equals(qname)) {
+                        } else if (PARTNERLINK_ELEMENT.equals(qname) || PARTNERLINK_ELEMENT_20.equals(qname)) {
                             processDefinition.getPartnerLinks().add(processPartnerLinkElement(reader));
-                        } else if (ONEVENT_ELEMENT.equals(qname) || RECEIVE_ELEMENT.equals(qname) || ONMESSAGE_ELEMENT.equals(qname)) {
+                        } else if (ONEVENT_ELEMENT.equals(qname) || RECEIVE_ELEMENT.equals(qname) || ONMESSAGE_ELEMENT.equals(qname) || 
+                        		   ONEVENT_ELEMENT_20.equals(qname) || RECEIVE_ELEMENT_20.equals(qname) || ONMESSAGE_ELEMENT_20.equals(qname)) {
                             processPartnerLinkAsService(reader.getAttributeValue(null, "partnerLink"), processDefinition.getPartnerLinks());
-                        } else if (INVOKE_ELEMENT.equals(qname)) {
+                        } else if (INVOKE_ELEMENT.equals(qname) || INVOKE_ELEMENT_20.equals(qname)) {
                             processPartnerLinkAsReference(reader.getAttributeValue(null, "partnerLink"), processDefinition.getPartnerLinks());
-                        } else if (IMPORT_ELEMENT.equals(qname)) {
+                        } else if (IMPORT_ELEMENT.equals(qname) || IMPORT_ELEMENT_20.equals(qname)) {
                             processDefinition.getImports().add(processImportElement(reader));
                         } // end if
                         break;
                     case END_ELEMENT:
-                        if (PROCESS_ELEMENT.equals(reader.getName())) {
+                    	qname = reader.getName();
+                    	if (PROCESS_ELEMENT.equals(qname) || PROCESS_ELEMENT_20.equals(qname)) {
                             completed = true;
                             break;
                         } // end if
@@ -394,11 +410,10 @@
      * @param reader
      */
     private BPELPartnerLinkElement processPartnerLinkElement(XMLStreamReader reader) throws ContributionReadException {
-        BPELPartnerLinkElement partnerLink = new BPELPartnerLinkElement(
-                                                                        reader.getAttributeValue(null, "name"),
-                                                                        getQNameValue(reader, reader.getAttributeValue(null, "partnerLinkType")),
-                                                                        reader.getAttributeValue(null, "myRole"),
-                                                                        reader.getAttributeValue(null, "partnerRole"));
+        BPELPartnerLinkElement partnerLink = new BPELPartnerLinkElement( reader.getAttributeValue(null, "name"),
+                                                                         getQNameValue(reader, reader.getAttributeValue(null, "partnerLinkType")),
+                                                                         reader.getAttributeValue(null, "myRole"),
+                                                                         reader.getAttributeValue(null, "partnerRole"));
         
         // See if there are any SCA extension attributes
         String scaService = reader.getAttributeValue(SCA_BPEL_NS, "service");