Author: sergeyb
Date: Mon Sep 10 11:36:25 2012
New Revision: 1382763

URL: http://svn.apache.org/viewvc?rev=1382763&view=rev
Log:
Updating DataSourceProvider to ignore DataSource content type property by 
default

Modified:
    
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataSourceProvider.java
    
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataSourceProviderTest.java

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataSourceProvider.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataSourceProvider.java?rev=1382763&r1=1382762&r2=1382763&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataSourceProvider.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataSourceProvider.java
 Mon Sep 10 11:36:25 2012
@@ -40,6 +40,8 @@ import org.apache.cxf.jaxrs.ext.multipar
 @Provider
 public class DataSourceProvider<T> implements MessageBodyReader<T>, 
MessageBodyWriter<T> {
     
+    private boolean useDataSourceContentType;
+    
     public boolean isReadable(Class<?> type, Type genericType, Annotation[] 
annotations, MediaType mt) {
         return isSupported(type, mt);
     }
@@ -71,7 +73,9 @@ public class DataSourceProvider<T> imple
         throws IOException {
         DataSource ds = DataSource.class.isAssignableFrom(cls) 
             ? (DataSource)src : ((DataHandler)src).getDataSource();
-        setContentTypeIfNeeded(type, headers, ds.getContentType());
+        if (useDataSourceContentType) {    
+            setContentTypeIfNeeded(type, headers, ds.getContentType());
+        }
         IOUtils.copy(ds.getInputStream(), os);
     }
     
@@ -82,6 +86,10 @@ public class DataSourceProvider<T> imple
             headers.putSingle("Content-Type", ct);
         }
     }
+
+    public void setUseDataSourceContentType(boolean useDataSourceContentType) {
+        this.useDataSourceContentType = useDataSourceContentType;
+    }
     
 
 }

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataSourceProviderTest.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataSourceProviderTest.java?rev=1382763&r1=1382762&r2=1382763&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataSourceProviderTest.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataSourceProviderTest.java
 Mon Sep 10 11:36:25 2012
@@ -88,12 +88,13 @@ public class DataSourceProviderTest exte
     @Test
     public void testWriteDataSourceWithDiffCT() throws Exception {
         DataSourceProvider<DataSource> p = new 
DataSourceProvider<DataSource>();
+        p.setUseDataSourceContentType(true);
         DataSource ds = new InputStreamDataSource(new 
ByteArrayInputStream("image".getBytes()), 
                                                   "image/png"); 
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         MultivaluedMap<String, Object> outHeaders = new MetadataMap<String, 
Object>();
         p.writeTo(ds, DataSource.class, DataSource.class, new Annotation[]{}, 
-                   MediaType.valueOf("image/bar"), outHeaders, os);
+                   MediaType.valueOf("image/jpeg"), outHeaders, os);
         assertEquals("image", os.toString());
         assertEquals("image/png", outHeaders.getFirst("Content-Type"));
     }


Reply via email to