You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2017/05/14 12:07:13 UTC

svn commit: r1795104 - in /webservices/axiom/trunk: aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/ axiom-api/src/main/java/org/apache/axiom/mime/ testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/ testing/axiom-test...

Author: veithen
Date: Sun May 14 12:07:12 2017
New Revision: 1795104

URL: http://svn.apache.org/viewvc?rev=1795104&view=rev
Log:
Decouple implementation code and tests from the org.apache.axiom.attachments API and instead use org.apache.axiom.mime.

Modified:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextSupport.aj
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MultipartBody.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/Part.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCreateOMBuilderXOP.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestReadAttachmentBeforeRootPartComplete.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRegisterCustomBuilderForPayloadJAXBWithXOP.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/jaxb/TestDataHandlerSerializationWithMTOM.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSerialize.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestCreateSOAPModelBuilderMTOMContentTypeMismatch.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestMTOMForwardStreaming.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestGetXMLStreamReaderMTOMEncoded.java

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj Sun May 14 12:07:12 2017
@@ -35,7 +35,6 @@ import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.sax.SAXResult;
 import javax.xml.transform.sax.SAXSource;
 
-import org.apache.axiom.attachments.lifecycle.DataHandlerExt;
 import org.apache.axiom.core.Axis;
 import org.apache.axiom.core.Builder;
 import org.apache.axiom.core.CoreChildNode;
@@ -53,6 +52,7 @@ import org.apache.axiom.core.stream.sax.
 import org.apache.axiom.core.stream.serializer.Serializer;
 import org.apache.axiom.core.stream.stax.pull.StAXPivot;
 import org.apache.axiom.core.stream.stax.push.XMLStreamWriterNamespaceContextProvider;
