Author: nthaker
Date: Tue Jul 20 16:44:48 2010
New Revision: 965900

URL: http://svn.apache.org/viewvc?rev=965900&view=rev
Log:
AXIS2-4783: JAX-WS2.2 update for @RequestWrapper, @ResponseWrapper & @WebFault 
annotation.

Modified:
    
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/FaultDescription.java
    
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
    
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java
    
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java
    
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java
    
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
    
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java

Modified: 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/FaultDescription.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/FaultDescription.java?rev=965900&r1=965899&r2=965900&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/FaultDescription.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/FaultDescription.java
 Tue Jul 20 16:44:48 2010
@@ -81,6 +81,10 @@ public interface FaultDescription {
      *         if not defined.
      */
     public String getTargetNamespace();
-
-
+    
+    /**
+     *  @return the name of the wsdl:message that defines the fault element.
+     * @return
+     */
+    public String getMessageName();
 }
\ No newline at end of file

Modified: 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java?rev=965900&r1=965899&r2=965900&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
 Tue Jul 20 16:44:48 2010
@@ -172,7 +172,8 @@ public interface OperationDescription {
     public String getRequestWrapperTargetNamespace();
 
     public String getRequestWrapperLocalName();
-
+    
+    public String getRequestWrapperPartName();
     /**
      * @return the class name of the wrapper class. NOTE: This method will 
return null if the
      *         request wrapper class is not known during the description layer 
processing. In such
@@ -185,6 +186,8 @@ public interface OperationDescription {
     public String getResponseWrapperTargetNamespace();
 
     public String getResponseWrapperLocalName();
+    
+    public String getResponseWrapperPartName();
 
     public String[] getParamNames();
 

Modified: 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java?rev=965900&r1=965899&r2=965900&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java
 Tue Jul 20 16:44:48 2010
@@ -381,6 +381,7 @@ public class JavaClassToDBCConverter {
             webFaultAnnot.setFaultBean(webFault.faultBean());
             webFaultAnnot.setName(webFault.name());
             webFaultAnnot.setTargetNamespace(webFault.targetNamespace());
+            webFaultAnnot.setMessageName(webFault.messageName());
             composite.setWebFaultAnnot(webFaultAnnot);
         }
     }

Modified: 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java?rev=965900&r1=965899&r2=965900&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaMethodsToMDCConverter.java
 Tue Jul 20 16:44:48 2010
@@ -197,6 +197,7 @@ public class JavaMethodsToMDCConverter {
             rwAnnot.setClassName(requestWrapper.className());
             rwAnnot.setLocalName(requestWrapper.localName());
             rwAnnot.setTargetNamespace(requestWrapper.targetNamespace());
+            rwAnnot.setPartName(requestWrapper.partName());
             mdc.setRequestWrapperAnnot(rwAnnot);
         }
     }
@@ -217,6 +218,7 @@ public class JavaMethodsToMDCConverter {
             rwAnnot.setClassName(responseWrapper.className());
             rwAnnot.setLocalName(responseWrapper.localName());
             rwAnnot.setTargetNamespace(responseWrapper.targetNamespace());
+            rwAnnot.setPartName(responseWrapper.partName());
             mdc.setResponseWrapperAnnot(rwAnnot);
         }
     }

Modified: 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java?rev=965900&r1=965899&r2=965900&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java
 Tue Jul 20 16:44:48 2010
@@ -46,6 +46,7 @@ class FaultDescriptionImpl implements Fa
     private String name = "";  // WebFault.name
     private String faultBean = "";  // WebFault.faultBean
     private String targetNamespace = ""; // WebFault.targetNamespace
+    private String messageName = ""; //WebFault.messageName
     private String faultInfo = null;
 
     private static final String FAULT = "Fault";
@@ -163,6 +164,21 @@ class FaultDescriptionImpl implements Fa
         return name;
     }
 
+    public String getMessageName(){
+       if(messageName.length()>0){
+               return name;
+       }else{
+               WebFault annotation= this.getAnnoWebFault();
+               if(annotation!=null && annotation.messageName().length()>0){
+                       messageName=annotation.messageName();
+               }else{
+                       // The default is undefined.
+                // The JAX-WS layer may use the fault bean information to 
determine the name
+               }
+       }
+       return messageName;
+    }
+    
     public String getTargetNamespace() {
         if (targetNamespace.length() > 0) {
             return targetNamespace;

Modified: 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java?rev=965900&r1=965899&r2=965900&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
 Tue Jul 20 16:44:48 2010
@@ -123,13 +123,13 @@ class OperationDescriptionImpl
     private String requestWrapperTargetNamespace;
     private String requestWrapperLocalName;
     private String requestWrapperClassName;
-
+    private String requestWrapperPartName;
     // ANNOTATION: @ResponseWrapper
     private ResponseWrapper responseWrapperAnnotation;
     private String responseWrapperLocalName;
     private String responseWrapperTargetNamespace;
     private String responseWrapperClassName;
-    
+    private String responseWrapperPartName;
     // ANNOTATION: @Action
     private Action actionAnnotation;
 
@@ -1089,7 +1089,37 @@ class OperationDescriptionImpl
         }
         return requestWrapperClassName;
     }
-
+    
+    public String getRequestWrapperPartName(){
+       return getAnnoRequestWrapperPartName();
+    }
+    
+    /**
+     * Return PartName for RequestWrapper annotation if one present.
+     * @return
+     */
+    public String getAnnoRequestWrapperPartName(){
+       if(!isWrappedParameters()){
+               return null;
+       }
+        if (requestWrapperPartName == null) {
+            if (getAnnoRequestWrapper() != null &&
+                    
!DescriptionUtils.isEmpty(getAnnoRequestWrapper().partName())) {
+                requestWrapperPartName = getAnnoRequestWrapper().partName();
+            } else {
+                // There is no default for the RequestWrapper part name.  
+               requestWrapperPartName = null;
+            }
+        }
+        if(log.isDebugEnabled()){
+            if(requestWrapperPartName!=null){
+                log.debug("RequestWrapperPartName ="+requestWrapperPartName);
+            }else{
+                log.debug("RequestWrapperPartName = NULL");
+            }
+        }
+        return requestWrapperPartName;
+    }
     // ===========================================
     // ANNOTATION: ResponseWrapper
     // ===========================================
@@ -1194,6 +1224,36 @@ class OperationDescriptionImpl
         return responseWrapperClassName;
     }
 
