svn commit: r1036556 - in /axis/axis2/java/core/trunk/modules: addressing/src/org/apache/axis2/handlers/addressing/ jaxws/src/org/apache/axis2/jaxws/dispatchers/ kernel/src/org/apache/axis2/engine/ ke
Author: scheu Date: Thu Nov 18 17:44:54 2010 New Revision: 1036556 URL: http://svn.apache.org/viewvc?rev=1036556&view=rev Log: AXIS2-4881 Contributor:Rich Scheuerle Introduce (optional) two-phase handler model Modified: axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/dispatchers/MustUnderstandChecker.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/Phase.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/handlers/AbstractHandler.java Modified: axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java?rev=1036556&r1=1036555&r2=1036556&view=diff == --- axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java (original) +++ axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java Thu Nov 18 17:44:54 2010 @@ -22,6 +22,7 @@ package org.apache.axis2.handlers.addres import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMElement; import org.apache.axiom.soap.RolePlayer; +import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.soap.SOAPHeader; import org.apache.axiom.soap.SOAPHeaderBlock; import org.apache.axis2.AxisFault; @@ -36,6 +37,7 @@ import org.apache.axis2.context.MessageC import org.apache.axis2.description.HandlerDescription; import org.apache.axis2.description.Parameter; import org.apache.axis2.engine.AxisConfiguration; +import org.apache.axis2.engine.Handler.InvocationResponse; import org.apache.axis2.handlers.AbstractHandler; import org.apache.axis2.util.JavaUtils; import org.apache.axis2.util.LoggingControl; @@ -71,16 +73,18 @@ public class AddressingInHandler extends } public InvocationResponse invoke(MessageContext msgContext) throws AxisFault { + +if (invoke_stage1(msgContext)) { +return invoke_stage2(msgContext); +} else { +return InvocationResponse.CONTINUE; +} +} +public boolean invoke_stage1(MessageContext msgContext) throws AxisFault { //Set the defaults on the message context. msgContext.setProperty(DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.TRUE); msgContext.setProperty(IS_ADDR_INFO_ALREADY_PROCESSED, Boolean.FALSE); - -// if there are not headers put a flag to disable addressing temporary -SOAPHeader header = msgContext.getEnvelope().getHeader(); -if (header == null) { -return InvocationResponse.CONTINUE; -} //Determine if we want to ignore addressing headers. This parameter must //be retrieved from the message context because it's value can vary on a //per service basis. @@ -91,10 +95,19 @@ public class AddressingInHandler extends log.debug( "The AddressingInHandler has been disabled. No further processing will take place."); } -return InvocationResponse.CONTINUE; +return false; } - +// if there are not headers put a flag to disable addressing temporary +SOAPHeader header = msgContext.getEnvelope().getHeader(); +if (header == null) { +return false; +} +return true; +} + +public InvocationResponse invoke_stage2(MessageContext msgContext) throws AxisFault { +SOAPHeader header = msgContext.getEnvelope().getHeader(); if(configuration == null){ AxisConfiguration conf = msgContext.getConfigurationContext().getAxisConfiguration(); rolePlayer = (RolePlayer)conf.getParameterValue(Constants.SOAP_ROLE_PLAYER_PARAMETER); Modified: axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=1036556&r1=1036555&r2=1036556&view=diff == --- axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java (original) +++ axis/axis2/java/core/trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java Thu Nov 18 17:44:54 2010 @@ -64,6 +64,14 @@ public class AddressingOutHandler extend private static final Strin
svn commit: r1036624 - /axis/axis2/java/core/trunk/pom.xml
Author: veithen Date: Thu Nov 18 21:03:34 2010 New Revision: 1036624 URL: http://svn.apache.org/viewvc?rev=1036624&view=rev Log: AXIS2-4888: Removed the 'jar' classifier from axis2.jar (which was introduced unintentionally by r1033898). Modified: axis/axis2/java/core/trunk/pom.xml Modified: axis/axis2/java/core/trunk/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/pom.xml?rev=1036624&r1=1036623&r2=1036624&view=diff == --- axis/axis2/java/core/trunk/pom.xml (original) +++ axis/axis2/java/core/trunk/pom.xml Thu Nov 18 21:03:34 2010 @@ -621,6 +621,7 @@ src/main/assembly/jar.xml +false
svn commit: r1036625 - in /axis/axis2/java/core/branches/1_5: ./ modules/distribution/ modules/kernel/src/org/apache/axis2/transport/http/util/ modules/kernel/test/org/apache/axis2/transport/http/util
Author: veithen Date: Thu Nov 18 21:06:03 2010 New Revision: 1036625 URL: http://svn.apache.org/viewvc?rev=1036625&view=rev Log: AXIS2-4888: Merged r1036624 to the 1.5 branch. Modified: axis/axis2/java/core/branches/1_5/ (props changed) axis/axis2/java/core/branches/1_5/modules/distribution/ (props changed) axis/axis2/java/core/branches/1_5/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java (props changed) axis/axis2/java/core/branches/1_5/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java (props changed) axis/axis2/java/core/branches/1_5/modules/parent/ (props changed) axis/axis2/java/core/branches/1_5/modules/saaj/test/org/apache/axis2/saaj/TestUtils.java (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/pom.xml (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/src/main/java/org/apache/axis2/handlers/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/src/main/resources/META-INF/module.xml (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/servlet/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/applet/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/ (props changed) axis/axis2/java/core/branches/1_5/modules/transport/http/pom.xml (props changed) axis/axis2/java/core/branches/1_5/modules/transport/http/src/ (props changed) axis/axis2/java/core/branches/1_5/modules/transport/local/ (props changed) axis/axis2/java/core/branches/1_5/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminAgent.java (props changed) axis/axis2/java/core/branches/1_5/modules/webapp/src/main/java/org/apache/axis2/webapp/AxisAdminServlet.java (props changed) axis/axis2/java/core/branches/1_5/pom.xml Propchange: axis/axis2/java/core/branches/1_5/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Nov 18 21:06:03 2010 @@ -1,2 +1,2 @@ -/axis/axis2/java/core/trunk:922914,922941,922983,935169,935174,935338,937004,944347,944915,951385,960693,960976,960978,960984,960995,961012,961964,962844,963081,963147,965032,965036,965056,965068,965074,965213,965268,965277,965302,965454,966371,966401,966428,966536,979882-979883,979886,980242,981036,981038,981055-981056,981058,981095,981188,981220-981221,981237,981262,981278,981293,981306,981311,981985,981992,982008,982387,982393,982795,982800,983101,983110,983114,983119-983120,983128,983185,983236,983270,983276,983280,983316,983363,983370,983372,985458,985464,985626,985634,985661,985715,985717,985744,985748,985752,985763,985791,985796,985851,986844,986889,987313,987712-987715,987783,987832,987873,987883,987913,987935,990350,990369,990377,990384,990394,990398,990404,990434,990445,990449,1001279,1001452-1001466,1001673,1029034,1029153,1029308,1029372,1029377,1029610-1029651,1030008,1030538,1031350,1031352,1031799,1032001,1032390,1032401,1032681,1032694,1033898,1033942,1033956 ,1034010,1034015,1034142,1034173,1034213 +/axis/axis2/java/core/trunk:922914,922941,922983,935169,935174,935338,937004,944347,944915,951385,960693,960976,960978,960984,960995,961012,961964,962844,963081,963147,965032,965036,965056,965068,965074,965213,965268,965277,965302,965454,966371,966401,966428,966536,979882-979883,979886,980242,981036,981038,981055-981056,981058,981095,981188,981220-981221,981237,981262,981278,981293,981306,981311,981985,981992,982008,982387,982393,982795,982800,983101,983110,983114,983119-983120,983128,983185,983236,983270,983276,983280,983316,983363,983370,983372,985458,985464,985626,985634,985661,985715,985717,985744,985748,985752,985763,985791,985796,985851,986844,986889,987313,987712-987715,987783,987832,987873,987883,987913,987935,990350,990369,990377,990384,990394,990398,990404,990434,990445,990449,1001279,1001452-1001466,1001673,1029034,1029153,1029308,1029372,1029377,1029610-1029651,1030008,1030538,1031350,1031352,1031799,1032001,1032390,1032401,1032681,1032694,1033898,1033942,1033956 ,1034010,1034015,1034142,1034173,1034213,1036624 /webservices/axis2/trunk/java:728674,731798,732539,732541,732873,732877,732924,732927,732939,733293,733295,733304,733306,733348,733354,733394,733399,733463-733464,733533,733539-733540,733676,733776,733900,733910,734227,734237,734261,738057,738067,738071,738086,738110,738113,738117,738158,740332,740357,740360,741300,741784,741873,741878,741881,748761,751958,754458,754467,754503,757151-757153,759488,759507,759878,759968,761025,761044,761068,761709,761770,761952,763148,765102,771051,777648,777882,777897,777934,778060,780546,783479,795431,801630,803725,805578,805981,8059
svn commit: r1036659 - in /axis/axis2/java/core/trunk/modules/saaj: pom.xml test/org/apache/axis2/saaj/SOAPConnectionTest.java
Author: veithen Date: Thu Nov 18 22:36:21 2010 New Revision: 1036659 URL: http://svn.apache.org/viewvc?rev=1036659&view=rev Log: AXIS2-4889: Replaced SOAPConnectionTest#testGet by a no-nonsense test case. Modified: axis/axis2/java/core/trunk/modules/saaj/pom.xml axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java Modified: axis/axis2/java/core/trunk/modules/saaj/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/pom.xml?rev=1036659&r1=1036658&r2=1036659&view=diff == --- axis/axis2/java/core/trunk/modules/saaj/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/saaj/pom.xml Thu Nov 18 22:36:21 2010 @@ -78,6 +78,12 @@ test +jetty +jetty +5.1.10 +test + + com.sun.xml.messaging.saaj saaj-impl 1.3.2 Modified: axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java?rev=1036659&r1=1036658&r2=1036659&view=diff == --- axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java (original) +++ axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java Thu Nov 18 22:36:21 2010 @@ -20,17 +20,24 @@ package org.apache.axis2.saaj; import junit.framework.Assert; -import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.httpclient.methods.GetMethod; -import org.apache.commons.httpclient.params.HttpMethodParams; + import org.junit.Test; import org.junit.runner.RunWith; +import org.mortbay.http.HttpContext; +import org.mortbay.http.HttpException; +import org.mortbay.http.HttpHandler; +import org.mortbay.http.HttpRequest; +import org.mortbay.http.HttpResponse; +import org.mortbay.http.SocketListener; +import org.mortbay.http.handler.AbstractHttpHandler; +import org.mortbay.jetty.Server; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPConnection; import javax.xml.soap.SOAPConnectionFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPMessage; import java.io.IOException; @@ -103,47 +110,38 @@ public class SOAPConnectionTest extends @Validated @Test -public void testGet() { - if(isNetworkedResourceAvailable("http://java.sun.com/index.html";)){ -try { -SOAPConnectionFactory sf = new SOAPConnectionFactoryImpl(); -SOAPConnection con = sf.createConnection(); -//Create a valid non webservice endpoint for invoking HTTP-GET -URL urlEndpoint = new URL("http", "java.sun.com", 80, "/index.html"); -//invoking HTTP-GET with a valid non webservice endpoint should throw a SOAPException -SOAPMessage reply = con.get(urlEndpoint); -} catch (Exception e) { -assertTrue(e instanceof SOAPException); +public void testGet() throws Exception { +Server server = new Server(); +SocketListener listener = new SocketListener(); +server.addListener(listener); +HttpContext context = new HttpContext(server, "/*"); +HttpHandler handler = new AbstractHttpHandler() { +public void handle(String pathInContext, String pathParams, +HttpRequest request, HttpResponse response) throws HttpException, IOException { + +try { +SOAPMessage message = MessageFactory.newInstance().createMessage(); +SOAPBody body = message.getSOAPBody(); +body.addChildElement("root"); + response.setContentType(SOAPConstants.SOAP_1_1_CONTENT_TYPE); +message.writeTo(response.getOutputStream()); +request.setHandled(true); +} catch (SOAPException ex) { +throw new RuntimeException("Failed to generate SOAP message", ex); +} } - }else{ - //If resource is not available online, do a mock test - assertTrue(true); - } -} - - -private boolean isNetworkedResourceAvailable(String url) { -HttpClient client = new HttpClient(); -GetMethod method = new GetMethod(url); - client.getHttpConnectionManager().getParams().setConnectionTimeout(1000); -method.getParams().s
svn commit: r1036660 - in /axis/axis2/java/core/branches/1_5: ./ modules/distribution/ modules/kernel/src/org/apache/axis2/transport/http/util/ modules/kernel/test/org/apache/axis2/transport/http/util
Author: veithen Date: Thu Nov 18 22:39:42 2010 New Revision: 1036660 URL: http://svn.apache.org/viewvc?rev=1036660&view=rev Log: AXIS2-4889: Merged r1036659 to the 1.5 branch. Modified: axis/axis2/java/core/branches/1_5/ (props changed) axis/axis2/java/core/branches/1_5/modules/distribution/ (props changed) axis/axis2/java/core/branches/1_5/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java (props changed) axis/axis2/java/core/branches/1_5/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java (props changed) axis/axis2/java/core/branches/1_5/modules/parent/ (props changed) axis/axis2/java/core/branches/1_5/modules/saaj/pom.xml axis/axis2/java/core/branches/1_5/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java axis/axis2/java/core/branches/1_5/modules/saaj/test/org/apache/axis2/saaj/TestUtils.java (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/pom.xml (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/src/main/java/org/apache/axis2/handlers/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/module/src/main/resources/META-INF/module.xml (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/servlet/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/applet/ (props changed) axis/axis2/java/core/branches/1_5/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/ (props changed) axis/axis2/java/core/branches/1_5/modules/transport/http/pom.xml (props changed) axis/axis2/java/core/branches/1_5/modules/transport/http/src/ (props changed) axis/axis2/java/core/branches/1_5/modules/transport/local/ (props changed) axis/axis2/java/core/branches/1_5/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminAgent.java (props changed) axis/axis2/java/core/branches/1_5/modules/webapp/src/main/java/org/apache/axis2/webapp/AxisAdminServlet.java (props changed) Propchange: axis/axis2/java/core/branches/1_5/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Nov 18 22:39:42 2010 @@ -1,2 +1,2 @@ -/axis/axis2/java/core/trunk:922914,922941,922983,935169,935174,935338,937004,944347,944915,951385,960693,960976,960978,960984,960995,961012,961964,962844,963081,963147,965032,965036,965056,965068,965074,965213,965268,965277,965302,965454,966371,966401,966428,966536,979882-979883,979886,980242,981036,981038,981055-981056,981058,981095,981188,981220-981221,981237,981262,981278,981293,981306,981311,981985,981992,982008,982387,982393,982795,982800,983101,983110,983114,983119-983120,983128,983185,983236,983270,983276,983280,983316,983363,983370,983372,985458,985464,985626,985634,985661,985715,985717,985744,985748,985752,985763,985791,985796,985851,986844,986889,987313,987712-987715,987783,987832,987873,987883,987913,987935,990350,990369,990377,990384,990394,990398,990404,990434,990445,990449,1001279,1001452-1001466,1001673,1029034,1029153,1029308,1029372,1029377,1029610-1029651,1030008,1030538,1031350,1031352,1031799,1032001,1032390,1032401,1032681,1032694,1033898,1033942,1033956 ,1034010,1034015,1034142,1034173,1034213,1036624 +/axis/axis2/java/core/trunk:922914,922941,922983,935169,935174,935338,937004,944347,944915,951385,960693,960976,960978,960984,960995,961012,961964,962844,963081,963147,965032,965036,965056,965068,965074,965213,965268,965277,965302,965454,966371,966401,966428,966536,979882-979883,979886,980242,981036,981038,981055-981056,981058,981095,981188,981220-981221,981237,981262,981278,981293,981306,981311,981985,981992,982008,982387,982393,982795,982800,983101,983110,983114,983119-983120,983128,983185,983236,983270,983276,983280,983316,983363,983370,983372,985458,985464,985626,985634,985661,985715,985717,985744,985748,985752,985763,985791,985796,985851,986844,986889,987313,987712-987715,987783,987832,987873,987883,987913,987935,990350,990369,990377,990384,990394,990398,990404,990434,990445,990449,1001279,1001452-1001466,1001673,1029034,1029153,1029308,1029372,1029377,1029610-1029651,1030008,1030538,1031350,1031352,1031799,1032001,1032390,1032401,1032681,1032694,1033898,1033942,1033956 ,1034010,1034015,1034142,1034173,1034213,1036624,1036659 /webservices/axis2/trunk/java:728674,731798,732539,732541,732873,732877,732924,732927,732939,733293,733295,733304,733306,733348,733354,733394,733399,733463-733464,733533,733539-733540,733676,733776,733900,733910,734227,734237,734261,738057,738067,738071,738086,738110,738113,738117,738158,740332,740357,740360,741300,741784,741873,741878,741881,748761,751958,754458,754467,754503,757151-757153,759488,759507,759878,759968,761025,761044,76106
svn commit: r1036675 - /axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
Author: veithen Date: Thu Nov 18 23:07:54 2010 New Revision: 1036675 URL: http://svn.apache.org/viewvc?rev=1036675&view=rev Log: Replaced usage of deprecated MIMEOutputUtils class. Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java?rev=1036675&r1=1036674&r2=1036675&view=diff == --- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java (original) +++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java Thu Nov 18 23:07:54 2010 @@ -20,19 +20,15 @@ package org.apache.axis2.saaj; import org.apache.axiom.attachments.Attachments; -import org.apache.axiom.attachments.ByteArrayDataSource; import org.apache.axiom.om.OMException; import org.apache.axiom.om.OMOutputFormat; -import org.apache.axiom.om.impl.MIMEOutputUtils; -import org.apache.axiom.soap.SOAP11Constants; -import org.apache.axiom.soap.SOAP12Constants; +import org.apache.axiom.om.impl.OMMultipartWriter; import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory; import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory; import org.apache.axis2.saaj.util.SAAJUtil; import org.apache.axis2.transport.http.HTTPConstants; -import javax.activation.DataHandler; import javax.xml.soap.AttachmentPart; import javax.xml.soap.MimeHeader; import javax.xml.soap.MimeHeaders; @@ -43,7 +39,6 @@ import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPMessage; import javax.xml.soap.SOAPPart; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -51,7 +46,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Hashtable; import java.util.Iterator; -import java.util.LinkedHashMap; import java.util.Map; public class SOAPMessageImpl extends SOAPMessage { @@ -322,20 +316,14 @@ public class SOAPMessageImpl extends SOA } else { format.setSOAP11(((SOAPEnvelopeImpl)soapPart.getEnvelope()).getOMFactory() instanceof SOAP11Factory); -Map attachmentsMap = new LinkedHashMap(); +OMMultipartWriter mpw = new OMMultipartWriter(out, format); +OutputStream rootPartOutputStream = mpw.writeRootPart(); +envelope.serialize(rootPartOutputStream); +rootPartOutputStream.close(); for (AttachmentPart ap : attachmentParts) { -attachmentsMap.put(ap.getContentId(), ap.getDataHandler()); +mpw.writePart(ap.getDataHandler(), ap.getContentId()); } -ByteArrayOutputStream baos = new ByteArrayOutputStream(); -envelope.serialize(baos); -String contentType = -(format.isSOAP11() ? SOAP11Constants.SOAP_11_CONTENT_TYPE : - SOAP12Constants.SOAP_12_CONTENT_TYPE) -+ "; charset=" + format.getCharSetEncoding(); -DataHandler rootDataHandler = -new DataHandler(new ByteArrayDataSource(baos.toByteArray(), contentType)); - MIMEOutputUtils.writeDataHandlerWithAttachmentsMessage(rootDataHandler, -contentType, out, attachmentsMap, format); +mpw.complete(); } saveChanges(); } catch (Exception e) {