You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/08/02 21:43:29 UTC
svn commit: r1368661 -
/cxf/trunk/api/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
Author: dkulp
Date: Thu Aug 2 19:43:29 2012
New Revision: 1368661
URL: http://svn.apache.org/viewvc?rev=1368661&view=rev
Log:
Add some extra formats for the image handler
Modified:
cxf/trunk/api/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java?rev=1368661&r1=1368660&r2=1368661&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java Thu Aug 2 19:43:29 2012
@@ -26,7 +26,10 @@ import java.awt.MediaTracker;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
@@ -37,6 +40,8 @@ import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
+import org.apache.cxf.helpers.IOUtils;
+
/**
*
*/
@@ -51,6 +56,10 @@ public class ImageDataContentHandler imp
}
}
+ public ImageDataContentHandler() {
+
+ }
+
public Object getContent(DataSource ds) throws IOException {
return ImageIO.read(ds.getInputStream());
}
@@ -70,17 +79,27 @@ public class ImageDataContentHandler imp
}
public void writeTo(Object obj, String mimeType, OutputStream os) throws IOException {
- Iterator<ImageWriter> writers = ImageIO.getImageWritersByMIMEType(mimeType);
- if (writers.hasNext()) {
- ImageWriter writer = writers.next();
-
- BufferedImage bimg = convertToBufferedImage((Image)obj);
- ImageOutputStream out = ImageIO.createImageOutputStream(os);
- writer.setOutput(out);
- writer.write(bimg);
- writer.dispose();
- out.flush();
- out.close();
+ if (obj instanceof Image) {
+ Iterator<ImageWriter> writers = ImageIO.getImageWritersByMIMEType(mimeType);
+ if (writers.hasNext()) {
+ ImageWriter writer = writers.next();
+
+ BufferedImage bimg = convertToBufferedImage((Image)obj);
+ ImageOutputStream out = ImageIO.createImageOutputStream(os);
+ writer.setOutput(out);
+ writer.write(bimg);
+ writer.dispose();
+ out.flush();
+ out.close();
+ return;
+ }
+ } else if (obj instanceof byte[]) {
+ os.write((byte[])obj);
+ } else if (obj instanceof InputStream) {
+ IOUtils.copyAndCloseInput((InputStream)obj, os);
+ } else if (obj instanceof File) {
+ FileInputStream file = new FileInputStream((File)obj);
+ IOUtils.copyAndCloseInput(file, os);
} else {
throw new IOException("Attachment type not spported " + obj.getClass());
}