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;
+ }
}