dims 2002/12/31 14:46:52
Modified: java/test/wsdl/interop4/groupG/mime/doc build.xml
mime-doc.wsdl
java/src/org/apache/axis/wsdl/symbolTable SchemaUtils.java
SymbolTable.java
Added: java/test/wsdl/interop4/groupG/mime/doc
AttachmentsBindingImpl.java
MimeDOCInteropTestCase.java
Log:
Initial check-in for GroupG Interop mime/doc tests.
Note:
- EchoAttachments does not work. (Glen, Can you please help?)
Revision Changes Path
1.3 +8 -7 xml-axis/java/test/wsdl/interop4/groupG/mime/doc/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/xml-axis/java/test/wsdl/interop4/groupG/mime/doc/build.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- build.xml 29 Nov 2002 23:32:53 -0000 1.2
+++ build.xml 31 Dec 2002 22:46:51 -0000 1.3
@@ -54,7 +54,8 @@
<!-- generate skeletons -->
<wsdl2java url="${axis.home}/test/wsdl/interop4/groupG/mime/doc/mime-doc.wsdl"
output="${root.dir}/build/work"
- skeletonDeploy="no"
+ timeout="-1"
+ skeletonDeploy="yes"
testCase="yes"
serverSide="yes">
<mapping namespace="http://soapinterop.org/attachments/wsdl"
package="test.wsdl.interop4.groupG.mime.doc"/>
@@ -70,14 +71,14 @@
</wsdl2java>
<mkdir dir="${build.dest}"/>
- <!--
- <copy file="BaseTypesInteropTestsTestCase.java"
- todir="${root.dir}/build/work/test/wsdl/interop5/basetype/"
+
+ <copy
file="${axis.home}/test/wsdl/interop4/groupG/mime/doc/MimeDOCInteropTestCase.java"
+ todir="${root.dir}/build/work/test/wsdl/interop4/groupG/mime/doc"
overwrite="yes"/>
- <copy file="InteropTestsBindingImpl.java"
- todir="${root.dir}/build/work/test/wsdl/interop5/basetype/"
+ <copy
file="${axis.home}/test/wsdl/interop4/groupG/mime/doc/AttachmentsBindingImpl.java"
+ todir="${root.dir}/build/work/test/wsdl/interop4/groupG/mime/doc"
overwrite="yes"/>
- -->
+
<!-- compile the skeletons -->
<javac srcdir="${build.dir}/work"
destdir="${build.dest}" debug="on">
1.2 +5 -0 xml-axis/java/test/wsdl/interop4/groupG/mime/doc/mime-doc.wsdl
Index: mime-doc.wsdl
===================================================================
RCS file: /home/cvs/xml-axis/java/test/wsdl/interop4/groupG/mime/doc/mime-doc.wsdl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mime-doc.wsdl 1 Nov 2002 21:43:04 -0000 1.1
+++ mime-doc.wsdl 31 Dec 2002 22:46:51 -0000 1.2
@@ -177,4 +177,9 @@
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
+ <wsdl:service name="MimeDOCInterop">
+ <wsdl:port name="MimeDOCSoapPort" binding="AttachmentsBinding">
+ <soap:address
location="http://localhost:8080/axis/services/MimeDOCSoapPort"/>
+ </wsdl:port>
+ </wsdl:service>
</wsdl:definitions>
1.1
xml-axis/java/test/wsdl/interop4/groupG/mime/doc/AttachmentsBindingImpl.java
Index: AttachmentsBindingImpl.java
===================================================================
/**
* AttachmentsBindingImpl.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package test.wsdl.interop4.groupG.mime.doc;
public class AttachmentsBindingImpl implements
test.wsdl.interop4.groupG.mime.doc.AttachmentsPortType{
public org.apache.axis.attachments.OctetStream
echoAttachment(org.apache.axis.attachments.OctetStream in) throws
java.rmi.RemoteException {
return in;
}
public org.apache.axis.attachments.OctetStream[]
echoAttachments(org.apache.axis.attachments.OctetStream item[]) throws
java.rmi.RemoteException {
return item;
}
public test.wsdl.interop4.groupG.mime.doc.xsd.Binary
echoAttachmentAsBase64(org.apache.axis.attachments.OctetStream in) throws
java.rmi.RemoteException {
return new test.wsdl.interop4.groupG.mime.doc.xsd.Binary(in.getBytes());
}
public org.apache.axis.attachments.OctetStream
echoBase64AsAttachment(test.wsdl.interop4.groupG.mime.doc.xsd.Binary in) throws
java.rmi.RemoteException {
return new org.apache.axis.attachments.OctetStream(in.getValue());
}
}
1.1
xml-axis/java/test/wsdl/interop4/groupG/mime/doc/MimeDOCInteropTestCase.java
Index: MimeDOCInteropTestCase.java
===================================================================
/**
* MimeDOCInteropTestCase.java
*
* This file was auto-generated from WSDL
* by the Apache Axis WSDL2Java emitter.
*/
package test.wsdl.interop4.groupG.mime.doc;
import org.apache.axis.attachments.OctetStream;
import java.util.Arrays;
import java.net.URL;
public class MimeDOCInteropTestCase extends junit.framework.TestCase {
public MimeDOCInteropTestCase(java.lang.String name) {
super(name);
}
protected void setUp() throws Exception {
if(url == null) {
url = new URL(new
test.wsdl.interop4.groupG.mime.doc.MimeDOCInteropLocator().getMimeDOCSoapPortAddress());
}
}
public void test1MimeDOCSoapPortEchoAttachment() throws Exception {
test.wsdl.interop4.groupG.mime.doc.AttachmentsPortType binding;
try {
binding = new
test.wsdl.interop4.groupG.mime.doc.MimeDOCInteropLocator().getMimeDOCSoapPort(url);
}
catch (javax.xml.rpc.ServiceException jre) {
if(jre.getLinkedCause()!=null)
jre.getLinkedCause().printStackTrace();
throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException
caught: " + jre);
}
assertTrue("binding is null", binding != null);
// Test operation
OctetStream input = new OctetStream("EchoAttachment".getBytes());
OctetStream output = null;
output = binding.echoAttachment(input);
// TBD - validate results
assertTrue(Arrays.equals(input.getBytes(), output.getBytes()));
}
public void test2MimeDOCSoapPortEchoAttachments() throws Exception {
test.wsdl.interop4.groupG.mime.doc.AttachmentsPortType binding;
try {
binding = new
test.wsdl.interop4.groupG.mime.doc.MimeDOCInteropLocator().getMimeDOCSoapPort(url);
}
catch (javax.xml.rpc.ServiceException jre) {
if(jre.getLinkedCause()!=null)
jre.getLinkedCause().printStackTrace();
throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException
caught: " + jre);
}
assertTrue("binding is null", binding != null);
OctetStream[] input = new OctetStream[2];
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 {
test.wsdl.interop4.groupG.mime.doc.AttachmentsPortType binding;
try {
binding = new
test.wsdl.interop4.groupG.mime.doc.MimeDOCInteropLocator().getMimeDOCSoapPort(url);
}
catch (javax.xml.rpc.ServiceException jre) {
if(jre.getLinkedCause()!=null)
jre.getLinkedCause().printStackTrace();
throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException
caught: " + jre);
}
assertTrue("binding is null", binding != null);
OctetStream input = new OctetStream("EchoAttachmentAsBase64".getBytes());
// Test operation
test.wsdl.interop4.groupG.mime.doc.xsd.Binary output = null;
output = binding.echoAttachmentAsBase64(input);
// TBD - validate results
assertTrue(Arrays.equals(input.getBytes(), output.getValue()));
}
public void test4MimeDOCSoapPortEchoBase64AsAttachment() throws Exception {
test.wsdl.interop4.groupG.mime.doc.AttachmentsPortType binding;
try {
binding = new
test.wsdl.interop4.groupG.mime.doc.MimeDOCInteropLocator().getMimeDOCSoapPort(url);
}
catch (javax.xml.rpc.ServiceException jre) {
if(jre.getLinkedCause()!=null)
jre.getLinkedCause().printStackTrace();
throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException
caught: " + jre);
}
assertTrue("binding is null", binding != null);
byte[] input = "EchoBase64AsAttachment".getBytes();
// Test operation
OctetStream output = null;
output = binding.echoBase64AsAttachment(new
test.wsdl.interop4.groupG.mime.doc.xsd.Binary(input));
// TBD - validate results
assertTrue(Arrays.equals(input, output.getBytes()));
}
public static URL url = null;
public static void main(String[] args) throws Exception {
if (args.length == 1) {
url = new URL(args[0]);
} else {
url = new URL(new
test.wsdl.interop4.groupG.mime.doc.MimeDOCInteropLocator().getMimeDOCSoapPortAddress());
}
junit.textui.TestRunner.run(new
junit.framework.TestSuite(MimeDOCInteropTestCase.class));
} // main
}
1.21 +1 -1
xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java
Index: SchemaUtils.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- SchemaUtils.java 26 Dec 2002 23:24:29 -0000 1.20
+++ SchemaUtils.java 31 Dec 2002 22:46:51 -0000 1.21
@@ -732,7 +732,7 @@
* @param node is the Node
* @return QName of the compoent of the collection
*/
- private static QName getCollectionComponentQName(Node node) {
+ public static QName getCollectionComponentQName(Node node) {
if (node == null) {
return null;
}
1.65 +26 -1
xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
Index: SymbolTable.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- SymbolTable.java 30 Dec 2002 14:36:45 -0000 1.64
+++ SymbolTable.java 31 Dec 2002 22:46:51 -0000 1.65
@@ -1832,7 +1832,13 @@
if (obj instanceof MIMEContent) {
MIMEContent content = (MIMEContent) obj;
TypeEntry typeEntry = findPart(op, content.getPart());
- bEntry.setMIMEInfo(op.getName(), content.getPart(),
content.getType(), typeEntry.getDimensions());
+ String dims = typeEntry.getDimensions();
+ if(dims.length() <=0 && typeEntry.getRefType() != null) {
+ Node node = typeEntry.getRefType().getNode();
+ if(getCollectionComponentQName(node)!=null)
+ dims += "[]";
+ }
+ bEntry.setMIMEInfo(op.getName(), content.getPart(),
content.getType(), dims);
}
else if (obj instanceof SOAPBody) {
String use = ((SOAPBody) obj).getUse();
@@ -2305,4 +2311,23 @@
Messages.getMessage("alreadyExists00", "" + name));
}
} // symbolTablePut
+
+ private static QName getCollectionComponentQName(Node node) {
+ if (node == null) {
+ return null;
+ }
+
+ QName name = SchemaUtils.getCollectionComponentQName(node);
+ if(name != null)
+ return name;
+
+ // Dive into the node if necessary
+ NodeList children = node.getChildNodes();
+ for(int i=0;i<children.getLength();i++){
+ name = getCollectionComponentQName(children.item(i));
+ if(name != null)
+ return name;
+ }
+ return null;
+ }
} // class SymbolTable