You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/03/03 09:15:16 UTC

svn commit: r749561 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/converter/stream/StreamCacheConverter.java test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java

Author: davsclaus
Date: Tue Mar  3 08:15:15 2009
New Revision: 749561

URL: http://svn.apache.org/viewvc?rev=749561&view=rev
Log:
CAMEL-588: Removed package dependency and using the type converter API to find the right converter instead of direct usage.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java?rev=749561&r1=749560&r2=749561&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java Tue Mar  3 08:15:15 2009
@@ -27,11 +27,10 @@
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.camel.Converter;
+import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
-import org.apache.camel.converter.IOConverter;
 import org.apache.camel.converter.jaxp.BytesSource;
 import org.apache.camel.converter.jaxp.StringSource;
-import org.apache.camel.converter.jaxp.XmlConverter;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -43,11 +42,9 @@
 public class StreamCacheConverter {
     private static final transient Log LOG = LogFactory.getLog(StreamCacheConverter.class);
 
-    private XmlConverter converter = new XmlConverter();
-
     @Converter
-    public StreamCache convertToStreamCache(StreamSource source) throws IOException {
-        return new StreamSourceCache(source);
+    public StreamCache convertToStreamCache(StreamSource source, Exchange exchange) throws IOException {
+        return new StreamSourceCache(source, exchange);
     }
     
     @Converter
@@ -63,18 +60,21 @@
     }
     
     @Converter
-    public StreamCache convertToStreamCache(SAXSource source) throws TransformerException {
-        return new SourceCache(converter.toString(source));
+    public StreamCache convertToStreamCache(SAXSource source, Exchange exchange) throws TransformerException {
+        String data = exchange.getContext().getTypeConverter().convertTo(String.class, source);
+        return new SourceCache(data);
     }
 
     @Converter
-    public StreamCache convertToStreamCache(InputStream stream) throws IOException {
-        return new InputStreamCache(IOConverter.toBytes(stream));
+    public StreamCache convertToStreamCache(InputStream stream, Exchange exchange) throws IOException {
+        byte[] bytes = exchange.getContext().getTypeConverter().convertTo(byte[].class, stream);
+        return new InputStreamCache(bytes);
     }
 
     @Converter
-    public StreamCache convertToStreamCache(Reader reader) throws IOException {
-        return new ReaderCache(IOConverter.toString(reader));
+    public StreamCache convertToStreamCache(Reader reader, Exchange exchange) throws IOException {
+        String data = exchange.getContext().getTypeConverter().convertTo(String.class, reader);
+        return new ReaderCache(data);
     }
 
     /*
@@ -104,17 +104,20 @@
         InputStreamCache inputStreamCache;
         ReaderCache readCache;
         
-        public StreamSourceCache(StreamSource source) throws IOException {
+        public StreamSourceCache(StreamSource source, Exchange exchange) throws IOException {
             if (source.getInputStream() != null) {
-                inputStreamCache = new InputStreamCache(IOConverter.toBytes(source.getInputStream()));
+                byte[] bytes = exchange.getContext().getTypeConverter().convertTo(byte[].class, source.getInputStream());
+                inputStreamCache = new InputStreamCache(bytes);
                 setInputStream(inputStreamCache);
                 setSystemId(source.getSystemId());
             }
             if (source.getReader() != null) {
-                readCache = new ReaderCache(IOConverter.toString(source.getReader()));
+                String data = exchange.getContext().getTypeConverter().convertTo(String.class, source.getReader());
+                readCache = new ReaderCache(data);
                 setReader(readCache);
             }
         }
+
         public void reset() {
             if (inputStreamCache != null) {
                 inputStreamCache.reset();
@@ -144,7 +147,7 @@
             try {
                 super.reset();
             } catch (IOException e) {
-                LOG.warn("Exception is thrown when resets the ReaderCache", e);
+                LOG.warn("Cannot reset cache", e);
             }
         }
 

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java?rev=749561&r1=749560&r2=749561&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java Tue Mar  3 08:15:15 2009
@@ -16,35 +16,36 @@
  */
 package org.apache.camel.converter.stream;
 
-import java.io.FileNotFoundException;
-import java.io.IOException;
 import java.io.InputStream;
 import javax.xml.transform.Source;
-import javax.xml.transform.TransformerException;
 import javax.xml.transform.stream.StreamSource;
 
-import junit.framework.TestCase;
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
 import org.apache.camel.converter.IOConverter;
 import org.apache.camel.converter.jaxp.XmlConverter;
+import org.apache.camel.impl.DefaultExchange;
 
 /**
  * Test cases for {@link StreamCacheConverter}
  */
-public class StreamCacheConverterTest extends TestCase {
+public class StreamCacheConverterTest extends ContextTestSupport {
     
     private static final String TEST_FILE = "org/apache/camel/converter/stream/test.xml";
     private StreamCacheConverter converter;
+    private Exchange exchange;
     
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         this.converter = new StreamCacheConverter();
+        this.exchange = new DefaultExchange(context);
     }
 
-    public void testConvertToStreamCacheStreamSource() throws IOException, FileNotFoundException, TransformerException {
+    public void testConvertToStreamCacheStreamSource() throws Exception {
         StreamSource source = new StreamSource(getTestFileStream());
-        StreamCache cache = converter.convertToStreamCache(source);
+        StreamCache cache = converter.convertToStreamCache(source, exchange);
         //assert re-readability of the cached StreamSource
         XmlConverter converter = new XmlConverter();
         assertNotNull(converter.toString((Source)cache));
@@ -52,9 +53,9 @@
         assertNotNull(converter.toString((Source)cache));
     }
 
-    public void testConvertToStreamCacheInputStream() throws IOException {
+    public void testConvertToStreamCacheInputStream() throws Exception {
         InputStream is = getTestFileStream();
-        InputStream cache = (InputStream)converter.convertToStreamCache(is);
+        InputStream cache = (InputStream)converter.convertToStreamCache(is, exchange);
         //assert re-readability of the cached InputStream
         assertNotNull(IOConverter.toString(cache));
         assertNotNull(IOConverter.toString(cache));