-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jochen,
Looks like this change broke axis2 builds :( - -- dims [EMAIL PROTECTED] wrote: | Author: jochen | Date: Tue Apr 15 04:30:30 2008 | New Revision: 648212 | | URL: http://svn.apache.org/viewvc?rev=648212&view=rev | Log: | Opened the MTOMXMLStreamWriter for processing of attachments without OMText instances. | | Added: | webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java (with props) | webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java (with props) | webservices/commons/trunk/modules/axiom/target-eclipse/ | webservices/commons/trunk/modules/axiom/target-eclipse/classes/ | webservices/commons/trunk/modules/axiom/target-eclipse/test-classes/ | Modified: | webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java | webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java | | Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java | URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java?rev=648212&view=auto | ============================================================================== | --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java (added) | +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java Tue Apr 15 04:30:30 2008 | @@ -0,0 +1,28 @@ | +package org.apache.axiom.om.impl; | + | +import javax.activation.DataHandler; | + | + | +/** | + * Default implementation of [EMAIL PROTECTED] MTOMAttachment}. | + */ | +public class DefaultMTOMAttachment implements MTOMAttachment { | + private final String id; | + private final DataHandler dataHandler; | + | + /** | + * Creates a new instance with the given data and content ID. | + */ | + public DefaultMTOMAttachment(DataHandler pDataHandler, String pId) { | + dataHandler = pDataHandler; | + id = pId; | + } | + | + public String getContentID() { | + return id; | + } | + | + public DataHandler getDataHandler() { | + return dataHandler; | + } | +} | | Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java | ------------------------------------------------------------------------------ | svn:mime-type = text/plain | | Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java | URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java?rev=648212&r1=648211&r2=648212&view=diff | ============================================================================== | --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java (original) | +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java Tue Apr 15 04:30:30 2008 | @@ -94,10 +94,24 @@ | // text nodes int the binary node list) | Iterator binaryNodeIterator = binaryNodeList.iterator(); | while (binaryNodeIterator.hasNext()) { | - OMText binaryNode = (OMText) binaryNodeIterator.next(); | - writeBodyPart(outStream, createMimeBodyPart(binaryNode | - .getContentID(), (DataHandler) binaryNode | - .getDataHandler()), boundary); | + Object o = binaryNodeIterator.next(); | + /* Upwards compatibiliy: Should be an instance of | + * MTOMAttachment, if the user calls us via | + * [EMAIL PROTECTED] MTOMXMLStreamWriter#writeOptimized(OMText)}, | + * or [EMAIL PROTECTED] MTOMXMLStreamWriter#writeOptimized(MTOMAttachment)}. | + * However, this is a public method and possibly someone | + * invokes us directly. | + */ | + final MTOMAttachment attachment; | + if (o instanceof OMText) { | + final OMText omText = (OMText) o; | + attachment = new DefaultMTOMAttachment((DataHandler) omText.getDataHandler(), omText.getContentID()); | + } else { | + attachment = (MTOMAttachment) o; | + } | + writeBodyPart(outStream, createMimeBodyPart(attachment | + .getContentID(), attachment.getDataHandler()), | + boundary); | } | finishWritingMime(outStream); | outStream.flush(); | | Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java | URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java?rev=648212&view=auto | ============================================================================== | --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java (added) | +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java Tue Apr 15 04:30:30 2008 | @@ -0,0 +1,20 @@ | +package org.apache.axiom.om.impl; | + | +import javax.activation.DataHandler; | + | + | +/** | + * Interface of an MTOM attachment, as processed by | + * [EMAIL PROTECTED] MTOMXMLStreamWriter#writeOptimized(org.apache.axiom.om.OMText)} | + * and [EMAIL PROTECTED] MIMEOutputUtils#complete(java.io.OutputStream, java.io.StringWriter, java.util.LinkedList, String, String, String, String)}. | + */ | +public interface MTOMAttachment { | + /** | + * Returns the attachments ID. | + */ | + String getContentID(); | + /** | + * Returns the attachments contents. | + */ | + DataHandler getDataHandler(); | +} | | Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java | ------------------------------------------------------------------------------ | svn:mime-type = text/plain | | Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java | URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java?rev=648212&r1=648211&r2=648212&view=diff | ============================================================================== | --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java (original) | +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java Tue Apr 15 04:30:30 2008 | @@ -273,32 +273,46 @@ | return format.getContentType(); | } | | - public void writeOptimized(OMText node) { | - if(log.isDebugEnabled()){ | - log.debug("Start MTOMXMLStreamWriter.writeOptimized()"); | - } | - DataHandler dh = (DataHandler)node.getDataHandler(); | - int optimized = UNSUPPORTED; | - if(dh!=null){ | + private boolean isAttachmentPossible(DataHandler pDataHandler) { | + if (pDataHandler != null) { | if(log.isDebugEnabled()){ | log.debug("DataHandler fetched, starting optimized Threshold processing"); | } | - optimized= BufferUtils.doesDataHandlerExceedLimit(dh, format.getOptimizedThreshold()); | + int optimized = BufferUtils.doesDataHandlerExceedLimit(pDataHandler, format.getOptimizedThreshold()); | + return optimized != UNSUPPORTED && optimized != EXCEED_LIMIT; | } | - if(optimized == UNSUPPORTED || optimized == EXCEED_LIMIT){ | - if(log.isDebugEnabled()){ | - log.debug("node added to binart NodeList for optimization"); | - } | - binaryNodeList.add(node); | + return false; | + } | + | + public void writeOptimized(MTOMAttachment attachment) { | + if (log.isDebugEnabled()){ | + log.debug("Start MTOMXMLStreamWriter.writeOptimized()"); | + } | + if (isAttachmentPossible(attachment.getDataHandler())) { | + binaryNodeList.add(attachment); | + } else { | + throw new RuntimeException("Unable to inline an attachment."); | + } | + if (log.isDebugEnabled()){ | + log.debug("Exit MTOMXMLStreamWriter.writeOptimized()"); | + } | + } | + | + public void writeOptimized(OMText node) { | + if (log.isDebugEnabled()){ | + log.debug("Start MTOMXMLStreamWriter.writeOptimized()"); | } | - else{ | + final DataHandler dh = (DataHandler) node.getDataHandler(); | + if (isAttachmentPossible(dh)) { | + binaryNodeList.add(new DefaultMTOMAttachment(dh, node.getContentID())); | + } else { | try{ | writeOutput(node); | - }catch(XMLStreamException e){ | + } catch(XMLStreamException e) { | throw new RuntimeException("XMLStreamException in writeOutput() call", e); | } | } | - if(log.isDebugEnabled()){ | + if (log.isDebugEnabled()){ | log.debug("Exit MTOMXMLStreamWriter.writeOptimized()"); | } | } | | | | --------------------------------------------------------------------- | To unsubscribe, e-mail: [EMAIL PROTECTED] | For additional commands, e-mail: [EMAIL PROTECTED] | -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Cygwin) iD8DBQFIBLPigNg6eWEDv1kRAqKDAKDaEoh0GMr/yEtY0FGZVnY5sqmNtwCg5k0G je/h+kuZ8tw4z9PVDgAaNxQ= =A/s3 -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
