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 <[email protected]>
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>