+import org.apache.axiom.mime.PartDataHandler;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
@@ -314,11 +314,11 @@ public aspect AxiomContainerSupport {
                 rootPartOutputStream.close();
                 for (String contentID : encoder.getContentIDs()) {
                     DataHandler dataHandler = encoder.getDataHandler(contentID);
-                    if (cache || !(dataHandler instanceof DataHandlerExt)) {
+                    if (cache || !(dataHandler instanceof PartDataHandler)) {
                         multipartWriter.writePart(dataHandler, contentID);
                     } else {
                         OutputStream part = multipartWriter.writePart(dataHandler.getContentType(), contentID);
-                        IOUtils.copy(((DataHandlerExt)dataHandler).readOnce(), part, -1);
+                        IOUtils.copy(((PartDataHandler)dataHandler).getPart().getInputStream(false), part, -1);
                         part.close();
                     }
                 }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextSupport.aj?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextSupport.aj Sun May 14 12:07:12 2017
@@ -22,6 +22,7 @@ import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.core.CoreModelException;
+import org.apache.axiom.mime.PartDataHandler;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
@@ -132,8 +133,10 @@ public aspect AxiomTextSupport {
 
     public final void AxiomText.buildWithAttachments() {
         if (isOptimized()) {
-            // The call to getDataSource ensures that the MIME part is completely read
-            getDataHandler().getDataSource();
+            DataHandler dataHandler = getDataHandler();
+            if (dataHandler instanceof PartDataHandler) {
+                ((PartDataHandler)dataHandler).getPart().fetch();
+            }
         }
     }
 

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MultipartBody.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MultipartBody.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MultipartBody.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MultipartBody.java Sun May 14 12:07:12 2017
@@ -133,6 +133,8 @@ public final class MultipartBody impleme
     private PartImpl firstPart;
     private PartImpl rootPart;
 
+    private int partCount;
+
     private final WritableBlobFactory<?> attachmentBlobFactory;
     private final DataHandlerFactory dataHandlerFactory;
     private final PartCreationListener partCreationListener;
@@ -211,6 +213,16 @@ public final class MultipartBody impleme
         return null;
     }
 
+    /**
+     * Get the number of parts in this multipart.
+     * 
+     * @return the number of parts
+     */
+    public int getPartCount() {
+        detach();
+        return partCount;
+    }
+
     PartImpl getFirstPart() {
         if (firstPart == null) {
             getNextPart();
@@ -277,6 +289,7 @@ public final class MultipartBody impleme
                 throw new MIMEException(ex);
             }
 
+            partCount++;
             if (partContentID != null) {
                 if (partMap.containsKey(partContentID)) {
                     throw new MIMEException(

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/Part.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/Part.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/Part.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/Part.java Sun May 14 12:07:12 2017
@@ -91,6 +91,11 @@ public interface Part {
     DataHandler getDataHandler();
 
     /**
+     * Make sure that this part has been fully read from the underlying stream.
+     */
+    void fetch();
+
+    /**
      * Discard the content of this part.
      */
     void discard();

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java Sun May 14 12:07:12 2017
@@ -193,12 +193,7 @@ final class PartImpl implements Part {
         return in;
     }
     
-    /**
-     * Make sure that the MIME part has been fully read from the parser. If the part has not been
-     * read yet, then it will be buffered. This method prepares the parser for reading the next part
-     * in the stream.
-     */
-    void fetch() {
+    public void fetch() {
         switch (state) {
             case STATE_UNREAD:
                 checkParserState(parser.getState(), EntityState.T_BODY);

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCreateOMBuilderXOP.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCreateOMBuilderXOP.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCreateOMBuilderXOP.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestCreateOMBuilderXOP.java Sun May 14 12:07:12 2017
@@ -21,7 +21,7 @@ package org.apache.axiom.ts.om.builder;
 import static com.google.common.truth.Truth.assertAbout;
 import static org.apache.axiom.truth.xml.XMLTruth.xml;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
@@ -43,8 +43,11 @@ public class TestCreateOMBuilderXOP exte
 
     @Override
     protected void runTest() throws Throwable {
-        Attachments attachments = new Attachments(sample.getInputStream(), sample.getContentType());
-        OMElement content = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), StAXParserConfiguration.DEFAULT, attachments).getDocumentElement();
+        MultipartBody mb = MultipartBody.builder()
+                .setInputStream(sample.getInputStream())
+                .setContentType(sample.getContentType())
+                .build();
+        OMElement content = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), StAXParserConfiguration.DEFAULT, mb).getDocumentElement();
         if (build) {
             content.build();
         }

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestReadAttachmentBeforeRootPartComplete.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestReadAttachmentBeforeRootPartComplete.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestReadAttachmentBeforeRootPartComplete.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestReadAttachmentBeforeRootPartComplete.java Sun May 14 12:07:12 2017
@@ -18,13 +18,14 @@
  */
 package org.apache.axiom.ts.om.builder;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
 
 import javax.activation.DataHandler;
 import javax.activation.DataSource;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.blob.Blobs;
+import org.apache.axiom.blob.MemoryBlob;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMMetaFactory;
@@ -75,14 +76,18 @@ public class TestReadAttachmentBeforeRoo
         // Serialize the message
         OMOutputFormat format = new OMOutputFormat();
         format.setDoOptimize(true);
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        orgRoot.serialize(baos, format);
+        MemoryBlob blob = Blobs.createMemoryBlob();
+        OutputStream out = blob.getOutputStream();
+        orgRoot.serialize(out, format);
+        out.close();
         
         // Parse the message
         OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(factory,
                 StAXParserConfiguration.NON_COALESCING,
-                new Attachments(new ByteArrayInputStream(baos.toByteArray()),
-                        format.getContentType()));
+                MultipartBody.builder()
+                        .setInputStream(blob.getInputStream())
+                        .setContentType(format.getContentType())
+                        .build());
         OMElement root = builder.getDocumentElement();
         OMElement child1 = (OMElement)root.getFirstOMChild();
         OMText text = (OMText)child1.getFirstOMChild();

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRegisterCustomBuilderForPayloadJAXBWithXOP.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRegisterCustomBuilderForPayloadJAXBWithXOP.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRegisterCustomBuilderForPayloadJAXBWithXOP.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRegisterCustomBuilderForPayloadJAXBWithXOP.java Sun May 14 12:07:12 2017
@@ -23,9 +23,9 @@ import java.io.OutputStream;
 
 import javax.activation.DataHandler;
 
-import org.apache.axiom.attachments.Attachments;
 import org.apache.axiom.blob.Blobs;
 import org.apache.axiom.blob.MemoryBlob;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLBuilderFactory;
@@ -46,7 +46,10 @@ public class TestRegisterCustomBuilderFo
         format.setDoOptimize(true);
         createTestDocument(dh).serialize(out, format);
         out.close();
-        Attachments attachments = new Attachments(blob.getInputStream(), format.getContentType());
-        test(dh, OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), StAXParserConfiguration.DEFAULT, attachments), false);
+        MultipartBody mb = MultipartBody.builder()
+                .setInputStream(blob.getInputStream())
+                .setContentType(format.getContentType())
+                .build();
+        test(dh, OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), StAXParserConfiguration.DEFAULT, mb), false);
     }
 }

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestRootPartStreaming.java Sun May 14 12:07:12 2017
@@ -23,7 +23,7 @@ import java.io.ByteArrayOutputStream;
 
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMMetaFactory;
@@ -64,7 +64,7 @@ public class TestRootPartStreaming exten
         InstrumentedInputStream in = new InstrumentedInputStream(new ByteArrayInputStream(baos.toByteArray()));
         OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(factory,
                 StAXParserConfiguration.DEFAULT,
-                new Attachments(in, format.getContentType()));
+                MultipartBody.builder().setInputStream(in).setContentType(format.getContentType()).build());
         OMElement root = builder.getDocumentElement();
         long count1 = in.getCount();
         XMLStreamReader reader = root.getXMLStreamReader(false);

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/jaxb/TestDataHandlerSerializationWithMTOM.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/jaxb/TestDataHandlerSerializationWithMTOM.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/jaxb/TestDataHandlerSerializationWithMTOM.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/jaxb/TestDataHandlerSerializationWithMTOM.java Sun May 14 12:07:12 2017
@@ -18,14 +18,15 @@
  */
 package org.apache.axiom.ts.om.sourcedelement.jaxb;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
 
 import javax.activation.DataHandler;
 import javax.xml.bind.JAXBContext;
 import javax.xml.namespace.QName;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.blob.Blobs;
