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