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));