+import org.apache.axiom.blob.MemoryBlob;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMOutputFormat;
@@ -63,14 +64,19 @@ public class TestDataHandlerSerializatio
         // Serialize the message
         OMOutputFormat format = new OMOutputFormat();
         format.setDoOptimize(true);
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        MemoryBlob blob = Blobs.createMemoryBlob();
+        OutputStream out = blob.getOutputStream();
         orgEnvelope.serialize(out, format);
+        out.close();
         assertFalse(element.isExpanded());
         
         // Parse the serialized message
-        Attachments att = new Attachments(new ByteArrayInputStream(out.toByteArray()), format.getContentType());
-        assertEquals(2, att.getAllContentIDs().length);
-        SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(att).getSOAPEnvelope();
+        MultipartBody mb = MultipartBody.builder()
+                .setInputStream(blob.getInputStream())
+                .setContentType(format.getContentType())
+                .build();
+        assertEquals(2, mb.getPartCount());
+        SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, mb).getSOAPEnvelope();
         OMElement contentElement = envelope.getBody().getFirstElement().getFirstChildWithName(
                 new QName("http://ws.apache.org/axiom/test/jaxb", "content"));
         OMText content = (OMText)contentElement.getFirstOMChild();

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSerialize.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSerialize.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSerialize.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSerialize.java Sun May 14 12:07:12 2017
@@ -21,7 +21,7 @@ package org.apache.axiom.ts.om.xop;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMOutputFormat;
@@ -46,7 +46,7 @@ public class TestSerialize extends Axiom
 
         // Read in message: SOAPPart and 2 image attachments
         InputStream inStream = testMessage.getInputStream();
-        Attachments attachments = new Attachments(inStream, testMessage.getContentType());
+        MultipartBody mb = MultipartBody.builder().setInputStream(inStream).setContentType(testMessage.getContentType()).build();
         
         OMOutputFormat oof = new OMOutputFormat();
         oof.setDoOptimize(true);
