Remove MessageFormatterEx
Instead declare getDataSource as a default method on MessageFormatter.
diff --git a/modules/kernel/src/org/apache/axis2/kernel/MessageFormatter.java b/modules/kernel/src/org/apache/axis2/kernel/MessageFormatter.java
index 5271b32..f5148e1 100644
--- a/modules/kernel/src/org/apache/axis2/kernel/MessageFormatter.java
+++ b/modules/kernel/src/org/apache/axis2/kernel/MessageFormatter.java
@@ -19,13 +19,19 @@
package org.apache.axis2.kernel;
+import org.apache.axiom.blob.Blobs;
+import org.apache.axiom.blob.MemoryBlob;
+import org.apache.axiom.blob.MemoryBlobOutputStream;
import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.util.activation.BlobDataSource;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import java.io.OutputStream;
import java.net.URL;
+import javax.activation.DataSource;
+
/**
* <p/>
* MessageFormatter implementations are used by Axis2 to support serialization
@@ -81,4 +87,21 @@
*/
public String formatSOAPAction(MessageContext messageContext, OMOutputFormat format,
String soapAction);
+
+ /**
+ * Get the formatted message as a {@link DataSource} object.
+ *
+ * @param messageContext
+ * @param format
+ * @param soapAction
+ * @return
+ * @throws AxisFault
+ */
+ default DataSource getDataSource(MessageContext messageContext, OMOutputFormat format, String soapAction) throws AxisFault {
+ MemoryBlob blob = Blobs.createMemoryBlob();
+ MemoryBlobOutputStream out = blob.getOutputStream();
+ writeTo(messageContext, format, out, false);
+ out.close();
+ return new BlobDataSource(blob, getContentType(messageContext, format, soapAction));
+ }
}
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/format/BinaryFormatter.java b/modules/transport/base/src/main/java/org/apache/axis2/format/BinaryFormatter.java
index ae59ff6..a183c3f 100644
--- a/modules/transport/base/src/main/java/org/apache/axis2/format/BinaryFormatter.java
+++ b/modules/transport/base/src/main/java/org/apache/axis2/format/BinaryFormatter.java
@@ -32,10 +32,11 @@
import org.apache.axiom.util.activation.DataHandlerUtils;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.kernel.MessageFormatter;
import org.apache.axis2.kernel.http.util.URLTemplatingUtil;
import org.apache.axis2.transport.base.BaseConstants;
-public class BinaryFormatter implements MessageFormatterEx {
+public class BinaryFormatter implements MessageFormatter {
private Blob getBlob(MessageContext messageContext) {
OMElement firstChild = messageContext.getEnvelope().getBody().getFirstElement();
if (BaseConstants.DEFAULT_BINARY_WRAPPER.equals(firstChild.getQName())) {
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/format/MessageFormatterEx.java b/modules/transport/base/src/main/java/org/apache/axis2/format/MessageFormatterEx.java
deleted file mode 100644
index 0653bb0..0000000
--- a/modules/transport/base/src/main/java/org/apache/axis2/format/MessageFormatterEx.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.axis2.format;
-
-import javax.activation.DataSource;
-
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.kernel.MessageFormatter;
-
-/**
- * Message formatter with extended capabilities.
- * This interface adds new methods to the {@link MessageFormatter}
- * interface, allowing transport to optimize data transfers.
- */
-public interface MessageFormatterEx extends MessageFormatter {
- /**
- * Get the formatted message as a {@link DataSource} object.
- *
- * @param messageContext
- * @param format
- * @param soapAction
- * @return
- * @throws AxisFault
- */
- DataSource getDataSource(MessageContext messageContext, OMOutputFormat format, String soapAction) throws AxisFault;
-}
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/format/MessageFormatterExAdapter.java b/modules/transport/base/src/main/java/org/apache/axis2/format/MessageFormatterExAdapter.java
deleted file mode 100644
index 5cd0eea..0000000
--- a/modules/transport/base/src/main/java/org/apache/axis2/format/MessageFormatterExAdapter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.axis2.format;
-
-import java.io.OutputStream;
-import java.net.URL;
-
-import javax.activation.DataSource;
-
-import org.apache.axiom.blob.Blobs;
-import org.apache.axiom.blob.MemoryBlob;
-import org.apache.axiom.blob.MemoryBlobOutputStream;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.util.activation.BlobDataSource;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.kernel.MessageFormatter;
-
-/**
- * Adapter to add the {@link MessageFormatterEx} interface to an
- * existing {@link MessageFormatter}.
- * It implements the {@link MessageFormatterEx#getDataSource(MessageContext, OMOutputFormat, String)} method
- * using {@link MessageFormatter#writeTo(MessageContext, OMOutputFormat, OutputStream, boolean)} and
- * {@link MessageFormatter#getContentType(MessageContext, OMOutputFormat, String)}.
- */
-public class MessageFormatterExAdapter implements MessageFormatterEx {
- private final MessageFormatter messageFormatter;
-
- public MessageFormatterExAdapter(MessageFormatter messageFormatter) {
- this.messageFormatter = messageFormatter;
- }
-
- public DataSource getDataSource(MessageContext messageContext,
- OMOutputFormat format,
- String soapAction) throws AxisFault {
- MemoryBlob blob = Blobs.createMemoryBlob();
- MemoryBlobOutputStream out = blob.getOutputStream();
- writeTo(messageContext, format, out, false);
- out.close();
- return new BlobDataSource(blob, getContentType(messageContext, format, soapAction));
- }
-
- public String formatSOAPAction(MessageContext messageContext,
- OMOutputFormat format,
- String soapAction) {
- return messageFormatter.formatSOAPAction(messageContext, format, soapAction);
- }
-
- public String getContentType(MessageContext messageContext,
- OMOutputFormat format,
- String soapAction) {
- return messageFormatter.getContentType(messageContext, format, soapAction);
- }
-
- public URL getTargetAddress(MessageContext messageContext,
- OMOutputFormat format,
- URL targetURL) throws AxisFault {
- return messageFormatter.getTargetAddress(messageContext, format, targetURL);
- }
-
- public void writeTo(MessageContext messageContext,
- OMOutputFormat format,
- OutputStream outputStream,
- boolean preserve) throws AxisFault {
- messageFormatter.writeTo(messageContext, format, outputStream, preserve);
- }
-}
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java b/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java
index cb955b8..6f391e6 100644
--- a/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java
+++ b/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java
@@ -19,6 +19,7 @@
package org.apache.axis2.format;
+import org.apache.axis2.kernel.MessageFormatter;
import org.apache.axis2.kernel.http.util.URLTemplatingUtil;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.AxisFault;
@@ -34,7 +35,7 @@
import javax.activation.DataSource;
-public class PlainTextFormatter implements MessageFormatterEx {
+public class PlainTextFormatter implements MessageFormatter {
public void writeTo(MessageContext messageContext, OMOutputFormat format, OutputStream outputStream, boolean preserve) throws AxisFault {
OMElement textElt = messageContext.getEnvelope().getBody().getFirstElement();
if (BaseConstants.DEFAULT_TEXT_WRAPPER.equals(textElt.getQName())) {
diff --git a/modules/transport/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java b/modules/transport/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
index 7236ad4..6b63a6d 100644
--- a/modules/transport/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
+++ b/modules/transport/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
@@ -19,8 +19,6 @@
package org.apache.axis2.transport.mail;
-import org.apache.axis2.format.MessageFormatterEx;
-import org.apache.axis2.format.MessageFormatterExAdapter;
import org.apache.axis2.transport.base.*;
import org.apache.commons.logging.LogFactory;
import org.apache.axis2.context.ConfigurationContext;
@@ -409,14 +407,7 @@
message.setHeader(BaseConstants.SOAPACTION, msgContext.getSoapAction());
// write body
- MessageFormatterEx messageFormatterEx;
- if (messageFormatter instanceof MessageFormatterEx) {
- messageFormatterEx = (MessageFormatterEx)messageFormatter;
- } else {
- messageFormatterEx = new MessageFormatterExAdapter(messageFormatter);
- }
-
- DataHandler dataHandler = new DataHandler(messageFormatterEx.getDataSource(msgContext, format, msgContext.getSoapAction()));
+ DataHandler dataHandler = new DataHandler(messageFormatter.getDataSource(msgContext, format, msgContext.getSoapAction()));
MimeMultipart mimeMultiPart = null;