[savara-commits] savara SVN: r41 - in trunk/tools/eclipse/plugins: org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Oct 10 17:11:20 EDT 2009


Author: objectiser
Date: 2009-10-10 17:11:20 -0400 (Sat, 10 Oct 2009)
New Revision: 41

Modified:
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/AbstractInteraction.java
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Invoke.java
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Reply.java
   trunk/tools/eclipse/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java
Log:
Generate and use namespace/prefix information.

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/AbstractInteraction.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/AbstractInteraction.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/AbstractInteraction.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -17,6 +17,7 @@
  */
 package org.jboss.savara.tools.bpel.model.component;
 
+import org.scribble.model.TypeReference;
 import org.scribble.model.admin.ModelListener;
 import org.jboss.savara.tools.bpel.model.*;
 
@@ -143,6 +144,30 @@
 		return(ret);
 	}
 
+	protected TypeReference createTypeReference(String type, ConversionContext context) {
+		TypeReference ret=new TypeReference();
+		
+		if (type != null) {
+			int index=-1;
+			if ((index=type.indexOf(':')) == -1) {
+				ret.setLocalpart(type);
+			} else {
+				ret.setLocalpart(type.substring(index+1));
+				
+				String prefix=type.substring(0, index);
+				String ns=context.getNamespace(prefix);
+				
+				if (ns != null) {
+					ret.setNamespace(ns);
+				} else {
+					// TODO: Log error
+				}
+			}
+		}
+		
+		return(ret);	
+	}
+	
 	/**
 	 * This method validates the BPEL activity and reports warnings or
 	 * errors to the supplied model listener.

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -42,5 +42,13 @@
 	 * @param var The variable
 	 */
 	public void addVariable(Variable var);
-	
+
+	/**
+	 * This method returns the namespace for the supplied prefix.
+	 * 
+	 * @param prefix The prefix
+	 * @return The namespace, or null if not found
+	 */
+	public String getNamespace(String prefix);
+
 }

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -29,8 +29,9 @@
 	 * 
 	 * @param role The role
 	 */
-	public DefaultConversionContext(String role) {
+	public DefaultConversionContext(String role, Process proc) {
 		m_role = role;
+		m_process = proc;
 	}
 	
 	/**
@@ -63,7 +64,18 @@
 		m_variables.put(var.getName(), var);
 	}
 	
+	/**
+	 * This method returns the namespace for the supplied prefix.
+	 * 
+	 * @param prefix The prefix
+	 * @return The namespace, or null if not found
+	 */
+	public String getNamespace(String prefix) {
+		return(m_process.getNamespace(prefix));
+	}
+	
 	private String m_role=null;
+	private Process m_process=null;
 	private java.util.Map<String,Variable> m_variables=
 					new java.util.HashMap<String,Variable>();
 }

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Invoke.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Invoke.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Invoke.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -193,14 +193,10 @@
 		// Create interaction for request
 		ConversationInteraction interaction=new ConversationInteraction();
 		
-		TypeReference tref=new TypeReference();
-		
 		Variable var=context.getVariable(getInputVariable());
 		
-		if (var != null) {
-			tref.setLocalpart(var.getMessageType());			
-		}
-		
+		TypeReference tref=createTypeReference(var.getMessageType(), context);
+				
 		MessageSignature ms=new MessageSignature();
 		ms.setOperation(getOperation());
 		ms.getTypes().add(tref);
@@ -226,13 +222,9 @@
 		// Create interaction for request
 		ConversationInteraction interaction=new ConversationInteraction();
 		
-		TypeReference tref=new TypeReference();
-		
 		Variable var=context.getVariable(getOutputVariable());
 		
-		if (var != null) {
-			tref.setLocalpart(var.getMessageType());			
-		}
+		TypeReference tref=createTypeReference(var.getMessageType(), context);
 		
 		MessageSignature ms=new MessageSignature();
 		ms.setOperation(getOperation());
@@ -259,7 +251,7 @@
 		// Create interaction for request
 		ConversationInteraction interaction=new ConversationInteraction();
 		
-		TypeReference tref=new TypeReference();
+		TypeReference tref=null;
 		
 		// TODO: Not sure if fault variable is supposed to be declared
 		// in catch scope, or reused from outer scope?? If declared,
