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 wh...@apache.org on 2002/10/21 15:56:53 UTC
cvs commit: xml-axis-wsif/java/test/proposals/mime MimeTest.java MimeImpl.java WSIFOperation_ApacheAxis.java
whitlock 2002/10/21 06:56:53
Modified: java/test/proposals/mime MimeTest.java MimeImpl.java
WSIFOperation_ApacheAxis.java
Log:
Receive mime attachments
Revision Changes Path
1.4 +4 -8 xml-axis-wsif/java/test/proposals/mime/MimeTest.java
Index: MimeTest.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/proposals/mime/MimeTest.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MimeTest.java 21 Oct 2002 09:48:18 -0000 1.3
+++ MimeTest.java 21 Oct 2002 13:56:53 -0000 1.4
@@ -144,14 +144,10 @@
* }
*/
-// public void testAxisReceiveSync() {
-// doit("SOAPPort", RECEIVE, SYNC);
-// }
-//
-// public void testAxisJmsReceiveSync() {
-// doit("SOAPJMSPort", RECEIVE, SYNC);
-// }
-//
+ public void testAxisReceiveSync() {
+ doit("SOAPPort", RECEIVE, SYNC);
+ }
+
private void doit(String portName, String cmd, boolean blocking) {
WSIFDynamicProvider_ApacheAxis provider =
1.3 +16 -14 xml-axis-wsif/java/test/proposals/mime/MimeImpl.java
Index: MimeImpl.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/proposals/mime/MimeImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MimeImpl.java 21 Oct 2002 09:48:18 -0000 1.2
+++ MimeImpl.java 21 Oct 2002 13:56:53 -0000 1.3
@@ -71,8 +71,6 @@
*/
public class MimeImpl implements Mime {
- private final String tempFileName = "MimeImplBackendFile.txt";
-
public String fileToString(DataHandler dh) {
try {
InputStream is = dh.getInputStream();
@@ -87,24 +85,28 @@
public DataHandler stringToFile(String buff) {
try {
- FileDataSource fds = new FileDataSource(tempFileName);
- File f = fds.getFile();
- if (f.exists()) {
- System.out.println("Deleting an existing file");
- f.delete();
- }
-
- if (!f.createNewFile()) {
- System.out.println("Failed to create file");
- return null;
- }
+// FileDataSource fds = new FileDataSource(tempFileName);
+// File f = fds.getFile();
+// if (f.exists()) {
+// System.out.println("Deleting an existing file");
+// f.delete();
+// }
+//
+// if (!f.createNewFile()) {
+// System.out.println("Failed to create file");
+// return null;
+// }
- fds = new FileDataSource(tempFileName);
+ File f = File.createTempFile("WSIFMimeTest","txt");
+ f.deleteOnExit();
+
+ FileDataSource fds = new FileDataSource(f.getAbsolutePath());
fds.getOutputStream().write(buff.getBytes());
DataHandler dh = new DataHandler(fds);
return dh;
} catch (IOException ioe) {
+ ioe.printStackTrace();
return null;
}
}
1.3 +76 -42 xml-axis-wsif/java/test/proposals/mime/WSIFOperation_ApacheAxis.java
Index: WSIFOperation_ApacheAxis.java
===================================================================
RCS file: /home/cvs/xml-axis-wsif/java/test/proposals/mime/WSIFOperation_ApacheAxis.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WSIFOperation_ApacheAxis.java 15 Oct 2002 13:55:31 -0000 1.2
+++ WSIFOperation_ApacheAxis.java 21 Oct 2002 13:56:53 -0000 1.3
@@ -73,6 +73,8 @@
import javax.wsdl.Output;
import javax.wsdl.Part;
import javax.xml.namespace.QName;
+import javax.xml.soap.AttachmentPart;
+import javax.xml.soap.SOAPException;
import org.apache.axis.AxisFault;
import org.apache.axis.Message;
@@ -515,55 +517,87 @@
/**
* Populate the outMessage with the response return value.
*/
- private void populateOutMsgReturnPart(Object resp, WSIFMessage outMsg)
- throws WSIFException{
- if (outMsg != null ) {
- if ( returnName != null ) {
- if ( resp == null ) {
- throw new WSIFException(
- "return value not found in response message" );
- } else if ( returnType != null // will be null for async responses
- && !returnType.isPrimitive()
- && !(returnType.isAssignableFrom( resp.getClass() )) ) {
- throw new WSIFException(
- "return value "
- + resp
- + " has unexpected type "
- + resp.getClass()
- + " instead of "
- + returnType);
- }
- outMsg.setObjectPart( returnName, resp );
- }
- }
+ private void populateOutMsgReturnPart(Object resp, WSIFMessage outMsg)
+ throws WSIFException {
+ if (outMsg != null) {
+ if (returnName != null) {
+ if (resp == null)
+ throw new WSIFException(
+ "return value not found in response message");
+
+ setMessagePart(outMsg, returnName, resp, returnType);
+ }
+ }
}
/**
* Populate the outMessage with the expected parts.
* (this only does the out parameters not the return part)
*/
- private void populateOutMsgParts(WSIFMessage outMsg)
- throws WSIFException{
- if ( outMsg != null ) {
- HashMap respParms = getResponseMsgParams();
- ArrayList wsdlOutParams = getWSDLOutParams();
- if ( respParms != null ) {
- String name;
- Object value;
- for (Iterator i = respParms.keySet().iterator(); i.hasNext(); ) {
- name = (String) i.next();
- value = respParms.get( name );
- outMsg.setObjectPart( name, value );
- wsdlOutParams.remove( name );
- }
- }
- // init any other parts to null
- for (Iterator i=wsdlOutParams.iterator(); i.hasNext(); ) {
- outMsg.setObjectPart( (String) i.next(), null );
- }
- }
+ private void populateOutMsgParts(WSIFMessage outMsg) throws WSIFException {
+ if (outMsg != null) {
+ HashMap respParms = getResponseMsgParams();
+ ArrayList wsdlOutParams = getWSDLOutParams();
+ if (respParms != null) {
+ String name;
+ Object value;
+ for (Iterator i = respParms.keySet().iterator();
+ i.hasNext();
+ ) {
+ name = (String) i.next();
+ value = respParms.get(name);
+ setMessagePart(outMsg, name, value, value.getClass());
+ wsdlOutParams.remove(name);
+ }
+ }
+ // init any other parts to null
+ for (Iterator i = wsdlOutParams.iterator(); i.hasNext();) {
+ outMsg.setObjectPart((String) i.next(), null);
+ }
+ }
}
-
+
+ private static void setMessagePart(
+ WSIFMessage msg,
+ String name,
+ Object value,
+ Class type)
+ throws WSIFException {
+ Trc.entry(null, msg, name, value, type);
+
+ if (DataHandler.class.equals(type)
+ && AttachmentPart.class.isAssignableFrom(value.getClass())) {
+ AttachmentPart ap = (AttachmentPart) value;
+ try {
+ DataHandler dh = ap.getDataHandler();
+ msg.setObjectPart(name, dh);
+ } catch (SOAPException se) {
+ Trc.exception(se);
+ throw new WSIFException(
+ "WSIFOperation_ApacheAxis.setMessagePart messageName="
+ + (msg.getName() == null ? "null" : msg.getName())
+ + " partName="
+ + name
+ + " caught "
+ + se);
+ }
+ } else if (
+ type != null // will be null for async responses
+ && !type.isPrimitive()
+ && !(type.isAssignableFrom(value.getClass()))) {
+ throw new WSIFException(
+ "return value "
+ + value
+ + " has unexpected type "
+ + value.getClass()
+ + " instead of "
+ + type);
+ } else
+ msg.setObjectPart(name, value);
+
+ Trc.exit();
+ }
+
public boolean executeRequestResponseOperation(
WSIFMessage wsifmessage,
WSIFMessage wsifmessage1,