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

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Oct 17 16:07:25 EDT 2009


Author: objectiser
Date: 2009-10-17 16:07:25 -0400 (Sat, 17 Oct 2009)
New Revision: 61

Modified:
   tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLBinding.java
   tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java
   tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/soap/SOAPRPCWSDLBinding.java
Log:
Add SOAP binding information.

Modified: tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLBinding.java
===================================================================
--- tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLBinding.java	2009-10-17 15:08:04 UTC (rev 60)
+++ tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLBinding.java	2009-10-17 20:07:25 UTC (rev 61)
@@ -52,7 +52,7 @@
 	 * @param defn The definition
 	 * @param operation The operation
 	 */
-	public void updateOperation(javax.wsdl.Definition defn, javax.wsdl.Operation operation);
+	public void updateOperation(javax.wsdl.Definition defn, javax.wsdl.BindingOperation operation);
 	
 	/**
 	 * This method adds WSDL binding information to the input.
@@ -60,7 +60,7 @@
 	 * @param defn The definition
 	 * @param input The input
 	 */
-	public void updateInput(javax.wsdl.Definition defn, javax.wsdl.Input input);
+	public void updateInput(javax.wsdl.Definition defn, javax.wsdl.BindingInput input);
 	
 	/**
 	 * This method adds WSDL binding information to the output.
@@ -68,7 +68,7 @@
 	 * @param defn The definition
 	 * @param output The output
 	 */
-	public void updateOutput(javax.wsdl.Definition defn, javax.wsdl.Output output);
+	public void updateOutput(javax.wsdl.Definition defn, javax.wsdl.BindingOutput output);
 	
 	/**
 	 * This method adds WSDL binding information to the fault.
@@ -76,6 +76,6 @@
 	 * @param defn The definition
 	 * @param fault The fault
 	 */
-	public void updateFault(javax.wsdl.Definition defn, javax.wsdl.Fault fault);
+	public void updateFault(javax.wsdl.Definition defn, javax.wsdl.BindingFault fault);
 	
 }

Modified: tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java
===================================================================
--- tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java	2009-10-17 15:08:04 UTC (rev 60)
+++ tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/WSDLGenerator.java	2009-10-17 20:07:25 UTC (rev 61)
@@ -234,8 +234,6 @@
 					wsdlBinding.updateBinding(defn, ret);
 				}
 				
-				// TODO: Need to make binding configurable
-				
 				if (intf.getName() != null) {
 					ret.setQName(new javax.xml.namespace.QName(intf.getNamespace(), 
 							intf.getName()+SOAP_BINDING_SUFFIX));
@@ -354,12 +352,23 @@
 			ret = defn.createBindingOperation();
 			//ret.setUndefined(false);
 			
+			// Check if WSDL operation details
+			if (wsdlBinding != null) {
+				wsdlBinding.updateOperation(defn, ret);
+			}
+			
 			ret.setName(mep.getOperation());
 			
 			javax.wsdl.Message mesg=getMessage(wsdls, contract, mep.getTypes(), wsdlBinding);
 			
 			if (mesg != null) {
 				javax.wsdl.BindingInput input=defn.createBindingInput();
+				
+				// Check if WSDL operation details
+				if (wsdlBinding != null) {
+					wsdlBinding.updateInput(defn, input);
+				}
+
 				ret.setBindingInput(input);
 			}
 			
@@ -370,6 +379,12 @@
 				javax.wsdl.Message om=getMessage(wsdls, contract, rr.getResponseTypes(), wsdlBinding);
 				if (om != null) {
 					javax.wsdl.BindingOutput output=defn.createBindingOutput();
+					
+					// Check if WSDL operation details
+					if (wsdlBinding != null) {
+						wsdlBinding.updateOutput(defn, output);
+					}
+
 					ret.setBindingOutput(output);
 				}
 				
@@ -383,6 +398,11 @@
 							javax.wsdl.BindingFault fault=defn.createBindingFault();
 							fault.setName(fd.getName());
 							
+							// Check if WSDL operation details
+							if (wsdlBinding != null) {
+								wsdlBinding.updateFault(defn, fault);
+							}
+
 							ret.addBindingFault(fault);
 						}
 					}

