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 wo...@apache.org on 2009/09/22 23:52:04 UTC

svn commit: r817854 - in /webservices/axis2/trunk/java/modules/jaxws: src/org/apache/axis2/jaxws/marshaller/factory/MethodMarshallerFactory.java test/org/apache/axis2/jaxws/description/AnnotationDescriptionTests.java

Author: woodroy
Date: Tue Sep 22 21:52:01 2009
New Revision: 817854

URL: http://svn.apache.org/viewvc?rev=817854&view=rev
Log:
Fix isDocLitMinimalMethodMarshaller to look for responseWrapper only if the operation is not oneWay
contributor: Roy Wood

Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/factory/MethodMarshallerFactory.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationDescriptionTests.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/factory/MethodMarshallerFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/factory/MethodMarshallerFactory.java?rev=817854&r1=817853&r2=817854&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/factory/MethodMarshallerFactory.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/factory/MethodMarshallerFactory.java Tue Sep 22 21:52:01 2009
@@ -238,23 +238,38 @@
             MarshalServiceRuntimeDescription marshalDesc =
                     MarshalServiceRuntimeDescriptionFactory.get(serviceDesc);
             String requestWrapper = marshalDesc.getRequestWrapperClassName(op);
-            if (!exists(requestWrapper)) {
-            	if(log.isDebugEnabled()){
-            		log.debug("Request wrapper class name is NULL.");
-            	}
-                return true;
-            }
+            
+            
+            if (op.isOneWay()) {
+                if (!exists(requestWrapper)) {
+                        if(log.isDebugEnabled()){
+                                log.debug("OneWay Request wrapper class name is NULL.");
+                        }
+                        return true;
+                } 
+                
+                return false;
+            } else  { //This is 2-way or async so both wrappers should exist
+                if (!exists(requestWrapper)) {
+                    if(log.isDebugEnabled()){
+                        log.debug("Request wrapper class name is NULL.");
+                    }
+                    return true;
+                } 
 
-            //String responseWrapper = marshalDesc.getRequestWrapperClassName(op);
-            String responseWrapper = marshalDesc.getResponseWrapperClassName(op);
-            if (!exists(responseWrapper)) {
-            	if(log.isDebugEnabled()){
-            		log.debug("Response wrapper class name is NULL.");
-            	}
-                return true;
+                String responseWrapper = marshalDesc.getResponseWrapperClassName(op);
+                if (!exists(responseWrapper)) {
+                    if(log.isDebugEnabled()){
+                        log.debug("Response wrapper class name is NULL.");
+                    }
+                    return true;
+                }
+                
+                return false;
             }
             // TODO Do the same for the fault beans
         }
+        
         return false;
     }
 

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationDescriptionTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationDescriptionTests.java?rev=817854&r1=817853&r2=817854&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationDescriptionTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationDescriptionTests.java Tue Sep 22 21:52:01 2009
@@ -21,11 +21,14 @@
 package org.apache.axis2.jaxws.description;
 
 import junit.framework.TestCase;
-import org.apache.axis2.jaxws.spi.ServiceDelegate;
-
+import java.lang.reflect.Method;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Service;
-import java.lang.reflect.Method;
+
+import org.apache.axis2.jaxws.marshaller.MethodMarshaller;
+import org.apache.axis2.jaxws.marshaller.factory.MethodMarshallerFactory;
+import org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMethodMarshaller;
+import org.apache.axis2.jaxws.spi.ServiceDelegate;
 
 /**
  * Directly test the Description classes built via annotations without a WSDL file.
@@ -90,6 +93,14 @@
         // Verify an SEI method lookup works
         operationResult = endpointInterfaceDescription.getOperation(seiMethods[0]);
         assertNotNull(operationResult);
+        
+        //Verify OneWay Method is not minimal when there is a request wrapper        
+        OperationDescription oneWayOperation = endpointInterfaceDescription.getOperation("oneWayVoid");
+        
+        MethodMarshaller methodMarshaller = MethodMarshallerFactory.getMarshaller(oneWayOperation, false);
+       
+        assertEquals("Method Marshaller class is incorrect for oneWay Doc/Lit/Wrapped operation", DocLitWrappedMethodMarshaller.class, methodMarshaller.getClass());
+        
         // Verify a non-SEI method returns a null
         operationResult = endpointInterfaceDescription.getOperation(this.getClass().getMethods()[0]);
         assertNull(operationResult);