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 2016/12/30 13:25:21 UTC
svn commit: r1776560 - in /webservices/axiom/trunk:
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/jaxb/
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixi...
Author: veithen
Date: Fri Dec 30 13:25:21 2016
New Revision: 1776560
URL: http://svn.apache.org/viewvc?rev=1776560&view=rev
Log:
Resurrect OMAttachmentAccessor and use it to replace MimePartProvider.
Added:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java
- copied, changed from r1733701, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyAttachmentAccessor.java
- copied, changed from r1776559, webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyMimePartProvider.java
Removed:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MimePartProvider.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyMimePartProvider.java
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/BuilderSpec.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/jaxb/AttachmentUnmarshallerImpl.java
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/stream/xop/XOPDecodingFilter.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilterHandler.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Attachments.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MIMEMessage.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMMetaFactorySPI.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/XOPEncoded.java
webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/TestCloneBinary.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/XOPRoundtripTest.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/common/factory/AbstractOMMetaFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java Fri Dec 30 13:25:21 2016
@@ -27,7 +27,7 @@ import javax.xml.transform.sax.SAXSource
import org.apache.axiom.core.NodeFactory;
import org.apache.axiom.mime.MIMEMessage;
-import org.apache.axiom.mime.MimePartProvider;
+import org.apache.axiom.om.OMAttachmentAccessor;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMMetaFactorySPI;
import org.apache.axiom.om.OMXMLParserWrapper;
@@ -78,8 +78,8 @@ public abstract class AbstractOMMetaFact
}
@Override
- public OMXMLParserWrapper createOMBuilder(Source rootPart, MimePartProvider mimePartProvider) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.DEFAULT, rootPart, mimePartProvider));
+ public OMXMLParserWrapper createOMBuilder(Source rootPart, OMAttachmentAccessor attachmentAccessor) {
+ return OM.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.DEFAULT, rootPart, attachmentAccessor));
}
@Override
@@ -103,7 +103,7 @@ public abstract class AbstractOMMetaFact
}
@Override
- public SOAPModelBuilder createSOAPModelBuilder(Source rootPart, MimePartProvider mimePartProvider) {
- return SOAP.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.SOAP, rootPart, mimePartProvider));
+ public SOAPModelBuilder createSOAPModelBuilder(Source rootPart, OMAttachmentAccessor attachmentAccessor) {
+ return SOAP.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.SOAP, rootPart, attachmentAccessor));
}
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/BuilderSpec.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/BuilderSpec.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/BuilderSpec.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/BuilderSpec.java Fri Dec 30 13:25:21 2016
@@ -24,6 +24,7 @@ import java.io.InputStream;
import java.io.Reader;
import java.net.URL;
+import javax.activation.DataHandler;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.Source;
@@ -38,8 +39,8 @@ import org.apache.axiom.core.stream.XmlI
import org.apache.axiom.core.stream.dom.DOMInput;
import org.apache.axiom.core.stream.sax.SAXInput;
import org.apache.axiom.mime.MIMEMessage;
-import org.apache.axiom.mime.MimePartProvider;
import org.apache.axiom.mime.Part;
+import org.apache.axiom.om.OMAttachmentAccessor;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.impl.common.builder.Detachable;
import org.apache.axiom.om.impl.stream.stax.pull.StAXPullInput;
@@ -198,7 +199,12 @@ final class BuilderSpec {
return new BuilderSpec(
new FilteredXmlInput(
spec.getInput(),
- new XOPDecodingFilter(message)),
+ new XOPDecodingFilter(new OMAttachmentAccessor() {
+ @Override
+ public DataHandler getDataHandler(String contentID) {
+ return message.getDataHandler(contentID);
+ }
+ })),
new Detachable() {
@Override
public void detach() {
@@ -207,12 +213,12 @@ final class BuilderSpec {
});
}
- static BuilderSpec from(StAXParserConfiguration configuration, Source source, MimePartProvider mimePartProvider) {
+ static BuilderSpec from(StAXParserConfiguration configuration, Source source, OMAttachmentAccessor attachmentAccessor) {
BuilderSpec spec = from(configuration, source);
return new BuilderSpec(
new FilteredXmlInput(
spec.getInput(),
- new XOPDecodingFilter(mimePartProvider)),
+ new XOPDecodingFilter(attachmentAccessor)),
spec.getDetachable());
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/jaxb/AttachmentUnmarshallerImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/jaxb/AttachmentUnmarshallerImpl.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/jaxb/AttachmentUnmarshallerImpl.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/jaxb/AttachmentUnmarshallerImpl.java Fri Dec 30 13:25:21 2016
@@ -18,20 +18,19 @@
*/
package org.apache.axiom.om.impl.jaxb;
-import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.activation.DataHandler;
import javax.xml.bind.attachment.AttachmentUnmarshaller;
-import org.apache.axiom.mime.MimePartProvider;
+import org.apache.axiom.om.OMAttachmentAccessor;
public final class AttachmentUnmarshallerImpl extends AttachmentUnmarshaller {
- private final MimePartProvider mimePartProvider;
+ private final OMAttachmentAccessor attachmentAccessor;
- public AttachmentUnmarshallerImpl(MimePartProvider mimePartProvider) {
- this.mimePartProvider = mimePartProvider;
+ public AttachmentUnmarshallerImpl(OMAttachmentAccessor attachmentAccessor) {
+ this.attachmentAccessor = attachmentAccessor;
}
/**
* Extract the content ID from a URL following the cid scheme defined by RFC2392.
@@ -64,10 +63,11 @@ public final class AttachmentUnmarshalle
@Override
public DataHandler getAttachmentAsDataHandler(String cid) {
- try {
- return mimePartProvider.getDataHandler(getContentIDFromURL(cid));
- } catch (IOException ex) {
- throw new RuntimeException(ex);
+ DataHandler dh = attachmentAccessor.getDataHandler(getContentIDFromURL(cid));
+ if (dh == null) {
+ throw new IllegalArgumentException("No MIME part found for content ID '" + cid + "'");
+ } else {
+ return dh;
}
}
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=1776560&r1=1776559&r2=1776560&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 Fri Dec 30 13:25:21 2016
@@ -383,7 +383,7 @@ public aspect AxiomContainerSupport {
configurator.configure(unmarshaller);
}
XOPEncoded<XMLStreamReader> xopEncodedStream = getXOPEncodedStreamReader(preserve);
- unmarshaller.setAttachmentUnmarshaller(new AttachmentUnmarshallerImpl(xopEncodedStream.getMimePartProvider()));
+ unmarshaller.setAttachmentUnmarshaller(new AttachmentUnmarshallerImpl(xopEncodedStream.getAttachmentAccessor()));
return unmarshaller.unmarshal(xopEncodedStream.getRootPart());
}
@@ -393,7 +393,7 @@ public aspect AxiomContainerSupport {
configurator.configure(unmarshaller);
}
XOPEncoded<XMLStreamReader> xopEncodedStream = getXOPEncodedStreamReader(preserve);
- unmarshaller.setAttachmentUnmarshaller(new AttachmentUnmarshallerImpl(xopEncodedStream.getMimePartProvider()));
+ unmarshaller.setAttachmentUnmarshaller(new AttachmentUnmarshallerImpl(xopEncodedStream.getAttachmentAccessor()));
return unmarshaller.unmarshal(xopEncodedStream.getRootPart(), declaredType);
}
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilter.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilter.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilter.java Fri Dec 30 13:25:21 2016
@@ -20,17 +20,17 @@ package org.apache.axiom.om.impl.stream.
import org.apache.axiom.core.stream.XmlFilter;
import org.apache.axiom.core.stream.XmlHandler;
-import org.apache.axiom.mime.MimePartProvider;
+import org.apache.axiom.om.OMAttachmentAccessor;
public final class XOPDecodingFilter implements XmlFilter {
- private final MimePartProvider mimePartProvider;
+ private final OMAttachmentAccessor attachmentAccessor;
- public XOPDecodingFilter(MimePartProvider mimePartProvider) {
- this.mimePartProvider = mimePartProvider;
+ public XOPDecodingFilter(OMAttachmentAccessor attachmentAccessor) {
+ this.attachmentAccessor = attachmentAccessor;
}
@Override
public XmlHandler createFilterHandler(XmlHandler parent) {
- return new XOPDecodingFilterHandler(parent, mimePartProvider);
+ return new XOPDecodingFilterHandler(parent, attachmentAccessor);
}
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilterHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilterHandler.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilterHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPDecodingFilterHandler.java Fri Dec 30 13:25:21 2016
@@ -25,22 +25,28 @@ import javax.activation.DataHandler;
import org.apache.axiom.core.stream.XmlHandler;
import org.apache.axiom.core.stream.xop.AbstractXOPDecodingFilterHandler;
import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
-import org.apache.axiom.mime.MimePartProvider;
+import org.apache.axiom.om.OMAttachmentAccessor;
+import org.apache.axiom.om.OMException;
import org.apache.axiom.om.impl.intf.TextContent;
final class XOPDecodingFilterHandler extends AbstractXOPDecodingFilterHandler {
private static class DataHandlerProviderImpl implements DataHandlerProvider {
- private final MimePartProvider mimePartProvider;
+ private final OMAttachmentAccessor attachmentAccessor;
private final String contentID;
- public DataHandlerProviderImpl(MimePartProvider mimePartProvider, String contentID) {
- this.mimePartProvider = mimePartProvider;
+ public DataHandlerProviderImpl(OMAttachmentAccessor attachmentAccessor, String contentID) {
+ this.attachmentAccessor = attachmentAccessor;
this.contentID = contentID;
}
@Override
public DataHandler getDataHandler() throws IOException {
- return mimePartProvider.getDataHandler(contentID);
+ DataHandler dh = attachmentAccessor.getDataHandler(contentID);
+ if (dh == null) {
+ throw new OMException("No MIME part found for content ID '" + contentID + "'");
+ } else {
+ return dh;
+ }
}
}
@@ -48,15 +54,15 @@ final class XOPDecodingFilterHandler ext
AFTER_START_ELEMENT, CONTENT_SEEN, IN_XOP_INCLUDE, AFTER_XOP_INCLUDE
}
- private final MimePartProvider mimePartProvider;
+ private final OMAttachmentAccessor attachmentAccessor;
- XOPDecodingFilterHandler(XmlHandler parent, MimePartProvider mimePartProvider) {
+ XOPDecodingFilterHandler(XmlHandler parent, OMAttachmentAccessor attachmentAccessor) {
super(parent);
- this.mimePartProvider = mimePartProvider;
+ this.attachmentAccessor = attachmentAccessor;
}
@Override
protected Object buildCharacterData(String contentID) {
- return new TextContent(contentID, new DataHandlerProviderImpl(mimePartProvider, contentID), true);
+ return new TextContent(contentID, new DataHandlerProviderImpl(attachmentAccessor, contentID), true);
}
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java Fri Dec 30 13:25:21 2016
@@ -30,10 +30,11 @@ import org.apache.axiom.core.stream.Stre
import org.apache.axiom.core.stream.XmlHandler;
import org.apache.axiom.core.stream.xop.AbstractXOPEncodingFilterHandler;
import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
-import org.apache.axiom.mime.MimePartProvider;
+import org.apache.axiom.om.OMAttachmentAccessor;
+import org.apache.axiom.om.OMException;
import org.apache.axiom.om.impl.intf.TextContent;
-public final class XOPEncodingFilterHandler extends AbstractXOPEncodingFilterHandler implements XOPHandler, MimePartProvider {
+public final class XOPEncodingFilterHandler extends AbstractXOPEncodingFilterHandler implements XOPHandler, OMAttachmentAccessor {
private final Map<String,Object> dataHandlerObjects = new LinkedHashMap<String,Object>();
private final ContentIDGenerator contentIDGenerator;
private final OptimizationPolicy optimizationPolicy;
@@ -75,15 +76,18 @@ public final class XOPEncodingFilterHand
}
@Override
- public DataHandler getDataHandler(String contentID) throws IOException {
+ public DataHandler getDataHandler(String contentID) {
Object dataHandlerObject = dataHandlerObjects.get(contentID);
if (dataHandlerObject == null) {
- throw new IllegalArgumentException("No DataHandler object found for content ID '" +
- contentID + "'");
+ return null;
} else if (dataHandlerObject instanceof DataHandler) {
return (DataHandler)dataHandlerObject;
} else {
- return ((DataHandlerProvider)dataHandlerObject).getDataHandler();
+ try {
+ return ((DataHandlerProvider)dataHandlerObject).getDataHandler();
+ } catch (IOException ex) {
+ throw new OMException(ex);
+ }
}
}
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Attachments.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Attachments.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Attachments.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Attachments.java Fri Dec 30 13:25:21 2016
@@ -29,6 +29,7 @@ import org.apache.axiom.blob.WritableBlo
import org.apache.axiom.ext.activation.SizeAwareDataSource;
import org.apache.axiom.mime.ContentType;
import org.apache.axiom.mime.MIMEMessage;
+import org.apache.axiom.om.OMAttachmentAccessor;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.impl.MTOMConstants;
@@ -42,7 +43,7 @@ import java.util.List;
import java.util.Set;
import java.util.Map;
-public class Attachments {
+public class Attachments implements OMAttachmentAccessor {
private final AttachmentsDelegate delegate;
/**
@@ -220,6 +221,7 @@ public class Attachments {
* @return the {@link DataHandler} of the MIME part referred by the content ID or
* <code>null</code> if the MIME part referred by the content ID does not exist
*/
+ @Override
public DataHandler getDataHandler(String contentID) {
return delegate.getDataHandler(contentID);
}
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MIMEMessage.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MIMEMessage.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MIMEMessage.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MIMEMessage.java Fri Dec 30 13:25:21 2016
@@ -43,7 +43,7 @@ import org.apache.james.mime4j.stream.Re
/**
* Represents a MIME multipart message read from a stream.
*/
-public final class MIMEMessage implements Iterable<Part>, MimePartProvider {
+public final class MIMEMessage implements Iterable<Part> {
public interface PartCreationListener {
void partCreated(Part part);
}
@@ -187,7 +187,6 @@ public final class MIMEMessage implement
return contentType;
}
- @Override
public DataHandler getDataHandler(String contentID) {
do {
PartImpl part = partMap.get(contentID);
@@ -195,7 +194,7 @@ public final class MIMEMessage implement
return part.getDataHandler();
}
} while (getNextPart() != null);
- throw new IllegalArgumentException("No MIME part found for content ID '" + contentID + "'");
+ return null;
}
PartImpl getFirstPart() {
Copied: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java (from r1733701, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java?p2=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java&p1=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java&r1=1733701&r2=1776560&rev=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMAttachmentAccessor.java Fri Dec 30 13:25:21 2016
@@ -21,15 +21,17 @@ package org.apache.axiom.om;
import javax.activation.DataHandler;
/**
- * This interface is applied to objects that
- * can access attachments.
+ * Interface to look up MIME parts.
*/
public interface OMAttachmentAccessor {
-
/**
- * @param blobcid (without the surrounding angle brackets and "cid:" prefix)
- * @return The DataHandler of the mime part referred by the Content-Id or *null* if the mime
- * part referred by the content-id does not exist
+ * Get the {@link DataHandler} for the MIME part identified by a given content ID.
+ *
+ * @param contentID
+ * the raw content ID (without the surrounding angle brackets and <tt>cid:</tt>
+ * prefix) of the MIME part
+ * @return the {@link DataHandler} of the MIME part referred by the content ID or
+ * <code>null</code> if the MIME part referred by the content ID does not exist
*/
- public DataHandler getDataHandler(String blobcid);
+ public DataHandler getDataHandler(String contentID);
}
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMMetaFactorySPI.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMMetaFactorySPI.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMMetaFactorySPI.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMMetaFactorySPI.java Fri Dec 30 13:25:21 2016
@@ -24,7 +24,6 @@ import javax.xml.transform.Source;
import javax.xml.transform.sax.SAXSource;
import org.apache.axiom.mime.MIMEMessage;
-import org.apache.axiom.mime.MimePartProvider;
import org.apache.axiom.om.util.StAXParserConfiguration;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPModelBuilder;
@@ -123,7 +122,7 @@ public interface OMMetaFactorySPI extend
*/
OMXMLParserWrapper createOMBuilder(StAXParserConfiguration configuration, MIMEMessage message);
- OMXMLParserWrapper createOMBuilder(Source rootPart, MimePartProvider mimePartProvider);
+ OMXMLParserWrapper createOMBuilder(Source rootPart, OMAttachmentAccessor attachmentAccessor);
/**
* Create an object model builder for SOAP that pulls events from a StAX stream reader. The
@@ -167,5 +166,5 @@ public interface OMMetaFactorySPI extend
*/
SOAPModelBuilder createSOAPModelBuilder(MIMEMessage message);
- SOAPModelBuilder createSOAPModelBuilder(Source rootPart, MimePartProvider mimePartProvider);
+ SOAPModelBuilder createSOAPModelBuilder(Source rootPart, OMAttachmentAccessor attachmentAccessor);
}
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java Fri Dec 30 13:25:21 2016
@@ -30,7 +30,6 @@ import javax.xml.transform.sax.SAXSource
import org.apache.axiom.attachments.Attachments;
import org.apache.axiom.ext.stax.datahandler.DataHandlerReader;
import org.apache.axiom.mime.MIMEMessage;
-import org.apache.axiom.mime.MimePartProvider;
import org.apache.axiom.om.util.StAXParserConfiguration;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPFactory;
@@ -506,8 +505,8 @@ public class OMXMLBuilderFactory {
}
public static OMXMLParserWrapper createOMBuilder(OMFactory omFactory,
- Source rootPart, MimePartProvider mimePartProvider) {
- return ((OMMetaFactorySPI)omFactory.getMetaFactory()).createOMBuilder(rootPart, mimePartProvider);
+ Source rootPart, OMAttachmentAccessor attachmentAccessor) {
+ return ((OMMetaFactorySPI)omFactory.getMetaFactory()).createOMBuilder(rootPart, attachmentAccessor);
}
/**
@@ -733,7 +732,7 @@ public class OMXMLBuilderFactory {
}
public static SOAPModelBuilder createSOAPModelBuilder(OMMetaFactory metaFactory,
- Source rootPart, MimePartProvider mimePartProvider) {
- return ((OMMetaFactorySPI)metaFactory).createSOAPModelBuilder(rootPart, mimePartProvider);
+ Source rootPart, OMAttachmentAccessor attachmentAccessor) {
+ return ((OMMetaFactorySPI)metaFactory).createSOAPModelBuilder(rootPart, attachmentAccessor);
}
}
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/XOPEncoded.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/XOPEncoded.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/XOPEncoded.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/XOPEncoded.java Fri Dec 30 13:25:21 2016
@@ -18,23 +18,21 @@
*/
package org.apache.axiom.om;
-import org.apache.axiom.mime.MimePartProvider;
-
/**
* Represent XOP encoded data. Since an XOP message is a MIME package with
* a root part in XML and a set of additional (binary) parts referenced from
* the main part, this class encapsulates an API dependent object
- * representing the main part and a {@link MimePartProvider} giving access to
- * the attachments. Instances of this class can be obtained from
+ * representing the main part and an {@link OMAttachmentAccessor} giving access
+ * to the attachments. Instances of this class can be obtained from
* {@link OMContainer#getXOPEncodedStreamReader(boolean)}.
*/
public final class XOPEncoded<T> {
private final T rootPart;
- private final MimePartProvider mimePartProvider;
+ private final OMAttachmentAccessor attachmentAccessor;
- public XOPEncoded(T rootPart, MimePartProvider mimePartProvider) {
+ public XOPEncoded(T rootPart, OMAttachmentAccessor attachmentAccessor) {
this.rootPart = rootPart;
- this.mimePartProvider = mimePartProvider;
+ this.attachmentAccessor = attachmentAccessor;
}
/**
@@ -47,12 +45,12 @@ public final class XOPEncoded<T> {
}
/**
- * Get the provider object for the additional MIME parts referenced by the
+ * Get the accessor for the additional MIME parts referenced by the
* root part.
*
- * @return the MIME part provider
+ * @return the attachment accessor
*/
- public MimePartProvider getMimePartProvider() {
- return mimePartProvider;
+ public OMAttachmentAccessor getAttachmentAccessor() {
+ return attachmentAccessor;
}
}
Modified: webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md (original)
+++ webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md Fri Dec 30 13:25:21 2016
@@ -158,8 +158,8 @@ Changes in this release
been processed. That means that after completion, nodes created by a builder
will be indistinguishable from programmatically created nodes.
-* The `OMAttachmentAccessor` and `OMXMLStreamReader` interfaces have been
- removed because all if their usages were already deprecated in 1.2.x.
+* The `OMXMLStreamReader` interface has been removed because all if its
+ usages were already deprecated in 1.2.x.
* Support for the legacy `XMLStreamReader` extension for optimized base64
handling has been removed. The only supported mechanism in Axiom 1.3.x is
Copied: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyAttachmentAccessor.java (from r1776559, webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyMimePartProvider.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyAttachmentAccessor.java?p2=webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyAttachmentAccessor.java&p1=webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyMimePartProvider.java&r1=1776559&r2=1776560&rev=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyMimePartProvider.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/DummyAttachmentAccessor.java Fri Dec 30 13:25:21 2016
@@ -18,18 +18,16 @@
*/
package org.apache.axiom.ts.om.text;
-import java.io.IOException;
-
import javax.activation.DataHandler;
-import org.apache.axiom.mime.MimePartProvider;
+import org.apache.axiom.om.OMAttachmentAccessor;
-final class DummyMimePartProvider implements MimePartProvider {
+final class DummyAttachmentAccessor implements OMAttachmentAccessor {
private final String contentID;
private final DataHandler dataHandler;
private boolean loaded;
- DummyMimePartProvider(String contentID, DataHandler dataHandler) {
+ DummyAttachmentAccessor(String contentID, DataHandler dataHandler) {
this.contentID = contentID;
this.dataHandler = dataHandler;
}
@@ -39,9 +37,9 @@ final class DummyMimePartProvider implem
}
@Override
- public DataHandler getDataHandler(String contentID) throws IOException {
+ public DataHandler getDataHandler(String contentID) {
if (!contentID.equals(this.contentID)) {
- throw new IllegalArgumentException("Unknown content ID");
+ return null;
} else {
loaded = true;
return dataHandler;
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/TestCloneBinary.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/TestCloneBinary.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/TestCloneBinary.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/TestCloneBinary.java Fri Dec 30 13:25:21 2016
@@ -44,15 +44,15 @@ public class TestCloneBinary extends Axi
protected void runTest() throws Throwable {
DataHandler dh = new DataHandler(new RandomDataSource(600613L, 4096));
StringReader rootPart = new StringReader("<root><xop:Include xmlns:xop='http://www.w3.org/2004/08/xop/include' href='cid:123456@example.org'/></root>");
- DummyMimePartProvider mimePartProvider = new DummyMimePartProvider("123456@example.org", dh);
+ DummyAttachmentAccessor attachmentAccessor = new DummyAttachmentAccessor("123456@example.org", dh);
OMElement root = OMXMLBuilderFactory.createOMBuilder(
- metaFactory.getOMFactory(), new StreamSource(rootPart), mimePartProvider).getDocumentElement();
+ metaFactory.getOMFactory(), new StreamSource(rootPart), attachmentAccessor).getDocumentElement();
OMText text = (OMText)root.getFirstOMChild();
OMCloneOptions options = new OMCloneOptions();
options.setFetchDataHandlers(fetch);
OMText clone = (OMText)text.clone(options);
assertTrue(clone.isBinary());
- assertEquals(fetch, mimePartProvider.isLoaded());
+ assertEquals(fetch, attachmentAccessor.isLoaded());
assertSame(dh, clone.getDataHandler());
}
}
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/XOPRoundtripTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/XOPRoundtripTest.java?rev=1776560&r1=1776559&r2=1776560&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/XOPRoundtripTest.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/XOPRoundtripTest.java Fri Dec 30 13:25:21 2016
@@ -47,7 +47,7 @@ public class XOPRoundtripTest extends Ax
OMElement element2 = OMXMLBuilderFactory.createOMBuilder(
factory,
new StAXSource(xopEncodedStream.getRootPart()),
- xopEncodedStream.getMimePartProvider()).getDocumentElement();
+ xopEncodedStream.getAttachmentAccessor()).getDocumentElement();
OMText child = (OMText)element2.getFirstOMChild();
assertNotNull(child);
assertTrue(child.isBinary());
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=1776560&r1=1776559&r2=1776560&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 Fri Dec 30 13:25:21 2016
@@ -66,7 +66,7 @@ public class TestGetXMLStreamReaderMTOME
String hrefValue = xmlStreamReader.getAttributeValue("", "href");
assertThat(hrefValue).startsWith("cid:");
if (hrefValue != null) {
- dh = xopEncodedStream.getMimePartProvider().getDataHandler(
+ dh = xopEncodedStream.getAttachmentAccessor().getDataHandler(
hrefValue.substring(4));
}
}