gdaniels 2003/01/02 11:26:14
Modified: java/src/org/apache/axis/client Call.java
java/test/wsdl/interop4/groupG/dime/doc
DimeDOCInteropTestCase.java
java/src/org/apache/axis/wsdl/toJava JavaStubWriter.java
java/test/wsdl/interop4/groupG/mime/doc
MimeDOCInteropTestCase.java
Log:
Fix document style attachments tests for interop4 group "G".
Two major changes (plus a little cleanup in Call):
1) Call now uses the OperationDesc's returnClass, and doesn't keep
a separate (and potentially out-of-sync) copy in its own field.
2) JavaStubWriter now uses the more-correct classes for attachment
parameters, so that the addParameter()/setReturnClass() calls match
what we expect. This allows array conversions to work correctly.
Uncommented the group G doc style tests.
Revision Changes Path
1.197 +6 -12 xml-axis/java/src/org/apache/axis/client/Call.java
Index: Call.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v
retrieving revision 1.196
retrieving revision 1.197
diff -u -r1.196 -r1.197
--- Call.java 30 Dec 2002 14:36:45 -0000 1.196
+++ Call.java 2 Jan 2003 19:26:13 -0000 1.197
@@ -199,9 +199,6 @@
// A place to store any client-specified headers
private Vector myHeaders = null;
- // The desired return Java type, so we can do conversions if needed
- private Class returnJavaType = null;
-
public static final String SEND_TYPE_ATTR = "send_type_attr" ;
public static final String TRANSPORT_NAME = "transport_name" ;
public static final String TRANSPORT_PROPERTY= "java.protocol.handler.pkgs";
@@ -1015,7 +1012,6 @@
*/
public void setReturnType(QName xmlType, Class javaType) {
setReturnType(xmlType);
- returnJavaType = javaType;
// Use specified type as the operation return
operation.setReturnClass(javaType);
}
@@ -1096,8 +1092,6 @@
TypeMapping tm = getTypeMapping();
operation.setReturnType(tm.getTypeQName(cls));
parmAndRetReq = true;
-
- returnJavaType = cls;
}
/**
@@ -1157,7 +1151,6 @@
*
* Note: Not part of JAX-RPC specification.
*
- * @param portName PortName in the WSDL doc to search for
* @param opName Operation(method) that's going to be invoked
*/
public void setOperation(String opName) {
@@ -1423,7 +1416,6 @@
// Get the SOAPAction
////////////////////////////////////////////////////////////////////
- String opStyle = null;
BindingOperation bop = binding.getBindingOperation(opName,
null, null);
if ( bop == null )
@@ -1434,7 +1426,6 @@
Object obj = list.get(i);
if ( obj instanceof SOAPOperation ) {
SOAPOperation sop = (SOAPOperation) obj ;
- opStyle = ((SOAPOperation) obj).getStyle();
String action = sop.getSoapActionURI();
if ( action != null ) {
setUseSOAPAction(true);
@@ -2306,8 +2297,8 @@
}
// Convert type if needed
- if (returnJavaType != null) {
- result = JavaUtils.convert(result, returnJavaType);
+ if (operation != null && operation.getReturnClass() != null) {
+ result = JavaUtils.convert(result, operation.getReturnClass());
}
return( result );
@@ -2492,7 +2483,10 @@
SOAPBodyElement respBody = resEnv.getFirstBody();
if (respBody instanceof SOAPFault) {
- if(returnJavaType == null || returnJavaType !=
javax.xml.soap.SOAPMessage.class)
+ if(operation == null ||
+ operation.getReturnClass() == null ||
+ operation.getReturnClass() !=
+ javax.xml.soap.SOAPMessage.class)
throw ((SOAPFault)respBody).getFault();
}
}
1.2 +0 -4
xml-axis/java/test/wsdl/interop4/groupG/dime/doc/DimeDOCInteropTestCase.java
Index: DimeDOCInteropTestCase.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/test/wsdl/interop4/groupG/dime/doc/DimeDOCInteropTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DimeDOCInteropTestCase.java 2 Jan 2003 00:02:42 -0000 1.1
+++ DimeDOCInteropTestCase.java 2 Jan 2003 19:26:13 -0000 1.2
@@ -58,16 +58,12 @@
input[0] = new OctetStream("EchoAttachments0".getBytes());
input[1] = new OctetStream("EchoAttachments1".getBytes());
- //TODO: Need to fix wsdl2java generation. Getting a "Bad Types"
- // Exception if we enable the following code.
- /*
// Test operation
OctetStream[] output = null;
output = binding.echoAttachments(input);
// TBD - validate results
assertTrue(Arrays.equals(input[0].getBytes(), output[0].getBytes()));
assertTrue(Arrays.equals(input[1].getBytes(), output[1].getBytes()));
- */
}
public void test3DimeDOCSoapPortEchoAttachmentAsBase64() throws Exception {
1.109 +3 -2
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java
Index: JavaStubWriter.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -r1.108 -r1.109
--- JavaStubWriter.java 30 Dec 2002 14:36:46 -0000 1.108
+++ JavaStubWriter.java 2 Jan 2003 19:26:13 -0000 1.109
@@ -57,6 +57,7 @@
import org.apache.axis.enum.Style;
import org.apache.axis.enum.Use;
import org.apache.axis.utils.Messages;
+import org.apache.axis.utils.JavaUtils;
import org.apache.axis.wsdl.symbolTable.BindingEntry;
import org.apache.axis.wsdl.symbolTable.CollectionTE;
import org.apache.axis.wsdl.symbolTable.Element;
@@ -376,7 +377,7 @@
String javaType = null;
if (p.getMIMEInfo() != null) {
MimeInfo mimeInfo = p.getMIMEInfo();
- javaType = "javax.activation.DataHandler" +
mimeInfo.getDimensions() + ".class, ";
+ javaType = JavaUtils.mimeToJava(mimeInfo.getType()) +
mimeInfo.getDimensions() + ".class, ";
}
else {
javaType = p.getType().getName();
@@ -410,7 +411,7 @@
String javaType = null;
if (parameters.returnParam.getMIMEInfo() != null) {
MimeInfo mimeInfo = parameters.returnParam.getMIMEInfo();
- javaType = "javax.activation.DataHandler" +
mimeInfo.getDimensions();
+ javaType = JavaUtils.mimeToJava(mimeInfo.getType()) +
mimeInfo.getDimensions();
}
else {
javaType = parameters.returnParam.getType().getName();
1.2 +0 -4
xml-axis/java/test/wsdl/interop4/groupG/mime/doc/MimeDOCInteropTestCase.java
Index: MimeDOCInteropTestCase.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/test/wsdl/interop4/groupG/mime/doc/MimeDOCInteropTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MimeDOCInteropTestCase.java 31 Dec 2002 22:46:51 -0000 1.1
+++ MimeDOCInteropTestCase.java 2 Jan 2003 19:26:14 -0000 1.2
@@ -60,16 +60,12 @@
input[0] = new OctetStream("EchoAttachments0".getBytes());
input[1] = new OctetStream("EchoAttachments1".getBytes());
- //TODO: Need to fix wsdl2java generation. Getting a "Bad Types"
- // Exception if we enable the following code.
- /*
// Test operation
OctetStream[] output = null;
output = binding.echoAttachments(input);
// TBD - validate results
assertTrue(Arrays.equals(input[0].getBytes(), output[0].getBytes()));
assertTrue(Arrays.equals(input[1].getBytes(), output[1].getBytes()));
- */
}
public void test3MimeDOCSoapPortEchoAttachmentAsBase64() throws Exception {