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>