You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by am...@apache.org on 2011/02/06 09:29:40 UTC

svn commit: r1067612 - in /axis/axis2/java/core/trunk/modules: codegen/src/org/apache/axis2/wsdl/codegen/emitter/ codegen/src/org/apache/axis2/wsdl/template/java/ kernel/src/org/apache/axis2/description/

Author: amilas
Date: Sun Feb  6 08:29:39 2011
New Revision: 1067612

URL: http://svn.apache.org/viewvc?rev=1067612&view=rev
Log:
apply the patch for AXIS2-4921

Modified:
    axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
    axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/template/java/SkeletonTemplate.xsl
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java

Modified: axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?rev=1067612&r1=1067611&r2=1067612&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Sun Feb  6 08:29:39 2011
@@ -3009,6 +3009,7 @@ public class AxisServiceBasedMultiLangua
 
             // This is the  wrapped component - add the type mapping
             Element mainParameter = generateParamComponent(doc,
+                    inputMessage.getDocumentation(),
                     this.mapper.getParameterName(
                             inputMessage.getElementQName()),
                     this.mapper.getTypeMappingName(
@@ -3052,9 +3053,11 @@ public class AxisServiceBasedMultiLangua
                 wrapped_jaxws = true;
                 //populate the parts list - this list is needed to generate multiple
                 //parameters in the signatures
+                //todo documentation is kept empty(null) in this scenario
                 for (int i = 0; i < partsList.size(); i++) {
                     QName qName = (QName) partsList.get(i);
                     mainParameter.appendChild(generateParamComponent(doc,
+                            null,
                             this.mapper.getParameterName(
                                     qName),
                             this.mapper.getTypeMappingName(
@@ -3091,11 +3094,12 @@ public class AxisServiceBasedMultiLangua
      * @return DOM Element
      */
     protected Element generateParamComponent(Document doc,
+                                             String comment,
                                              String paramName,
                                              String paramType,
                                              QName operationName,
                                              QName paramQName) {
-        return generateParamComponent(doc, paramName, paramType, operationName, paramQName, null,
+        return generateParamComponent(doc, comment, paramName, paramType, operationName, paramQName, null,
                 false, false);
     }
 
@@ -3108,10 +3112,11 @@ public class AxisServiceBasedMultiLangua
      * @return DOM Element
      */
     protected Element generateParamComponent(Document doc,
+                                             String comment,
                                              String paramName,
                                              String paramType,
                                              QName paramQName) {
-        return generateParamComponent(doc, paramName, paramType, null, paramQName, null, false,
+        return generateParamComponent(doc,comment, paramName, paramType, null, paramQName, null, false,
                 false);
     }
 
@@ -3141,6 +3146,7 @@ public class AxisServiceBasedMultiLangua
      * @param paramName
      */
     protected Element generateParamComponent(Document doc,
+                                             String comment,
                                              String paramName,
                                              String paramType,
                                              QName opName,
@@ -3152,6 +3158,10 @@ public class AxisServiceBasedMultiLangua
         addAttribute(doc, "name",
                 paramName, paramElement);
 
+        addAttribute(doc, "comment",
+                (comment == null) ? "" : comment,
+                paramElement);
+
         if (codeGenConfiguration.getOutputLanguage().equals("jax-ws") && useHolderClass_jaxws) {
             Class primitive = JavaUtils.getWrapperClass(paramType);
             if(primitive != null){
@@ -3225,12 +3235,15 @@ public class AxisServiceBasedMultiLangua
         }
         String parameterName;
         String typeMappingStr;
+        String comment = null;
         parameterName = this.mapper.getParameterName(outputMessage.getElementQName());
+        comment = outputMessage.getDocumentation();
         String typeMapping = this.mapper.getTypeMappingName(outputMessage.getElementQName());
         typeMappingStr = (typeMapping == null) ? "" : typeMapping;
 
 
         addAttribute(doc, "name", parameterName, paramElement);
+        addAttribute(doc, "comment", (comment == null) ? "" : comment, paramElement);
         addAttribute(doc, "type", typeMappingStr, paramElement);
 
         //adds the short type
@@ -3286,11 +3299,13 @@ public class AxisServiceBasedMultiLangua
             // in out put params we only intersted if there is only one parameter
             // otherwise we can not unwrap it.
             // this logic handles at the template level
+            //todo comment is empty(null) in this scenario
             QName qName;
             for (Iterator iter = partsList.iterator(); iter.hasNext();) {
                 qName = (QName) iter.next();
                 paramElement.
                         appendChild(generateParamComponent(doc,
+                                                           null,
                                                            this.mapper.getParameterName(qName),
                                                            this.mapper.getTypeMappingName(qName),
                                                            operation.getName(),

Modified: axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/template/java/SkeletonTemplate.xsl
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/template/java/SkeletonTemplate.xsl?rev=1067612&r1=1067611&r2=1067612&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/template/java/SkeletonTemplate.xsl (original)
+++ axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/template/java/SkeletonTemplate.xsl Sun Feb  6 08:29:39 2011
@@ -54,10 +54,10 @@
                             <xsl:variable name="inputComplexType" select="input/param[@location='body' and @type!='']/@complextype"/>
                             <xsl:choose>
                                 <xsl:when test="string-length(normalize-space($inputComplexType)) > 0">
-                                   * @param<xsl:text> </xsl:text><xsl:value-of select="input/param[@location='body' and @type!='']/@name"/>
+                                   * @param<xsl:text> </xsl:text><xsl:value-of select="input/param[@location='body' and @type!='']/@name"/> : <xsl:value-of select="input/param[@location='body' and @type!='']/@comment"/>
                                 </xsl:when>
                                 <xsl:otherwise>
-                                    * @param<xsl:text> </xsl:text><xsl:value-of select="input/param[@location='body' and @type!='']/@name"/>
+                                    * @param<xsl:text> </xsl:text><xsl:value-of select="input/param[@location='body' and @type!='']/@name"/> : <xsl:value-of select="input/param[@location='body' and @type!='']/@comment"/>
                                 </xsl:otherwise>
                             </xsl:choose>
                         </xsl:when>
@@ -73,19 +73,20 @@
                             <xsl:choose>
                                 <xsl:when test="$isUnwrapParameters">
                                    <xsl:for-each select="input/param[@location='body' and @type!='']/param">
-                                     * @param<xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                     * @param<xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text> </xsl:text><xsl:value-of select="@comment"/>
                                     </xsl:for-each>
                                 </xsl:when>
                                 <xsl:otherwise>
-                                     * @param<xsl:text> </xsl:text><xsl:value-of select="input/param[@location='body' and @type!='']/@name"/>
+                                     * @param<xsl:text> </xsl:text><xsl:value-of select="input/param[@location='body' and @type!='']/@name"/><xsl:text> </xsl:text><xsl:value-of select="input/param[@location='body' and @type!='']/@comment"/>
                                 </xsl:otherwise>
                             </xsl:choose>
                         </xsl:when>
                     </xsl:choose>
             </xsl:otherwise>
         </xsl:choose>
+             * @return <xsl:value-of select="output/param/@name"/><xsl:text> </xsl:text><xsl:value-of select="output/param/@comment"/>
          <xsl:for-each select="fault/param[@type!='']">
-             * @throws <xsl:value-of select="@name"/> : <xsl:value-of select="@comment"/>
+             * @throws <xsl:value-of select="@name"/><xsl:text> </xsl:text><xsl:value-of select="@comment"/>
          </xsl:for-each>
          */
         <xsl:choose>

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?rev=1067612&r1=1067611&r2=1067612&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Sun Feb  6 08:29:39 2011
@@ -596,6 +596,12 @@ public class WSDL11ToAxisServiceBuilder 
 
             axisOperation = populateOperations(wsdl4jOperation, wsdl4jPortType, portTypeWSDL);
             addDocumentation(axisOperation, wsdl4jOperation.getDocumentationElement());
+            if (wsdl4jOperation.getInput() != null) {
+                addMessageDocumentation(axisOperation, wsdl4jOperation.getInput().getDocumentationElement(), WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+            }
+            if (wsdl4jOperation.getOutput() != null) {
+                addMessageDocumentation(axisOperation, wsdl4jOperation.getOutput().getDocumentationElement(), WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+            }
             axisOperation.setParent(axisService);
             axisService.addChild(axisOperation);
             operationNames.add(axisOperation.getName());
@@ -608,6 +614,27 @@ public class WSDL11ToAxisServiceBuilder 
 
     }
 
+    /**
+     * This method is used for adding documentation for the message types of the service operations
+     * eg: input message
+     *     output message
+     *     fault messages 
+     *
+     * @param axisOperation
+     * @param documentationElement
+     * @param messageLabel
+     */
+    private void addMessageDocumentation(AxisOperation axisOperation, Element documentationElement, String messageLabel) {
+        if ((documentationElement != null) && (documentationElement.getFirstChild() != null)) {
+            Node firstChild = documentationElement.getFirstChild();
+            String documentation = DOM2Writer.nodeToString(firstChild);
+
+            if (!"".equals(documentation)) {
+                (axisOperation.getMessage(messageLabel)).setDocumentation(documentation);
+            }
+        }
+    }
+    
     private void populateBinding(AxisBinding axisBinding,
                                  Binding wsdl4jBinding,
                                  Definition bindingWSDL,