You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/08/17 08:34:58 UTC

svn commit: r686586 - /tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java

Author: jsdelfino
Date: Sat Aug 16 23:34:57 2008
New Revision: 686586

URL: http://svn.apache.org/viewvc?rev=686586&view=rev
Log:
Added support for partnerLinkType/role/portType elements.

Modified:
    tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java

Modified: tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java?rev=686586&r1=686585&r2=686586&view=diff
==============================================================================
--- tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java (original)
+++ tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java Sat Aug 16 23:34:57 2008
@@ -85,7 +85,6 @@
 	public ExtensibilityElement unmarshall(Class theClass, QName elementType,
 			Element theElement, Definition def, ExtensionRegistry extReg)
 			throws WSDLException {
-		// System.out.println("BPELExtensionHandler unmarshall called");
 
 		// Check that this elementType really is a partnerLinkType element
 		if( !elementType.getLocalPart().equals(localName) ) return null;
@@ -93,15 +92,24 @@
 		theExtension.setElementType(elementType);
 		theExtension.setName( theElement.getAttribute("name") );
 
-		//Fetch the child "role" elements
+		// Fetch the child "role" elements
 		NodeList theRoles = theElement.getElementsByTagNameNS("*", roleName);
 		for ( int i=0; i < theRoles.getLength(); i++ ) {
 			if( i > 1 ) break;
 			Element roleNode = (Element)theRoles.item(i);
 			String roleName = roleNode.getAttribute("name");
 			String portType = roleNode.getAttribute("portType");
-			// The PortType attribute is a QName in prefix:localName format - convert to a QName
-			QName rolePortType = getQNameValue( def, portType );
+			if (portType == null || portType.length() == 0) {
+			    // Fetch the child "portType" element
+			    NodeList portTypesNodes = roleNode.getElementsByTagNameNS("*", "portType");
+			    for (int p = 0; p < portTypesNodes.getLength(); p++) {
+			        Element portTypeNode = (Element)portTypesNodes.item(p);
+	                        portType = portTypeNode.getAttribute("name");
+			        break;
+			    }
+			}
+                        // The PortType attribute is a QName in prefix:localName format - convert to a QName
+                        QName rolePortType = getQNameValue( def, portType );
 			theExtension.setRole( i, roleName, rolePortType );
 		} // end for
 		return theExtension;