@@ -61,7 +61,7 @@ public class TestSerialize extends Axiom
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         
         OMXMLParserWrapper builder =
-            OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), StAXParserConfiguration.DEFAULT, attachments);
+            OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(), StAXParserConfiguration.DEFAULT, mb);
         OMElement om = builder.getDocumentElement();
         om.serialize(baos, oof);
         om.close(false);

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java Sun May 14 12:07:12 2017
@@ -29,10 +29,9 @@ import javax.mail.Multipart;
 import javax.mail.internet.MimeMultipart;
 import javax.mail.util.ByteArrayDataSource;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMSerializable;
 import org.apache.axiom.om.OMText;
@@ -56,7 +55,7 @@ public class TestSetOptimize extends Axi
             OMDocument document = OMXMLBuilderFactory.createOMBuilder(
                     metaFactory.getOMFactory(),
                     StAXParserConfiguration.DEFAULT,
-                    new Attachments(in, XOP_SPEC_SAMPLE.getContentType())).getDocument();
+                    MultipartBody.builder().setInputStream(in).setContentType(XOP_SPEC_SAMPLE.getContentType()).build()).getDocument();
             for (Iterator<OMSerializable> it = document.getDescendants(false); it.hasNext(); ) {
                 OMSerializable node = it.next();
                 if (node instanceof OMText) {

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestCreateSOAPModelBuilderMTOMContentTypeMismatch.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestCreateSOAPModelBuilderMTOMContentTypeMismatch.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestCreateSOAPModelBuilderMTOMContentTypeMismatch.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestCreateSOAPModelBuilderMTOMContentTypeMismatch.java Sun May 14 12:07:12 2017
@@ -29,10 +29,10 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
-import org.apache.axiom.attachments.Attachments;
 import org.apache.axiom.blob.Blobs;
 import org.apache.axiom.blob.MemoryBlob;
 import org.apache.axiom.mime.ContentType;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPProcessingException;
@@ -43,7 +43,7 @@ import org.apache.axiom.ts.soap.SOAPTest
 import org.apache.axiom.util.UIDGenerator;
 
 /**
- * Tests that {@link OMXMLBuilderFactory#createSOAPModelBuilder(OMMetaFactory, Attachments)}
+ * Tests that {@link OMXMLBuilderFactory#createSOAPModelBuilder(OMMetaFactory, MultipartBody)}
  * produces an error if the SOAP version used in the root part doesn't match the Content-Type of the
  * message.
  */
@@ -98,7 +98,9 @@ public class TestCreateSOAPModelBuilderM
         out.close();
         // Now attempt to create an Axiom builder
         try {
-            OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, new Attachments(blob.getInputStream(), contentType.toString()));
+            OMXMLBuilderFactory.createSOAPModelBuilder(
+                    metaFactory,
+                    MultipartBody.builder().setInputStream(blob.getInputStream()).setContentType(contentType).build());
             fail("Expected SOAPProcessingException");
         } catch (SOAPProcessingException ex) {
             // Expected

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java Sun May 14 12:07:12 2017
@@ -21,7 +21,7 @@ package org.apache.axiom.ts.soap12.envel
 import java.io.InputStream;
 import java.util.Iterator;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMText;
@@ -40,8 +40,8 @@ public class TestBuildWithAttachments ex
     protected void runTest() throws Throwable {
         MTOMSample sample = MTOMSample.SAMPLE1;
         InputStream in = sample.getInputStream();
-        Attachments attachments = new Attachments(in, sample.getContentType());
-        SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, attachments).getSOAPEnvelope();
+        MultipartBody mb = MultipartBody.builder().setInputStream(in).setContentType(sample.getContentType()).build();
+        SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, mb).getSOAPEnvelope();
         envelope.buildWithAttachments();
         in.close();
         Iterator<OMElement> it = envelope.getBody().getFirstElement().getChildElements();

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestMTOMForwardStreaming.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestMTOMForwardStreaming.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestMTOMForwardStreaming.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestMTOMForwardStreaming.java Sun May 14 12:07:12 2017
@@ -25,8 +25,8 @@ import java.util.Iterator;
 import javax.activation.DataHandler;
 import javax.activation.DataSource;
 
-import org.apache.axiom.attachments.Attachments;
-import org.apache.axiom.attachments.lifecycle.DataHandlerExt;
+import org.apache.axiom.mime.MultipartBody;
+import org.apache.axiom.mime.PartDataHandler;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMOutputFormat;
@@ -104,8 +104,8 @@ public class TestMTOMForwardStreaming ex
             public void run() {
                 try {
                     try {
-                        Attachments attachments = new Attachments(pipe1In, contentType);
-                        SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, attachments).getSOAPEnvelope();
+                        MultipartBody mb = MultipartBody.builder().setInputStream(pipe1In).setContentType(contentType).build();
+                        SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, mb).getSOAPEnvelope();
                         // The code path executed by serializeAndConsume is significantly different if
                         // the element is built. Therefore we need two different test executions.
                         if (buildSOAPPart) {
@@ -124,17 +124,17 @@ public class TestMTOMForwardStreaming ex
         forwarderThread.start();
         
         try {
-            Attachments attachments = new Attachments(pipe2In, contentType);
-            SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, attachments).getSOAPEnvelope();
+            MultipartBody mb = MultipartBody.builder().setInputStream(pipe2In).setContentType(contentType).build();
+            SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, mb).getSOAPEnvelope();
             OMElement bodyElement = envelope.getBody().getFirstElement();
             Iterator<OMElement> it = bodyElement.getChildElements();
             OMElement data1 = it.next();
             OMElement data2 = it.next();
             
             IOTestUtils.compareStreams(ds1.getInputStream(),
-                    ((DataHandlerExt)((OMText)data1.getFirstOMChild()).getDataHandler()).readOnce());
+                    ((PartDataHandler)((OMText)data1.getFirstOMChild()).getDataHandler()).getPart().getInputStream(false));
             IOTestUtils.compareStreams(ds2.getInputStream(),
-                    ((DataHandlerExt)((OMText)data2.getFirstOMChild()).getDataHandler()).readOnce());
+                    ((PartDataHandler)((OMText)data2.getFirstOMChild()).getDataHandler()).getPart().getInputStream(false));
         } finally {
             pipe2In.close();
         }

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java Sun May 14 12:07:12 2017
@@ -22,7 +22,7 @@ import static com.google.common.truth.Tr
 
 import java.util.Iterator;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
