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 ba...@apache.org on 2006/10/10 22:05:33 UTC
svn commit: r462538 - in /webservices/axis2/trunk/java/modules/jaxws:
src/javax/jws/ src/org/apache/axis2/jaxws/description/
src/org/apache/axis2/jaxws/marshaller/impl/
test/org/apache/axis2/jaxws/description/
Author: barrettj
Date: Tue Oct 10 13:05:32 2006
New Revision: 462538
URL: http://svn.apache.org/viewvc?view=rev&rev=462538
Log:
Add JAX-WS default processing for WebResult, along with associated test.
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/javax/jws/WebResult.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/javax/jws/WebResult.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/javax/jws/WebResult.java?view=diff&rev=462538&r1=462537&r2=462538
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/javax/jws/WebResult.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/javax/jws/WebResult.java Tue Oct 10 13:05:32 2006
@@ -11,7 +11,7 @@
@Target (ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface WebResult {
- String name() default "return";
+ String name() default "";
String targetNamespace() default "";
boolean header() default false;
String partName() default "";
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java?view=diff&rev=462538&r1=462537&r2=462538
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java Tue Oct 10 13:05:32 2006
@@ -152,6 +152,13 @@
// ANNOTATION: @WebResult
private WebResult webResultAnnotation;
private String webResultName;
+ private String webResultPartName;
+ // Default value per JSR-181 MR Sec 4.5.1, pg 23
+ public static final String WebResult_TargetNamespace_DEFAULT = "";
+ private String webResultTargetNamespace;
+ // Default value per JSR-181 MR sec 4.5, pg 24
+ public static final Boolean WebResult_Header_DEFAULT = new Boolean(false);
+ private Boolean webResultHeader;
OperationDescription(Method method, EndpointInterfaceDescription parent) {
// TODO: Look for WebMethod anno; get name and action off of it
@@ -527,22 +534,92 @@
}
return webResultAnnotation;
}
+
public boolean isWebResultAnnotationSpecified() {
return getWebResult() != null;
}
- // TODO: This method returns null if the annotation is not specified; others return default values. I think null is the correct thing to return; change the others
+ public boolean isOperationReturningResult() {
+ return !isOneWay() && (seiMethod.getReturnType() != Void.TYPE);
+ }
+
public String getWebResultName() {
- if (isWebResultAnnotationSpecified() && webResultName == null) {
- if (!DescriptionUtils.isEmpty(getWebResult().name())) {
+ if (!isOperationReturningResult()) {
+ return null;
+ }
+ if (webResultName == null) {
+ if (getWebResult() != null && !DescriptionUtils.isEmpty(getWebResult().name())) {
webResultName = getWebResult().name();
}
+ else if (getSoapBindingStyle() == SOAPBinding.Style.DOCUMENT
+ && getSoapBindingParameterStyle() == SOAPBinding.ParameterStyle.BARE) {
+ // Default for operation style DOCUMENT and paramater style BARE per JSR 181 MR Sec 4.5.1, pg 23
+ webResultName = getWebMethodOperationName() + "Response";
+
+ }
else {
- // Defeault value is "return" per JSR-181 Sec. 4.5.1, p. 22
+ // Defeault value is "return" per JSR-181 MR Sec. 4.5.1, p. 22
webResultName = "return";
}
}
return webResultName;
+ }
+
+ public String getWebResultPartName() {
+ if (!isOperationReturningResult()) {
+ return null;
+ }
+ if (webResultPartName == null) {
+ if (getWebResult() != null && !DescriptionUtils.isEmpty(getWebResult().partName())) {
+ webResultPartName = getWebResult().partName();
+ }
+ else {
+ // Default is the WebResult.name per JSR-181 MR Sec 4.5.1, pg 23
+ webResultPartName = getWebResultName();
+ }
+ }
+ return webResultPartName;
+ }
+
+ public String getWebResultTargetNamespace() {
+ if (!isOperationReturningResult()) {
+ return null;
+ }
+ if (webResultTargetNamespace == null) {
+ if (getWebResult() != null && !DescriptionUtils.isEmpty(getWebResult().targetNamespace())) {
+ webResultTargetNamespace = getWebResult().targetNamespace();
+ }
+ else if (getSoapBindingStyle() == SOAPBinding.Style.DOCUMENT
+ && getSoapBindingParameterStyle() == SOAPBinding.ParameterStyle.WRAPPED
+ && !getWebResultHeader()) {
+ // Default for operation style DOCUMENT and paramater style WRAPPED and the return value
+ // does not map to a header per JSR-181 MR Sec 4.5.1, pg 23-24
+ webResultTargetNamespace = WebResult_TargetNamespace_DEFAULT;
+ }
+ else {
+ // Default is the namespace from the WebService per JSR-181 MR Sec 4.5.1, pg 23-24
+ webResultTargetNamespace = getEndpointInterfaceDescription().getEndpointDescription().getWebServiceTargetNamespace();
+ }
+
+ }
+ return webResultTargetNamespace;
+ }
+
+ public boolean getWebResultHeader() {
+ if (!isOperationReturningResult()) {
+ return false;
+ }
+ if (webResultHeader == null) {
+ if (getWebResult() != null) {
+ // Unlike the elements with a String value, if the annotation is present, exclude will always
+ // return a usable value since it will default to FALSE if the element is not present.
+ webResultHeader = new Boolean(getWebResult().header());
+ }
+ else {
+ webResultHeader = WebResult_Header_DEFAULT;
+ }
+ }
+ return webResultHeader.booleanValue();
}
// ===========================================
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java?view=diff&rev=462538&r1=462537&r2=462538
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/DocLitWrappedMethodMarshallerImpl.java Tue Oct 10 13:05:32 2006
@@ -68,8 +68,11 @@
String resultName = operationDesc.getWebResultName();
Object bo = createBusinessObject(wrapperClazz, message);
createResponseHolders(bo, inputArgs, false);
- //if result name is null and that means there is no webResult meaning its a void return.
- if(resultName !=null){
+ // REVIEW: Is the the appropriate logic, to be checking for the existence of the annotation
+ // as the decision point for getting into the property logic? Note that even if the annotation
+ // is not present, a default result name will be returned.
+ // If the WebResult annotation is present, then look up the result Name
+ if(operationDesc.isWebResultAnnotationSpecified()){
//if ReturnType is not of same type as JAXBBlock business Object then I will look for resultName in Business Object and return that.
Object resultObject = findProperty(resultName, bo);
return resultObject;
Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java?view=diff&rev=462538&r1=462537&r2=462538
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java Tue Oct 10 13:05:32 2006
@@ -18,7 +18,9 @@
package org.apache.axis2.jaxws.description;
+import javax.jws.Oneway;
import javax.jws.WebMethod;
+import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.RequestWrapper;
@@ -160,9 +162,14 @@
// Check the WebParam Names (see note above)
assertEquals(1, webParamNames.length);
assertEquals("invoke_str", webParamNames[0]);
- // Check the lack of a WebResult annotation
- assertEquals(false, operation.isWebResultAnnotationSpecified());
- assertEquals(null, operation.getWebResultName());
+ // Check the lack of a WebResult annotation and the default values for
+ // SOAPBinding Style=DOCUMENT, Use=LITERAL, ParamStyle=WRAPPED
+ // Note that the SOAPBinding annotation is also not present and thus fully defaulted.
+ assertNull(operation.getWebResult());
+ assertEquals("return", operation.getWebResultName());
+ assertEquals("return", operation.getWebResultPartName());
+ assertEquals("", operation.getWebResultTargetNamespace());
+ assertFalse(operation.getWebResultHeader());
}
}
else if (checkParams.length == 2) {
@@ -178,9 +185,14 @@
// Check the WebParam Names (see note above)
assertEquals(2, webParamNames.length);
assertEquals("invoke_str", webParamNames[0]);
- // Check the lack of a WebResult annotation
- assertEquals(false, operation.isWebResultAnnotationSpecified());
- assertEquals(null, operation.getWebResultName());
+ // Check the lack of a WebResult annotation and the default values for
+ // SOAPBinding Style=DOCUMENT, Use=LITERAL, ParamStyle=WRAPPED
+ // Note that the SOAPBinding annotation is also not present and thus fully defaulted.
+ assertNull(operation.getWebResult());
+ assertEquals("return", operation.getWebResultName());
+ assertEquals("return", operation.getWebResultPartName());
+ assertEquals("", operation.getWebResultTargetNamespace());
+ assertFalse(operation.getWebResultHeader());
}
}
else {
@@ -216,9 +228,14 @@
assertEquals(3, webParamNames.length);
assertEquals("twoWayHolder_str", webParamNames[0]);
assertEquals("twoWayHolder_int", webParamNames[1]);
- // Check the lack of a WebResult annotation
- assertEquals(false, operation.isWebResultAnnotationSpecified());
- assertEquals(null, operation.getWebResultName());
+ // Check the lack of a WebResult annotation and the default values for
+ // SOAPBinding Style=DOCUMENT, Use=LITERAL, ParamStyle=WRAPPED
+ // Note that the SOAPBinding annotation is also not present and thus fully defaulted.
+ assertNull(operation.getWebResult());
+ assertEquals("return", operation.getWebResultName());
+ assertEquals("return", operation.getWebResultPartName());
+ assertEquals("", operation.getWebResultTargetNamespace());
+ assertFalse(operation.getWebResultHeader());
}
}
else if (checkParams.length == 2) {
@@ -234,9 +251,14 @@
assertEquals(2, webParamNames.length);
assertEquals("twoWayHolder_str", webParamNames[0]);
assertEquals("twoWayHolder_int", webParamNames[1]);
- // Check the lack of a WebResult annotation
- assertEquals(false, operation.isWebResultAnnotationSpecified());
- assertEquals(null, operation.getWebResultName());
+ // Check the lack of a WebResult annotation and the default values for
+ // SOAPBinding Style=DOCUMENT, Use=LITERAL, ParamStyle=WRAPPED
+ // Note that the SOAPBinding annotation is also not present and thus fully defaulted.
+ assertNull(operation.getWebResult());
+ assertEquals("return", operation.getWebResultName());
+ assertEquals("return", operation.getWebResultPartName());
+ assertEquals("", operation.getWebResultTargetNamespace());
+ assertFalse(operation.getWebResultHeader());
}
}
else {
@@ -253,16 +275,27 @@
assertNotNull(checkEmptyParams);
assertEquals(checkEmptyParams.length, 0);
assertEquals(true, operations[0].isOneWay());
- assertEquals(false, operations[0].isWebResultAnnotationSpecified());
+ // Check the lack of a WebResult annotation and the default values for
+ // a ONE-WAY / VOID operation with a SOAPBinding Style=DOCUMENT, Use=LITERAL, ParamStyle=WRAPPED
+ // Note that the SOAPBinding annotation is also not present and thus fully defaulted.
+ assertNull(operations[0].getWebResult());
+ assertFalse(operations[0].isWebResultAnnotationSpecified());
+ assertFalse(operations[0].isOperationReturningResult());
assertEquals(null, operations[0].getWebResultName());
+ assertEquals(null, operations[0].getWebResultPartName());
+ assertEquals(null, operations[0].getWebResultTargetNamespace());
+ assertFalse(operations[0].getWebResultHeader());
// Test two-way method for lack of OneWay annotation and WebResult annotation
operations = endpointIntfDesc.getOperation("invoke");
assertNotNull(operations);
assertEquals(1, operations.length);
assertEquals(false, operations[0].isOneWay());
- assertEquals(true, operations[0].isWebResultAnnotationSpecified());
+ assertNotNull(operations[0].getWebResult());
assertEquals("return_str", operations[0].getWebResultName());
+ assertEquals("return_str", operations[0].getWebResultPartName());
+ assertEquals("", operations[0].getWebResultTargetNamespace());
+ assertFalse(operations[0].getWebResultHeader());
}
// ===========================================
@@ -277,6 +310,15 @@
assertEquals(javax.jws.soap.SOAPBinding.Style.DOCUMENT, testEndpointInterfaceDesc.getSoapBindingStyle());
assertEquals(javax.jws.soap.SOAPBinding.Use.LITERAL, testEndpointInterfaceDesc.getSoapBindingUse());
assertEquals(javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED, testEndpointInterfaceDesc.getSoapBindingParameterStyle());
+
+ OperationDescription operationDesc = testEndpointInterfaceDesc.getOperation("echoString")[0];
+ // Verify WebResult annotation default values for DOC/LIT/WRAPPED from a defaulted SOAPBinding
+ assertNull(operationDesc.getWebResult());
+ assertEquals("return", operationDesc.getWebResultName());
+ assertEquals("return", operationDesc.getWebResultPartName());
+ assertEquals("", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
}
public void testSOAPBindingDocEncBare() {
@@ -331,6 +373,14 @@
// TODO: Tests for request and response wrapper namespace; currently throws UnsupportedOperationException
assertEquals("org.apache.axis2.jaxws.description.WrappedParams", operationDesc.getRequestWrapperClassName());
assertEquals("org.apache.axis2.jaxws.description.WrappedParams", operationDesc.getResponseWrapperClassName());
+ // Test WebResult annotation defaults
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("return", operationDesc.getWebResultName());
+ assertEquals("return", operationDesc.getWebResultPartName());
+ assertEquals("", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
operationDesc = testEndpointInterfaceDesc.getOperation("bareParams")[0];
assertNotNull(operationDesc);
@@ -340,6 +390,14 @@
assertNull(operationDesc.getResponseWrapperTargetNamespace());
assertNull(operationDesc.getRequestWrapperClassName());
assertNull(operationDesc.getResponseWrapperClassName());
+ // Test WebResult annotation defaults
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("bareParamsResponse", operationDesc.getWebResultName());
+ assertEquals("bareParamsResponse", operationDesc.getWebResultPartName());
+ assertEquals("http://description.jaxws.axis2.apache.org/", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
// Test paramaterStyle = BARE set a the type level with various combinations of method annotation setting
testEndpointInterfaceDesc = getEndpointInterfaceDesc(DefaultReqRspWrapperBareTestImpl.class);
@@ -423,6 +481,174 @@
assertTrue(operationDesc.getWebMethodExclude());
}
+
+ public void testWebResult() {
+ EndpointInterfaceDescription testEndpointInterfaceDesc = getEndpointInterfaceDesc(WebResultTestImpl.class);
+
+ // DOCUMENT / LITERAL / WRAPPED methods
+
+ OperationDescription operationDesc = testEndpointInterfaceDesc.getOperation("method0")[0];
+ assertNotNull(operationDesc);
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("return", operationDesc.getWebResultName());
+ assertEquals("return", operationDesc.getWebResultPartName());
+ assertEquals("", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method1")[0];
+ assertNotNull(operationDesc);
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("return", operationDesc.getWebResultName());
+ assertEquals("return", operationDesc.getWebResultPartName());
+ assertEquals("", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method2")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("return", operationDesc.getWebResultName());
+ assertEquals("return", operationDesc.getWebResultPartName());
+ assertEquals("", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method3")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName", operationDesc.getWebResultName());
+ assertEquals("resultName", operationDesc.getWebResultPartName());
+ assertEquals("", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method4")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName", operationDesc.getWebResultName());
+ assertEquals("partName", operationDesc.getWebResultPartName());
+ assertEquals("http://result.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method5")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName5", operationDesc.getWebResultName());
+ assertEquals("partName5", operationDesc.getWebResultPartName());
+ assertEquals("http://result.test.target.namespace.5/", operationDesc.getWebResultTargetNamespace());
+ assertTrue(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method6")[0];
+ assertNotNull(operationDesc);
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertFalse(operationDesc.isOperationReturningResult());
+ assertEquals(null, operationDesc.getWebResultName());
+ assertEquals(null, operationDesc.getWebResultPartName());
+ assertEquals(null, operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method7")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName7", operationDesc.getWebResultName());
+ assertEquals("partName7", operationDesc.getWebResultPartName());
+ assertEquals("http://service.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertTrue(operationDesc.getWebResultHeader());
+
+ // DOCUMENT / LITERAL / BARE methods
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method0_bare")[0];
+ assertNotNull(operationDesc);
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("method0_bareResponse", operationDesc.getWebResultName());
+ assertEquals("method0_bareResponse", operationDesc.getWebResultPartName());
+ assertEquals("http://service.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method1_bare")[0];
+ assertNotNull(operationDesc);
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("renamedMethod1BareResponse", operationDesc.getWebResultName());
+ assertEquals("renamedMethod1BareResponse", operationDesc.getWebResultPartName());
+ assertEquals("http://service.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method2_bare")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("renamedMethod2BareResponse", operationDesc.getWebResultName());
+ assertEquals("renamedMethod2BareResponse", operationDesc.getWebResultPartName());
+ assertEquals("http://service.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method3_bare")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName", operationDesc.getWebResultName());
+ assertEquals("resultName", operationDesc.getWebResultPartName());
+ assertEquals("http://service.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method4_bare")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName", operationDesc.getWebResultName());
+ assertEquals("partName", operationDesc.getWebResultPartName());
+ assertEquals("http://result.bare.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method5_bare")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName5", operationDesc.getWebResultName());
+ assertEquals("partName5", operationDesc.getWebResultPartName());
+ assertEquals("http://result.bare.test.target.namespace.5/", operationDesc.getWebResultTargetNamespace());
+ assertTrue(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method6_bare")[0];
+ assertNotNull(operationDesc);
+ assertNull(operationDesc.getWebResult());
+ assertFalse(operationDesc.isWebResultAnnotationSpecified());
+ assertFalse(operationDesc.isOperationReturningResult());
+ assertEquals(null, operationDesc.getWebResultName());
+ assertEquals(null, operationDesc.getWebResultPartName());
+ assertEquals(null, operationDesc.getWebResultTargetNamespace());
+ assertFalse(operationDesc.getWebResultHeader());
+
+ operationDesc = testEndpointInterfaceDesc.getOperation("method7")[0];
+ assertNotNull(operationDesc);
+ assertNotNull(operationDesc.getWebResult());
+ assertTrue(operationDesc.isWebResultAnnotationSpecified());
+ assertTrue(operationDesc.isOperationReturningResult());
+ assertEquals("resultName7", operationDesc.getWebResultName());
+ assertEquals("partName7", operationDesc.getWebResultPartName());
+ assertEquals("http://service.test.target.namespace/", operationDesc.getWebResultTargetNamespace());
+ assertTrue(operationDesc.getWebResultHeader());
+ }
/*
* Method to return the endpoint interface description for a given implementation class.
@@ -448,6 +674,8 @@
// ============================================================================
// SOAPBindingDefaultTest service implementation class
+// @SOAPBinding values: style=DOCUMENT, use=LITERAL, paramaterStyle=WRAPPED
+// @WebResult values: are all defaulted
// ============================================================================
@WebService()
class SOAPBindingDefaultTestImpl {
@@ -468,7 +696,7 @@
}
// ============================================================================
// SOAPBindingDefaultMethodTest service implementation class
-// Note that style should default to DOCUMENT based on Type annotation
+// Note that style will default to DOCUMENT based on Type annotation
// ============================================================================
@WebService()
class SOAPBindingDefaultMethodTestImpl {
@@ -556,3 +784,110 @@
return s;
}
}
+
+// ===============================================
+// Web Result
+// ===============================================
+@WebService(targetNamespace="http://service.test.target.namespace/")
+// Default SOAPBinding Style=DOCUMENT, Use=LITERAL, ParamStyle=WRAPPED
+class WebResultTestImpl {
+ // DOCUMENT / LITERAL / WRAPPED methods
+ public String method0(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod1")
+ public String method1(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod2")
+ @WebResult()
+ public String method2(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod3")
+ @WebResult(name="resultName")
+ public String method3(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod4")
+ @WebResult(name="resultName", partName="partName", targetNamespace="http://result.test.target.namespace/")
+ public String method4(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod5")
+ @WebResult(name="resultName5", partName="partName5", targetNamespace="http://result.test.target.namespace.5/", header=true)
+ public String method5(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod6")
+ @Oneway
+ public void method6(String s) {
+ return;
+ }
+
+ @WebMethod(operationName="renamedMethod7")
+ @WebResult(name="resultName7", partName="partName7", header=true)
+ public String method7(String s) {
+ return s;
+ }
+
+ // DOCUMENT / LITERAL / BARE methods
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ public String method0_bare(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod1Bare")
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ public String method1_bare(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod2Bare")
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ @WebResult()
+ public String method2_bare(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod3Bare")
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ @WebResult(name="resultName")
+ public String method3_bare(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod4Bare")
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ @WebResult(name="resultName", partName="partName", targetNamespace="http://result.bare.test.target.namespace/")
+ public String method4_bare(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod5Bare")
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ @WebResult(name="resultName5", partName="partName5", targetNamespace="http://result.bare.test.target.namespace.5/", header=true)
+ public String method5_bare(String s) {
+ return s;
+ }
+
+ @WebMethod(operationName="renamedMethod6Bare")
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ @Oneway
+ public void method6_bare(String s) {
+ return;
+ }
+
+ @WebMethod(operationName="renamedMethod7Bare")
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ @WebResult(name="resultName7", partName="partName7", header=true)
+ public String method7_bare(String s) {
+ return s;
+ }
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org