@@ -269,9 +261,11 @@
 		Variable var=context.getVariable(faultVar);
 		
 		if (var != null) {
-			tref.setLocalpart(var.getMessageType());
+			tref = createTypeReference(var.getMessageType(), context);
+			//tref.setLocalpart(var.getMessageType());
 		} else if (faultMesgType != null) {
-			tref.setLocalpart(faultMesgType);
+			tref = createTypeReference(faultMesgType, context);
+			//tref.setLocalpart(faultMesgType);
 		}
 		
 		MessageSignature ms=new MessageSignature();

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -280,6 +280,33 @@
 	}
 	
 	/**
+	 * This method returns the namespace for the supplied prefix.
+	 * 
+	 * @param prefix The prefix
+	 * @return The namespace, or null if not found
+	 */
+	public String getNamespace(String prefix) {
+		String ret=null;
+		
+		org.w3c.dom.NamedNodeMap map=getDOMElement().getAttributes();
+		
+		for (int i=0; ret == null && i < map.getLength(); i++) {
+			org.w3c.dom.Node node=map.item(i);
+			
+			if (node instanceof org.w3c.dom.Attr) {
+				org.w3c.dom.Attr attr=(org.w3c.dom.Attr)node;
+				
+				if (attr.getNodeName().equals("xmlns:"+prefix) ||
+						attr.getNodeName().equals(prefix)) {
+					ret = attr.getNodeValue();
+				}
+			}
+		}
+		
+		return(ret);
+	}
+	
+	/**
 	 * This method adds a new namespace and returns the
 	 * prefix allocated to it.
 	 * 
@@ -713,7 +740,7 @@
 		}
 
 		// Convert the process contents
-		DefaultConversionContext context=new DefaultConversionContext(role);
+		DefaultConversionContext context=new DefaultConversionContext(role, this);
 		
 		// Add variables to the context
 		for (int i=0; i < m_variables.size(); i++) {

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -132,13 +132,9 @@
 			ConversionContext context) {
 		ConversationInteraction interaction=new ConversationInteraction();
 		
-		TypeReference tref=new TypeReference();
-		
 		Variable var=context.getVariable(getVariable());
 		
-		if (var != null) {
-			tref.setLocalpart(var.getMessageType());			
-		}
+		TypeReference tref=createTypeReference(var.getMessageType(), context);
 		
 		MessageSignature ms=new MessageSignature();
 		ms.setOperation(getOperation());

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Reply.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Reply.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Reply.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -120,13 +120,9 @@
 			ConversionContext context) {
 		ConversationInteraction interaction=new ConversationInteraction();
 		
-		TypeReference tref=new TypeReference();
-		
 		Variable var=context.getVariable(getVariable());
 		
-		if (var != null) {
-			tref.setLocalpart(var.getMessageType());			
-		}
+		TypeReference tref=createTypeReference(var.getMessageType(), context);
 		
 		MessageSignature ms=new MessageSignature();
 		ms.setOperation(getOperation());

Modified: trunk/tools/eclipse/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java
===================================================================
--- trunk/tools/eclipse/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java	2009-10-10 21:09:31 UTC (rev 40)
+++ trunk/tools/eclipse/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java	2009-10-10 21:11:20 UTC (rev 41)
@@ -20,6 +20,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.scribble.contract.model.FaultDetails;
+import org.scribble.contract.model.Namespace;
 import org.scribble.contract.model.RequestResponseMEP;
 import org.scribble.model.TypeReference;
 
@@ -55,11 +56,19 @@
 			}
 			ret.setTargetNamespace(contract.getNamespace());
 			
+			// Set up namespace mappings
+			for (int i=0; i < contract.getNamespaces().size(); i++) {
+				Namespace ns=contract.getNamespaces().get(i);
+				
+				ret.addNamespace(ns.getPrefix(), ns.getURI());
+			}
+			
 			// Define a port type per interface
 			for (int i=0; i < contract.getInterfaces().size(); i++) {
 				javax.wsdl.PortType ptype=generatePortType(ret, contract.getInterfaces().get(i));
 				
-				if (ptype != null) {
+				// Only add portType to definition if they have atleast one operation
+				if (ptype != null && ptype.getOperations().size() > 0) {
 					ret.addPortType(ptype);
 				}
 			}



More information about the savara-commits mailing list