gdaniels 2002/09/24 14:02:23 Modified: java/src/org/apache/axis/description OperationDesc.java ServiceDesc.java java/src/org/apache/axis/providers/java MsgProvider.java Log: Also support Document method(Document) (this is needed for the attachments sample right now, will probably go away becuase it's not really an adequate API) Revision Changes Path 1.21 +2 -0 xml-axis/java/src/org/apache/axis/description/OperationDesc.java Index: OperationDesc.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/description/OperationDesc.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- OperationDesc.java 24 Sep 2002 20:45:19 -0000 1.20 +++ OperationDesc.java 24 Sep 2002 21:02:23 -0000 1.21 @@ -82,6 +82,8 @@ public static final int MSG_METHOD_SOAPENVELOPE = 2; // public Element [] method(Element []) public static final int MSG_METHOD_ELEMENTARRAY = 3; + // public Document method(Document) + public static final int MSG_METHOD_DOCUMENT = 4; protected static Log log = LogFactory.getLog(OperationDesc.class.getName()); 1.60 +5 -0 xml-axis/java/src/org/apache/axis/description/ServiceDesc.java Index: ServiceDesc.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/description/ServiceDesc.java,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- ServiceDesc.java 24 Sep 2002 20:45:19 -0000 1.59 +++ ServiceDesc.java 24 Sep 2002 21:02:23 -0000 1.60 @@ -687,6 +687,11 @@ (method.getReturnType() == SOAPBodyElement[].class)) { return OperationDesc.MSG_METHOD_BODYARRAY; } + + if ((params[0] == Document.class) && + (method.getReturnType() == Document.class)) { + return OperationDesc.MSG_METHOD_DOCUMENT; + } } else if (params.length == 2) { if ((params[0] == SOAPEnvelope.class) && (params[1] == SOAPEnvelope.class) && 1.33 +12 -0 xml-axis/java/src/org/apache/axis/providers/java/MsgProvider.java Index: MsgProvider.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/providers/java/MsgProvider.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- MsgProvider.java 24 Sep 2002 20:45:20 -0000 1.32 +++ MsgProvider.java 24 Sep 2002 21:02:23 -0000 1.33 @@ -148,6 +148,18 @@ } } return; + + // Element [] / Element [] + case OperationDesc.MSG_METHOD_DOCUMENT: + Document doc = ((SOAPBodyElement)bodies.get(0)).getAsDocument(); + argObjects[0] = doc; + Document resultDoc = + (Document) method.invoke( obj, argObjects ); + if (resultDoc != null) { + resEnv.addBodyElement(new SOAPBodyElement( + resultDoc.getDocumentElement())); + } + return; } } else { Object argObjects[] = new Object [2];