This is an automated email from the ASF dual-hosted git repository.

veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 2a0874fa4b Adapt to changes in the Axiom API
2a0874fa4b is described below

commit 2a0874fa4bc964f33f62e210278aa034a6c84968
Author: Andreas Veithen <andreas.veit...@gmail.com>
AuthorDate: Tue Nov 15 20:25:07 2022 +0000

    Adapt to changes in the Axiom API
---
 .../src/test/java/org/apache/axis2/schema/AbstractTestCase.java    | 4 ++--
 .../org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java | 3 +++
 .../org/apache/axis2/jaxws/message/MessagePersistanceTests.java    | 2 +-
 modules/kernel/pom.xml                                             | 4 ++++
 modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java       | 2 +-
 .../apache/axis2/context/externalize/MessageExternalizeUtils.java  | 4 ++--
 .../src/org/apache/axis2/kernel/http/SOAPMessageFormatter.java     | 7 +++++++
 modules/osgi-tests/src/test/java/OSGiTest.java                     | 2 ++
 modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java           | 2 +-
 pom.xml                                                            | 5 +++++
 10 files changed, 28 insertions(+), 7 deletions(-)

diff --git 
a/modules/adb-tests/src/test/java/org/apache/axis2/schema/AbstractTestCase.java 
b/modules/adb-tests/src/test/java/org/apache/axis2/schema/AbstractTestCase.java
index 5a7b17a9f5..7f2b34b3be 100644
--- 
a/modules/adb-tests/src/test/java/org/apache/axis2/schema/AbstractTestCase.java
+++ 
b/modules/adb-tests/src/test/java/org/apache/axis2/schema/AbstractTestCase.java
@@ -363,7 +363,7 @@ public abstract class AbstractTestCase extends TestCase {
         String contentType = format.getContentTypeForMTOM("text/xml");
         Attachments attachments = new Attachments(new 
ByteArrayInputStream(buffer.toByteArray()), contentType);
         assertEquals(countDataHandlers(bean) + 1, 
attachments.getAllContentIDs().length);
-        SOAPModelBuilder builder = 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments);
+        SOAPModelBuilder builder = 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments.getMultipartBody());
         OMElement bodyElement = 
builder.getSOAPEnvelope().getBody().getFirstElement();
         assertBeanEquals(expectedResult, ADBBeanUtil.parse(bean.getClass(), 
cache ? bodyElement.getXMLStreamReader() : 
bodyElement.getXMLStreamReaderWithoutCaching()));
     }
@@ -383,7 +383,7 @@ public abstract class AbstractTestCase extends TestCase {
 //        System.out.write(buffer.toByteArray());
         String contentType = format.getContentTypeForMTOM("text/xml");
         Attachments attachments = new Attachments(new 
ByteArrayInputStream(buffer.toByteArray()), contentType);
-        SOAPModelBuilder builder = 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments);
+        SOAPModelBuilder builder = 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments.getMultipartBody());
         OMElement bodyElement = 
builder.getSOAPEnvelope().getBody().getFirstElement();
         assertBeanEquals(expectedResult, ADBBeanUtil.parse(bean.getClass(), 
bodyElement.getXMLStreamReaderWithoutCaching()));
     }
diff --git 
a/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java
 
b/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java
index d9871c8fc0..3a3b2e8b9e 100644
--- 
a/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java
+++ 
b/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java
@@ -29,6 +29,7 @@ import org.apache.axiom.om.OMText;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.util.activation.DataHandlerContentTypeProvider;
 import org.apache.axiom.util.activation.DataHandlerUtils;
 import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.Message;