Modified: tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/soap/SOAPRPCWSDLBinding.java
===================================================================
--- tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/soap/SOAPRPCWSDLBinding.java	2009-10-17 15:08:04 UTC (rev 60)
+++ tools/eclipse/trunk/plugins/org.jboss.savara.tools.wsdl/src/java/org/jboss/savara/tools/wsdl/soap/SOAPRPCWSDLBinding.java	2009-10-17 20:07:25 UTC (rev 61)
@@ -17,6 +17,8 @@
  */
 package org.jboss.savara.tools.wsdl.soap;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.jboss.savara.tools.wsdl.WSDLBinding;
 
 /**
@@ -25,6 +27,7 @@
  *
  */
 public class SOAPRPCWSDLBinding implements WSDLBinding {
+	private static Log logger = LogFactory.getLog(SOAPRPCWSDLBinding.class);
 
 	/**
 	 * This method returns the name of the WSDL binding implementation.
@@ -51,13 +54,16 @@
 	 * @param binding The port type
 	 */
 	public void updateBinding(javax.wsdl.Definition defn, javax.wsdl.Binding binding) {
-		/*
-		org.w3c.dom.Element sb=binding.getDocumentationElement().getOwnerDocument().
-								createElementNS("http://schemas.xmlsoap.org/wsdl/soap/", "binding");
-		sb.setAttribute("style", "rpc");
-		sb.setAttribute("transport", "http://schemas.xmlsoap.org/soap/http");
-		binding.getDocumentationElement().appendChild(sb);
-		*/
+		try {
+			javax.wsdl.extensions.soap.SOAPBinding sb=(javax.wsdl.extensions.soap.SOAPBinding)
+				defn.getExtensionRegistry().createExtension(javax.wsdl.Binding.class,
+							new javax.xml.namespace.QName("http://schemas.xmlsoap.org/wsdl/soap/", "binding"));
+			sb.setStyle("rpc");
+			sb.setTransportURI("http://schemas.xmlsoap.org/soap/http");
+			binding.addExtensibilityElement(sb);
+		} catch(Exception e) {
+			logger.error("Failed to add SOAP binding", e);
+		}
 	}
 	
 	/**
@@ -66,8 +72,17 @@
 	 * @param defn The definition
 	 * @param operation The operation
 	 */
-	public void updateOperation(javax.wsdl.Definition defn, javax.wsdl.Operation operation) {
-		
+	public void updateOperation(javax.wsdl.Definition defn, javax.wsdl.BindingOperation operation) {
+		try {
+			javax.wsdl.extensions.soap.SOAPOperation soap=(javax.wsdl.extensions.soap.SOAPOperation)
+				defn.getExtensionRegistry().createExtension(javax.wsdl.BindingOperation.class,
+							new javax.xml.namespace.QName("http://schemas.xmlsoap.org/wsdl/soap/", "operation"));
+			soap.setStyle("rpc");
+			soap.setSoapActionURI("");
+			operation.addExtensibilityElement(soap);
+		} catch(Exception e) {
+			logger.error("Failed to add SOAP operation", e);
+		}
 	}
 	
 	/**
@@ -76,8 +91,17 @@
 	 * @param defn The definition
 	 * @param input The input
 	 */
-	public void updateInput(javax.wsdl.Definition defn, javax.wsdl.Input input) {
-		
+	public void updateInput(javax.wsdl.Definition defn, javax.wsdl.BindingInput input) {
+		try {
+			javax.wsdl.extensions.soap.SOAPBody soap=(javax.wsdl.extensions.soap.SOAPBody)
+				defn.getExtensionRegistry().createExtension(javax.wsdl.BindingInput.class,
+							new javax.xml.namespace.QName("http://schemas.xmlsoap.org/wsdl/soap/", "body"));
+			soap.setUse("literal");
+			soap.setNamespaceURI(defn.getTargetNamespace());
+			input.addExtensibilityElement(soap);
+		} catch(Exception e) {
+			logger.error("Failed to add SOAP body to input", e);
+		}
 	}
 	
 	/**
@@ -86,8 +110,17 @@
 	 * @param defn The definition
 	 * @param output The output
 	 */
-	public void updateOutput(javax.wsdl.Definition defn, javax.wsdl.Output output) {
-		
+	public void updateOutput(javax.wsdl.Definition defn, javax.wsdl.BindingOutput output) {
+		try {
+			javax.wsdl.extensions.soap.SOAPBody soap=(javax.wsdl.extensions.soap.SOAPBody)
+				defn.getExtensionRegistry().createExtension(javax.wsdl.BindingOutput.class,
+							new javax.xml.namespace.QName("http://schemas.xmlsoap.org/wsdl/soap/", "body"));
+			soap.setUse("literal");
+			soap.setNamespaceURI(defn.getTargetNamespace());
+			output.addExtensibilityElement(soap);
+		} catch(Exception e) {
+			logger.error("Failed to add SOAP body to output", e);
+		}
 	}
 	
 	/**
@@ -96,8 +129,19 @@
 	 * @param defn The definition
 	 * @param fault The fault
 	 */
-	public void updateFault(javax.wsdl.Definition defn, javax.wsdl.Fault fault) {
-		
+	public void updateFault(javax.wsdl.Definition defn, javax.wsdl.BindingFault fault) {
+		try {
+			javax.wsdl.extensions.soap.SOAPFault soap=(javax.wsdl.extensions.soap.SOAPFault)
+				defn.getExtensionRegistry().createExtension(javax.wsdl.BindingFault.class,
+							new javax.xml.namespace.QName("http://schemas.xmlsoap.org/wsdl/soap/", "fault"));
+			soap.setUse("literal");
+			soap.setNamespaceURI(defn.getTargetNamespace());
+			soap.setName(fault.getName());
+			
+			fault.addExtensibilityElement(soap);
+		} catch(Exception e) {
+			logger.error("Failed to add SOAP body to fault", e);
+		}
 	}
 	
 }



More information about the savara-commits mailing list