You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by gd...@apache.org on 2008/12/17 19:29:48 UTC

svn commit: r727458 - in /webservices/axis2/branches/java/1_5/modules: codegen/src/org/apache/axis2/wsdl/ codegen/src/org/apache/axis2/wsdl/codegen/ codegen/src/org/apache/axis2/wsdl/codegen/emitter/ codegen/src/org/apache/axis2/wsdl/i18n/ codegen/src/...

Author: gdaniels
Date: Wed Dec 17 10:29:48 2008
New Revision: 727458

URL: http://svn.apache.org/viewvc?rev=727458&view=rev
Log:
Merge over Amila's recent changes.

Modified:
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/i18n/resource.properties
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/ExceptionTemplate.xsl
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl
    webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/util/WSDL2JavaOptionsValidator.java
    webservices/axis2/branches/java/1_5/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java Wed Dec 17 10:29:48 2008
@@ -42,7 +42,7 @@
 
         System.out.println(CodegenMessages.getMessage("wsdl2code.arg"));
         System.out.println(CodegenMessages.getMessage("wsdl2code.arg1"));
-        for (int i = 2; i <= 48; i++) {
+        for (int i = 2; i <= 49; i++) {
             System.out.println("  " + CodegenMessages.getMessage("wsdl2code.arg" + i));
         }
     }

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java Wed Dec 17 10:29:48 2008
@@ -631,4 +631,14 @@
         this.exceptionBaseClassName = exceptionBaseClassName;
     }
 
+    private boolean isLowerCaseMethodName;
+
+    public boolean isLowerCaseMethodName() {
+        return isLowerCaseMethodName;
+    }
+
+    public void setLowerCaseMethodName(boolean lowerCaseMethodName) {
+        isLowerCaseMethodName = lowerCaseMethodName;
+    }
+
 }

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java Wed Dec 17 10:29:48 2008
@@ -309,6 +309,9 @@
                                       WSDL2JavaConstants.OVERRIDE_ABSOLUTE_ADDRESS_OPTION_LONG,
                                       optionMap) != null);
 
+        config.setLowerCaseMethodName(loadOption(WSDL2JavaConstants.LOWER_CASE_METHOD_NAME,
+                                      WSDL2JavaConstants.LOWER_CASE_METHOD_NAME_LONG, optionMap) != null);
+
         // loop through the map and find parameters having the extra prefix.
         //put them in the property map
         Iterator keyIterator = optionMap.keySet().iterator();

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Wed Dec 17 10:29:48 2008
@@ -75,8 +75,6 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.stream.FactoryConfigurationError;
-import javax.xml.stream.XMLStreamException;
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerFactory;
@@ -94,7 +92,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-
+import java.lang.reflect.Constructor;
 
 
 public class AxisServiceBasedMultiLanguageEmitter implements Emitter {
@@ -275,7 +273,7 @@
     }
 
     protected Policy getBindingPolicyFromMessage(AxisBindingOperation axisBindingOperation,
-                                               String key) {
+                                                 String key) {
         AxisBindingMessage axisBindingMessage = null;
 
         if (axisBindingOperation != null) {
@@ -1056,6 +1054,11 @@
             if (this.codeGenConfiguration.getExceptionBaseClassName() != null) {
                 addAttribute(doc, "exceptionBaseClass",
                         this.codeGenConfiguration.getExceptionBaseClassName(), faultElement);
+                try {
+                    addConstructorDetails(doc, faultElement, this.codeGenConfiguration.getExceptionBaseClassName());
+                } catch (ClassNotFoundException e) {
+                    log.warn("Can not load the Exception base class");
+                }
             } else {
                 addAttribute(doc, "exceptionBaseClass", Exception.class.getName(), faultElement);
             }
@@ -1098,6 +1101,34 @@
         }
     }
 
+    private void addConstructorDetails(Document doc,
+                                       Element faultElement,
+                                       String exceptionClassName) throws ClassNotFoundException {
+        Class exceptionClass = Class.forName(exceptionClassName);
+        Constructor[] constructors =  exceptionClass.getConstructors();
+        for (int i = 0; i < constructors.length; i++) {
+            Element constructorElement = doc.createElement("constructor");
+            faultElement.appendChild(constructorElement);
+            Class[] parameters = constructors[i].getParameterTypes();
+            for (int j = 0; j < parameters.length; j++){
+                Element parameterElement = doc.createElement("param");
+                constructorElement.appendChild(parameterElement);
+                addAttribute(doc, "type",
+                        parameters[j].getName(), parameterElement);
+                addAttribute(doc, "name",
+                        getParameterName(parameters[j].getName()), parameterElement);
+
+            }
+        }
+    }
+
+    private String getParameterName(String className){
+       if (className.lastIndexOf(".") > 0){
+           className = className.substring(className.lastIndexOf(".") + 1);
+       }
+       return JavaUtils.xmlNameToJavaIdentifier(className);
+    }
+
     /**
      * Generates the model for the callbacks.
      */