@@ -162,6 +163,7 @@ public class MTOMSerializationTests extends TestCase {
         OMOutputFormat format = new OMOutputFormat();
         format.setDoOptimize(true);
         format.setSOAP11(true);
+        format.setContentTypeProvider(DataHandlerContentTypeProvider.INSTANCE);
                
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         soapOM.serializeAndConsume(baos, format);
@@ -219,6 +221,7 @@ public class MTOMSerializationTests extends TestCase {
         OMOutputFormat format = new OMOutputFormat();
         format.setDoOptimize(true);
         format.setSOAP11(true);
+        format.setContentTypeProvider(DataHandlerContentTypeProvider.INSTANCE);
                
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         soapOM.serializeAndConsume(baos, format);
diff --git 
a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java
 
b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java
index f58e0ab64e..45230fd793 100644
--- 
a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java
+++ 
b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java
@@ -92,7 +92,7 @@ public class MessagePersistanceTests extends TestCase {
     
     private static SOAPEnvelope copy(SOAPEnvelope sourceEnv) {
         SOAPCloneOptions options = new SOAPCloneOptions();
-        options.setFetchDataHandlers(true);
+        options.setFetchBlobs(true);
         options.setPreserveModel(true);
         options.setCopyOMDataSources(true);
         return (SOAPEnvelope)sourceEnv.clone(options);
diff --git a/modules/kernel/pom.xml b/modules/kernel/pom.xml
index 06805b9152..9916c5bd86 100644
--- a/modules/kernel/pom.xml
+++ b/modules/kernel/pom.xml
@@ -53,6 +53,10 @@
             <artifactId>axiom-impl</artifactId>
             <scope>runtime</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-legacy-attachments</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.geronimo.specs</groupId>
             <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
diff --git a/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java 
b/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java
index 09e0e0a568..501afcf751 100644
--- a/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java
@@ -46,7 +46,7 @@ public class MTOMBuilder implements MIMEAwareBuilder {
             // TODO: this will be changed later (see AXIS2-5308)
             messageContext.setAttachmentMap(attachments);
             
-            SOAPModelBuilder builder = 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments);
+            SOAPModelBuilder builder = 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments.getMultipartBody());
             messageContext.setProperty(Constants.BUILDER, builder);
             OMDocument document = builder.getDocument();
             String charsetEncoding = document.getCharsetEncoding();
diff --git 
a/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java
 
b/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java
index 4e8dc8c46d..7522f86c9c 100644
--- 
a/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java
+++ 
b/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java
@@ -197,7 +197,7 @@ public class MessageExternalizeUtils  implements 
ExternalizeConstants {
         if (isSOAP) {
             if (attachments.getAttachmentSpecType().equals(
                     MTOMConstants.MTOM_TYPE)) {
-                return OMXMLBuilderFactory.createSOAPModelBuilder(attachments);
+                return 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments.getMultipartBody());
             } else {
                 return 
OMXMLBuilderFactory.createSOAPModelBuilder(attachments.getRootPartInputStream(),
 charSetEncoding);
             }
@@ -206,7 +206,7 @@ public class MessageExternalizeUtils  implements 
ExternalizeConstants {
         // To handle REST XOP case
         else {
             if 
(attachments.getAttachmentSpecType().equals(MTOMConstants.MTOM_TYPE)) {
-                return 
OMXMLBuilderFactory.createOMBuilder(StAXParserConfiguration.DEFAULT, 
attachments);
+                return 
OMXMLBuilderFactory.createOMBuilder(StAXParserConfiguration.DEFAULT, 
attachments.getMultipartBody());
             } else {
                 return 
OMXMLBuilderFactory.createOMBuilder(attachments.getRootPartInputStream(), 
charSetEncoding);
             }
diff --git 
a/modules/kernel/src/org/apache/axis2/kernel/http/SOAPMessageFormatter.java 
b/modules/kernel/src/org/apache/axis2/kernel/http/SOAPMessageFormatter.java
index 5d0215bbe4..2a5371aec5 100644
--- a/modules/kernel/src/org/apache/axis2/kernel/http/SOAPMessageFormatter.java
+++ b/modules/kernel/src/org/apache/axis2/kernel/http/SOAPMessageFormatter.java
@@ -20,6 +20,7 @@
 package org.apache.axis2.kernel.http;
 
 import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.attachments.ConfigurableDataHandler;
 import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.mime.MediaType;
 import org.apache.axiom.om.OMContainer;
@@ -30,6 +31,7 @@ import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPMessage;
 import org.apache.axiom.util.UIDGenerator;
+import org.apache.axiom.util.activation.DataHandlerContentTypeProvider;
 import org.apache.axiom.util.activation.DataHandlerUtils;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
@@ -59,6 +61,11 @@ public class SOAPMessageFormatter implements 
MessageFormatter {
             log.debug("  isDoingSWA=" + format.isDoingSWA());
         }
         
+        if (format.isOptimized() || format.isDoingSWA()) {
+            
format.setContentTypeProvider(DataHandlerContentTypeProvider.INSTANCE);
+            
format.setContentTransferEncodingPolicy(ConfigurableDataHandler.CONTENT_TRANSFER_ENCODING_POLICY);
+        }
+        
         if (msgCtxt.isDoingMTOM()) {           
             int optimizedThreshold = Utils.getMtomThreshold(msgCtxt);       
             if(optimizedThreshold > 0){
diff --git a/modules/osgi-tests/src/test/java/OSGiTest.java 
b/modules/osgi-tests/src/test/java/OSGiTest.java
index cd32b0ca46..cbf67bd477 100644
--- a/modules/osgi-tests/src/test/java/OSGiTest.java
+++ b/modules/osgi-tests/src/test/java/OSGiTest.java
@@ -67,6 +67,8 @@ public class OSGiTest {
                 url("link:classpath:org.apache.james.apache-mime4j-core.link"),
                 
url("link:classpath:org.apache.ws.commons.axiom.axiom-api.link"),
                 
url("link:classpath:org.apache.ws.commons.axiom.axiom-impl.link"),
+                
url("link:classpath:org.apache.ws.commons.axiom.axiom-activation.link"),
+                
url("link:classpath:org.apache.ws.commons.axiom.axiom-legacy-attachments.link"),
                 
url("link:classpath:org.apache.commons.commons-fileupload.link"),
                 url("link:classpath:org.apache.commons.commons-io.link"),
                 
url("link:classpath:org.apache.servicemix.bundles.commons-httpclient.link"), // 
TODO: still necessary???
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java 
b/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
index ec78009192..4567c23871 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
@@ -173,7 +173,7 @@ public class SOAPPartImpl extends SOAPPart {
         
         SOAPModelBuilder builder;
         if (isMTOM && attachments != null) {
-            builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, 
attachments);
+            builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, 
attachments.getMultipartBody());
         } else {
             builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, 
inputStream, charset);
         }
diff --git a/pom.xml b/pom.xml
index 8969d03b39..39d378c265 100644
--- a/pom.xml
+++ b/pom.xml
@@ -674,6 +674,11 @@
                 <artifactId>axiom-activation</artifactId>
                 <version>${axiom.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-legacy-attachments</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.ws.commons.axiom</groupId>
                 <artifactId>axiom-jaxb</artifactId>

Reply via email to