+    public String getResponseWrapperPartName(){
+       return getAnnoResponseWrapperPartName();
+    }
+    
+    /**
+     * return ResponseWrapper PartName if one present.
+     * @return
+     */
+    public String getAnnoResponseWrapperPartName(){
+       if(!isWrappedParameters()){
+               return null;
+       }
+        if (responseWrapperPartName == null) {
+            if (getAnnoResponseWrapper() != null &&
+                    
!DescriptionUtils.isEmpty(getAnnoResponseWrapper().partName())) {
+                responseWrapperPartName = getAnnoResponseWrapper().partName();
+            } else {
+                // There is no default for the ResponseWrapper part name.  
+                responseWrapperPartName = null;
+            }
+        }
+        if(log.isDebugEnabled()){
+            if(responseWrapperPartName!=null){
+                log.debug("ResponseWrapperPartName ="+responseWrapperPartName);
+            }else{
+                log.debug("ResponseWrapperPartName = NULL");
+            }
+        }
+        return responseWrapperPartName;
+    }
     // ===========================================
     // ANNOTATION: WebFault
     // ===========================================

Modified: 
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java?rev=965900&r1=965899&r2=965900&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
 Tue Jul 20 16:44:48 2010
@@ -43,6 +43,7 @@ import javax.jws.soap.SOAPBinding;
 import javax.xml.ws.Holder;
 import javax.xml.ws.RequestWrapper;
 import javax.xml.ws.ResponseWrapper;