@@ -1531,6 +1562,10 @@
         String localPart = makeJavaClassName(axisService.getName());
 
         addAttribute(doc, "name", localPart + mepToSuffixMap.get(mep), rootElement);
+
+        if (this.codeGenConfiguration.isLowerCaseMethodName()){
+           addAttribute(doc, "isLowerCaseMethodName", "true", rootElement); 
+        }
         //add backwordcompatibility attribute
         addAttribute(doc, "isbackcompatible",
                 String.valueOf(codeGenConfiguration.isBackwordCompatibilityMode()),
@@ -2199,8 +2234,11 @@
         List soapHeaderOutputParameterList = new ArrayList();
         methodElement = doc.createElement("method");
         String localPart = axisOperation.getName().getLocalPart();
-
-        addAttribute(doc, "name", JavaUtils.xmlNameToJavaIdentifier(localPart), methodElement);
+        if (this.codeGenConfiguration.isLowerCaseMethodName()){
+            addAttribute(doc, "name", JavaUtils.xmlNameToJavaIdentifier(localPart), methodElement);
+        } else {
+            addAttribute(doc, "name", localPart, methodElement);
+        }
         addAttribute(doc, "originalName", localPart, methodElement);
         addAttribute(doc, "namespace", axisOperation.getName().getNamespaceURI(), methodElement);
         addAttribute(doc, "style", (String) getBindingPropertyFromOperation(

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/i18n/resource.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/i18n/resource.properties?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/i18n/resource.properties (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/i18n/resource.properties Wed Dec 17 10:29:48 2008
@@ -83,6 +83,7 @@
 wsdl2code.arg46=                           \t\t\t   -EbindingFileName <path>               (for jaxbri) - specify the file path for the episode file
 wsdl2code.arg47=  -oaa <override-absolute-address>  -change the absolute http addresses to local file addresses generated by wsdl2java tool
 wsdl2code.arg48=  -ebc <exception-base-class>  -generated Exceptions are inherited from this exception rather than the java.lang.Exception class
+wsdl2code.arg49=  -lcmn <lower-case-method-name>  -normally generated method names for operation is same as operation name. This option make first letter lower case 
 
 ################## prop file loader #################################
 propfileload.frameworkMismatch=Number of frameworks and extension names do not match!

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/ExceptionTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/ExceptionTemplate.xsl?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/ExceptionTemplate.xsl (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/ExceptionTemplate.xsl Wed Dec 17 10:29:48 2008
@@ -32,19 +32,33 @@
 public class <xsl:value-of select="@shortName"/> extends <xsl:value-of select="@exceptionBaseClass"/>{
     
     private <xsl:value-of select="@type"/> faultMessage;
-    
-    public <xsl:value-of select="@shortName"/>() {
-        super("<xsl:value-of select="@shortName"/>");
-    }
-           
-    public <xsl:value-of select="@shortName"/>(java.lang.String s) {
-       super(s);
-    }
-    
-    public <xsl:value-of select="@shortName"/>(java.lang.String s, java.lang.Throwable ex) {
-      super(s, ex);
-    }
-    
+
+    <xsl:variable name="classShortName" select="@shortName"/>
+    <xsl:if test="count(constructor) > 0">
+        <xsl:for-each select="constructor">
+             public <xsl:value-of select="$classShortName"/>(<xsl:for-each select="param"><xsl:if test="position() > 1">,</xsl:if><xsl:value-of select="@type"/><xsl:text> </xsl:text><xsl:value-of select="@name"/></xsl:for-each>) {
+                super(<xsl:for-each select="param"><xsl:if test="position() > 1">,</xsl:if><xsl:value-of select="@name"/></xsl:for-each>);
+            }
+        </xsl:for-each>
+    </xsl:if>
+    <xsl:if test="count(constructor) = 0">
+        public <xsl:value-of select="@shortName"/>() {
+            super("<xsl:value-of select="@shortName"/>");
+        }
+
+        public <xsl:value-of select="@shortName"/>(java.lang.String s) {
+           super(s);
+        }
+
+        public <xsl:value-of select="@shortName"/>(java.lang.String s, java.lang.Throwable ex) {
+          super(s, ex);
+        }
+
+        public <xsl:value-of select="@shortName"/>(java.lang.Throwable cause) {
+            super(cause);
+        }
+    </xsl:if>
+
     public void setFaultMessage(<xsl:value-of select="@type"/> msg){
        faultMessage = msg;
     }

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl Wed Dec 17 10:29:48 2008
@@ -67,7 +67,7 @@
         }
 
         java.lang.String methodName;
-        if((op.getName() != null) &amp;&amp; ((methodName = org.apache.axis2.util.JavaUtils.xmlNameToJavaIdentifier(op.getName().getLocalPart())) != null)){
+        if((op.getName() != null) &amp;&amp; ((methodName = <xsl:if test="@isLowerCaseMethodName">org.apache.axis2.util.JavaUtils.xmlNameToJavaIdentifier(</xsl:if>op.getName().getLocalPart()<xsl:if test="@isLowerCaseMethodName">)</xsl:if>) != null)){
 
         <xsl:for-each select="method">
             <xsl:if test="position() > 1">} else </xsl:if>
@@ -358,7 +358,7 @@
         }
 
         java.lang.String methodName;
-        if((op.getName() != null) &amp;&amp; ((methodName = org.apache.axis2.util.JavaUtils.xmlNameToJavaIdentifier(op.getName().getLocalPart())) != null)){
+        if((op.getName() != null) &amp;&amp; ((methodName = <xsl:if test="@isLowerCaseMethodName">org.apache.axis2.util.JavaUtils.xmlNameToJavaIdentifier(</xsl:if>op.getName().getLocalPart()<xsl:if test="@isLowerCaseMethodName">)</xsl:if>) != null)){
 
         <xsl:for-each select="method">
 
@@ -496,7 +496,7 @@
         }
 
         java.lang.String methodName;
-        if((op.getName() != null) &amp;&amp; ((methodName = org.apache.axis2.util.JavaUtils.xmlNameToJavaIdentifier(op.getName().getLocalPart())) != null)){
+        if((op.getName() != null) &amp;&amp; ((methodName = <xsl:if test="@isLowerCaseMethodName">org.apache.axis2.util.JavaUtils.xmlNameToJavaIdentifier(</xsl:if>op.getName().getLocalPart()<xsl:if test="@isLowerCaseMethodName">)</xsl:if>) != null)){
 
         <xsl:for-each select="method">
             <xsl:if test="position() > 1">} else </xsl:if>

Modified: webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/util/WSDL2JavaOptionsValidator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/util/WSDL2JavaOptionsValidator.java?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/util/WSDL2JavaOptionsValidator.java (original)
+++ webservices/axis2/branches/java/1_5/modules/codegen/src/org/apache/axis2/wsdl/util/WSDL2JavaOptionsValidator.java Wed Dec 17 10:29:48 2008
@@ -102,6 +102,8 @@
                     WSDL2JavaConstants.SKELTON_INTERFACE_NAME_OPTION_LONG.equalsIgnoreCase(optionType) ||
                     WSDL2JavaConstants.SKELTON_CLASS_NAME_OPTION.equalsIgnoreCase(optionType) ||
                     WSDL2JavaConstants.SKELTON_CLASS_NAME_OPTION_LONG.equalsIgnoreCase(optionType) ||
+                    WSDL2JavaConstants.LOWER_CASE_METHOD_NAME.equalsIgnoreCase(optionType) ||
+                    WSDL2JavaConstants.LOWER_CASE_METHOD_NAME_LONG.equalsIgnoreCase(optionType) ||
                     XMLBeansExtension.XSDCONFIG_OPTION.equalsIgnoreCase(optionType) ||
                     XMLBeansExtension.XSDCONFIG_OPTION_LONG.equalsIgnoreCase(optionType)
             );

Modified: webservices/axis2/branches/java/1_5/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_5/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java?rev=727458&r1=727457&r2=727458&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_5/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java (original)
+++ webservices/axis2/branches/java/1_5/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java Wed Dec 17 10:29:48 2008
@@ -90,6 +90,8 @@
         String SKELTON_INTERFACE_NAME_OPTION_LONG = "skelton-interface-name";
         String SKELTON_CLASS_NAME_OPTION = "scn";
         String SKELTON_CLASS_NAME_OPTION_LONG = "skelton-class-name";
+        String LOWER_CASE_METHOD_NAME = "lcmn";
+        String LOWER_CASE_METHOD_NAME_LONG = "lower-case-method-name";
 
         String INVALID_OPTION = "INVALID_OPTION";
         String EXTRA_OPTIONTYPE_PREFIX = "E";