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/04/29 09:27:31 UTC

svn commit: r1741560 - in /webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments: LegacyPartDataHandler.java Part.java PartDataHandler.java PartDataSource.java PartImpl.java Util.java

Author: veithen
Date: Fri Apr 29 07:27:30 2016
New Revision: 1741560

URL: http://svn.apache.org/viewvc?rev=1741560&view=rev
Log:
Let PartDataHandler use the public Part interface.

Modified:
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataHandler.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Util.java

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java?rev=1741560&r1=1741559&r2=1741560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java Fri Apr 29 07:27:30 2016
@@ -27,7 +27,7 @@ import org.apache.axiom.attachments.life
 import org.apache.axiom.blob.Blob;
 
 final class LegacyPartDataHandler extends PartDataHandler implements DataHandlerExt {
-    public LegacyPartDataHandler(PartImpl part) {
+    public LegacyPartDataHandler(Part part) {
         super(part);
     }
 

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java?rev=1741560&r1=1741559&r2=1741560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java Fri Apr 29 07:27:30 2016
@@ -73,4 +73,6 @@ public interface Part {
      *             if the content couldn't be read
      */
     public InputStream getInputStream(boolean preserve) throws IOException;
+    
+    public void releaseContent() throws IOException;
 }

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataHandler.java?rev=1741560&r1=1741559&r2=1741560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataHandler.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataHandler.java Fri Apr 29 07:27:30 2016
@@ -28,10 +28,10 @@ import javax.activation.DataSource;
  * {@link DataHandler} implementation for MIME parts read from a stream.
  */
 class PartDataHandler extends DataHandler {
-    private final PartImpl part;
+    private final Part part;
     private DataSource dataSource;
 
-    public PartDataHandler(PartImpl part) {
+    public PartDataHandler(Part part) {
         // We can't call PartImpl#getDataSource() here because it would fetch the content of the
         // part and therefore disable streaming. We can't pass null here either because Geronimo's
         // DataHandler implementation would throw a NullPointerException. Therefore we create the
@@ -42,13 +42,13 @@ class PartDataHandler extends DataHandle
         this.part = part;
     }
 
-    public PartImpl getPart() {
+    public Part getPart() {
         return part;
     }
 
     public DataSource getDataSource() {
         if (dataSource == null) {
-            dataSource = createDataSource(part, part.getDataSourceContentType());
+            dataSource = createDataSource(part, Util.getDataSourceContentType(part));
             if (dataSource == null) {
                 // We get here if there is no DataSource implementation specific to the buffering
                 // strategy being used. In this case we use super.getDataSource() to get the
@@ -79,6 +79,6 @@ class PartDataHandler extends DataHandle
         // The PartContent may have an implementation of writeTo that is more efficient than the default
         // DataHandler#writeTo method (which requests an input stream and then copies it to the output
         // stream).
-        part.writeTo(os);
+        part.getBlob().writeTo(os);
     }
 }

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java?rev=1741560&r1=1741559&r2=1741560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java Fri Apr 29 07:27:30 2016
@@ -30,14 +30,14 @@ import org.apache.axiom.ext.activation.S
  * if {@link PartContent#getDataSource(String)} returns <code>null</code>.
  */
 class PartDataSource implements SizeAwareDataSource {
-    private final PartImpl part;
+    private final Part part;
 
-    public PartDataSource(PartImpl part) {
+    public PartDataSource(Part part) {
         this.part = part;
     }
 
     public String getContentType() {
-        return part.getDataSourceContentType();
+        return Util.getDataSourceContentType(part);
     }
 
     public InputStream getInputStream() throws IOException {

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java?rev=1741560&r1=1741559&r2=1741560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java Fri Apr 29 07:27:30 2016
@@ -34,11 +34,9 @@ import org.apache.james.mime4j.stream.En
 import org.apache.james.mime4j.stream.MimeTokenStream;
 
 import javax.activation.DataHandler;
-import javax.activation.DataSource;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.util.List;
 
 /**
@@ -124,17 +122,6 @@ final class PartImpl implements Part {
         return getHeader("content-type");
     }
     
-    /**
-     * Get the content type that should be reported by {@link DataSource} instances created for this
-     * part.
-     * 
-     * @return the content type
-     */
-    String getDataSourceContentType() {
-        String ct = getContentType();
-        return ct == null ? "application/octet-stream" : ct;
-    }
-    
     public DataHandler getDataHandler() {
         return dataHandler;
     }
@@ -259,11 +246,7 @@ final class PartImpl implements Part {
         }
     }
     
-    void writeTo(OutputStream out) throws IOException {
-        getContent().writeTo(out);
-    }
-
-    void releaseContent() throws IOException {
+    public void releaseContent() throws IOException {
         switch (state) {
             case STATE_UNREAD:
                 try {

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Util.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Util.java?rev=1741560&r1=1741559&r2=1741560&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Util.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Util.java Fri Apr 29 07:27:30 2016
@@ -18,6 +18,8 @@
  */
 package org.apache.axiom.attachments;
 
+import javax.activation.DataSource;
+
 final class Util {
     private Util() {}
 
@@ -34,4 +36,17 @@ final class Util {
         }
         return contentID;
     }
+
+    /**
+     * Get the content type that should be reported by {@link DataSource} instances created for a
+     * given part.
+     * 
+     * @param Part
+     *            the part
+     * @return the content type
+     */
+    static String getDataSourceContentType(Part part) {
+        String ct = part.getContentType();
+        return ct == null ? "application/octet-stream" : ct;
+    }
 }