@@ -43,8 +43,8 @@ public class TestBuilderDetach extends A
     protected void runTest() throws Throwable {
         MTOMSample sample = MTOMSample.SAMPLE1;
         InstrumentedInputStream in = new InstrumentedInputStream(sample.getInputStream());
-        Attachments attachments = new Attachments(in, sample.getContentType());
-        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, attachments);
+        MultipartBody mb = MultipartBody.builder().setInputStream(in).setContentType(sample.getContentType()).build();
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, mb);
         SOAPEnvelope envelope = builder.getSOAPEnvelope();
         long countBeforeDetach = in.getCount();
         builder.detach();

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestGetXMLStreamReaderMTOMEncoded.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestGetXMLStreamReaderMTOMEncoded.java?rev=1795104&r1=1795103&r2=1795104&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestGetXMLStreamReaderMTOMEncoded.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestGetXMLStreamReaderMTOMEncoded.java Sun May 14 12:07:12 2017
@@ -26,7 +26,7 @@ import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.MultipartBody;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
@@ -49,8 +49,11 @@ public class TestGetXMLStreamReaderMTOME
     @Override
     protected void runTest() throws Throwable {
         InputStream inStream = MTOMSample.SAMPLE2.getInputStream();
-        Attachments attachments = new Attachments(inStream, MTOMSample.SAMPLE2.getContentType());
-        OMElement root = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, attachments).getDocumentElement();
+        MultipartBody mb = MultipartBody.builder()
+                .setInputStream(inStream)
+                .setContentType(MTOMSample.SAMPLE2.getContentType())
+                .build();
+        OMElement root = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, mb).getDocumentElement();
         
         // Use tree as input to XMLStreamReader
         // Issue XOP:Include events for optimized MTOM text nodes