+import javax.xml.ws.WebFault;
 
 import java.io.IOException;
 import java.util.Iterator;
@@ -1346,6 +1347,33 @@ public class AnnotationServiceImplDescri
         assertTrue(checkParamDesc.isHeader());
     }
 
+    /**
+     * This method tests the new property updates in JAX-WS2.2 specification.
+     * @RequestWrapper(PartName)
+     * @ResponseWrapper(PartName)
+     * @WebFault(MessageName)
+     * We will ensure that these new properties are successfully set in the 
Metadata layer
+     */
+    public void testJAXWS22AnnotationPropertyUpdate(){
+       EndpointInterfaceDescription testEndpointInterfaceDesc =
+               getEndpointInterfaceDesc(ReqRspWrapperTestImpl.class);
+       OperationDescription operationDesc =
+               
testEndpointInterfaceDesc.getOperationForJavaMethod("method1")[0];
+       assertNotNull(operationDesc);
+       
+       assertEquals("jaxws22.RequestPartName",
+                       operationDesc.getRequestWrapperPartName());
+       
+       assertEquals("jaxws22.ResponsePartName",
+                       operationDesc.getResponseWrapperPartName());
+
+
+       operationDesc = 
testEndpointInterfaceDesc.getOperationForJavaMethod("method2")[0];
+       assertNotNull(operationDesc);
+       FaultDescription faultDescription = 
operationDesc.getFaultDescriptions()[0];
+       
+       assertEquals("jaxws22MessageName", faultDescription.getMessageName());
+    }
 
     /*
     * Method to return the endpoint interface description for a given 
implementation class.
@@ -1461,10 +1489,12 @@ class DefaultReqRspWrapperBareTestImpl {
 //Note the default parameterStyle is WRAPPED, so no type-level annotation is 
required.
 class ReqRspWrapperTestImpl {
     @RequestWrapper(localName = "method1ReqWrapper", targetNamespace = 
"http://a.b.c.method1ReqTNS";,
-                    className = 
"org.apache.axis2.jaxws.description.AnnotationServiceImplDescriptionTests.ReqRspWrapperTestImpl.method1ReqWrapper")
+                    className = 
"org.apache.axis2.jaxws.description.AnnotationServiceImplDescriptionTests.ReqRspWrapperTestImpl.method1ReqWrapper",
+                    partName = "jaxws22.RequestPartName")
     @ResponseWrapper(localName = "method1RspWrapper",
                      targetNamespace = "http://a.b.c.method1RspTNS";,
-                     className = 
"org.apache.axis2.jaxws.description.AnnotationServiceImplDescriptionTests.ReqRspWrapperTestImpl.method1RspWrapper")
+                     className = 
"org.apache.axis2.jaxws.description.AnnotationServiceImplDescriptionTests.ReqRspWrapperTestImpl.method1RspWrapper",
+                     partName = "jaxws22.ResponsePartName")
     public String method1(String s) {
         return s;
     }
@@ -1473,7 +1503,7 @@ class ReqRspWrapperTestImpl {
                     className = 
"org.apache.axis2.jaxws.description.AnnotationServiceImplDescriptionTests.ReqRspWrapperTestImpl.method2ReqWrapper")
     @ResponseWrapper(localName = "method2RspWrapper",
                      targetNamespace = "http://a.b.c.method2RspTNS";)
-    public String method2(String s) {
+    public String method2(String s) throws ReqRspWrapperException{
         return s;
     }
 
@@ -1490,6 +1520,17 @@ class ReqRspWrapperTestImpl {
     }
 }
 
+...@webfault(messageName="jaxws22MessageName")
+class ReqRspWrapperException extends Exception{
+       private String message = null;
+       public ReqRspWrapperException(){
+               
+       }
+       public ReqRspWrapperException(String message){
+               this.message = message;
+       }
+
+}
 //=============================================================================
 //testWebMethod service implementaiton class
 //=============================================================================


Reply via email to