You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by aj...@apache.org on 2005/06/29 16:14:13 UTC
svn commit: r202379 - in
/webservices/axis/trunk/java/modules/wsdl/src/org/apache:
axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java
axis/wsdl/codegen/extension/XMLBeansExtension.java wsdl/WSDLConstants.java
Author: ajith
Date: Wed Jun 29 07:14:12 2005
New Revision: 202379
URL: http://svn.apache.org/viewcvs?rev=202379&view=rev
Log:
Added a use='encoded' check.For now the code generated does not support 'encoded' and the codegenerator now throws an exception if encoded is used anywhere as the style
Modified:
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java
webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java
Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java?rev=202379&r1=202378&r2=202379&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java Wed Jun 29 07:14:12 2005
@@ -8,6 +8,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Enumeration;
import org.apache.axis.wsdl.codegen.CodeGenConfiguration;
import org.apache.axis.wsdl.codegen.CodeGenerationException;
@@ -37,8 +38,10 @@
import org.apache.wsdl.WSDLOperation;
import org.apache.wsdl.WSDLService;
import org.apache.wsdl.WSDLTypes;
+import org.apache.wsdl.WSDLConstants;
import org.apache.wsdl.extensions.ExtensionConstants;
import org.apache.wsdl.extensions.SOAPOperation;
+import org.apache.wsdl.extensions.SOAPBody;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
@@ -131,7 +134,9 @@
throw new UnsupportedOperationException("Single service WSDL files only");
}
}
-
+ //
+ testCompatibiltyAll(axisBinding);
+ //
writeInterface(axisBinding);
//write interface implementations
writeInterfaceImplementation(axisBinding,axisService);
@@ -356,6 +361,8 @@
try {
//get the binding
WSDLBinding axisBinding = this.configuration.getWom().getBinding(AxisBindingBuilder.AXIS_BINDING_QNAME);
+ //
+ testCompatibiltyAll(axisBinding);
//write interfaces
writeSkeleton(axisBinding);
//write interface implementations
@@ -561,15 +568,20 @@
addAttribute(doc,"namespace",operation.getName().getNamespaceURI(),methodElement);
addAttribute(doc,"style",operation.getStyle(),methodElement);
addAttribute(doc,"dbsupportname",localPart+DATABINDING_SUPPORTER_NAME_SUFFIX,methodElement);
- if(null != binding)
- addSOAPAction(doc,methodElement,binding.getBindingOperation(operation.getName()));
- addAttribute(doc, "mep",operation.getMessageExchangePattern(), methodElement);
- methodElement.appendChild(getInputElement(doc,operation));
+ if(null != binding){
+ WSDLBindingOperation bindingOperation = binding.getBindingOperation(operation.getName());
+ addSOAPAction(doc,methodElement,bindingOperation);
+ testCompatibilityInput(bindingOperation);
+ testCompatibilityOutput(bindingOperation);
+ }
+ addAttribute(doc,"mep",operation.getMessageExchangePattern(), methodElement);
+ methodElement.appendChild(getInputElement(doc,operation));
methodElement.appendChild(getOutputElement(doc,operation));
rootElement.appendChild(methodElement);
}
}
+
private void addSOAPAction(XmlDocument doc,Element rootElement,WSDLBindingOperation binding){
Iterator extIterator = binding.getExtensibilityElements().iterator();
boolean actionAdded = false;
@@ -716,5 +728,42 @@
return word.replaceAll("\\W","_");
}
+ private void testCompatibiltyAll(WSDLBinding binding){
+ HashMap map = binding.getBindingOperations();
+ WSDLBindingOperation bindingOp;
+ Collection col = map.values();
+ for (Iterator iterator = col.iterator(); iterator.hasNext();) {
+ bindingOp = (WSDLBindingOperation)iterator.next();
+ testCompatibilityInput(bindingOp);
+ testCompatibilityOutput(bindingOp);
+ }
+
+
+ }
+ private void testCompatibilityInput(WSDLBindingOperation binding){
+
+ Iterator extIterator = binding.getInput().getExtensibilityElements().iterator();
+ while(extIterator.hasNext()){
+ WSDLExtensibilityElement element = (WSDLExtensibilityElement)extIterator.next();
+ if(element.getType().equals(ExtensionConstants.SOAP_BODY)){
+ if(WSDLConstants.WSDL_USE_ENCODED.equals(((SOAPBody)element).getUse())){
+ throw new RuntimeException("The use 'encoded' is not supported!");
+ }
+ }
+ }
+ }
+
+ private void testCompatibilityOutput(WSDLBindingOperation binding){
+
+ Iterator extIterator = binding.getOutput().getExtensibilityElements().iterator();
+ while(extIterator.hasNext()){
+ WSDLExtensibilityElement element = (WSDLExtensibilityElement)extIterator.next();
+ if(element.getType().equals(ExtensionConstants.SOAP_BODY)){
+ if(WSDLConstants.WSDL_USE_ENCODED.equals(((SOAPBody)element).getUse())){
+ throw new RuntimeException("The use 'encoded' is not supported!");
+ }
+ }
+ }
+ }
}
Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java?rev=202379&r1=202378&r2=202379&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java Wed Jun 29 07:14:12 2005
@@ -14,6 +14,7 @@
import org.apache.wsdl.extensions.ExtensionConstants;
import org.apache.wsdl.extensions.Schema;
import org.apache.wsdl.WSDLExtensibilityElement;
+import org.apache.wsdl.WSDLTypes;
import org.w3c.dom.Element;
import javax.wsdl.extensions.ExtensibilityElement;
@@ -51,7 +52,12 @@
}
public void engage() {
- List typesArray = configuration.getWom().getTypes().getExtensibilityElements();
+ WSDLTypes typesList = configuration.getWom().getTypes();
+ if (typesList==null){
+ //there are no types to be code generated
+ return;
+ }
+ List typesArray = typesList.getExtensibilityElements();
WSDLExtensibilityElement extensiblityElt = null;
XmlObject[] xmlObjects=new XmlObject[typesArray.size()];
@@ -108,10 +114,10 @@
configuration.setTypeMapper(mapper);
} catch (XmlException e) {
- throw new RuntimeException(e);
+ throw new RuntimeException(e);
}
-
}
+
}
Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java?rev=202379&r1=202378&r2=202379&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java Wed Jun 29 07:14:12 2005
@@ -127,5 +127,13 @@
public static final int MESSAGE_LABEL_OUT = 1;
public static final String MESSAGE_LABEL_OUT_VALUE = "Out";
-
+
+ /**
+ *
+ */
+ public static final String WSDL_USE_LITERAL="literal";
+ public static final String WSDL_USE_ENCODED="encoded";
+
+
+
}