I think we can support the InputStream and Serializable object at the same time :) If the Message body is Serializable, we can skip the InputStream part, if it's not, we can try to turn it into an InputStream.

Any thought?

BTW, any kind of contribution is welcome, so please feel free to submit the patch with a JIRA[1].

[1] http://issues.apache.org/activemq/browse/CAMEL

Willem


tide08 wrote:
I am using camel 2.1.0 cache component, and I am confused how I can use
custom objects with cache?

It seems to me that for every object I would want to use, I will have to
register TypeConverter for those classes? Is that assumption correct?
I think it is due to following code in CacheProducer.java, which tries to
convert payload into InputStream?

InputStream is =
exchange.getContext().getTypeConverter().convertTo(InputStream.class, body);
// Read InputStream into a byte[] buffer
        byte[] buffer = new byte[is.available()];
        int n = is.available();
        for (int j = 0; j < n; j++) {
            buffer[j] = (byte)is.read();
}
Looking at EHCache API, it can support any object as long as it is
serializable, so camel-cache component should not try to convert payload
into InputStream. Or was there any specific reason to do so?

I quickly modified Producer and it seems to work fine, please let me know
and I would be happy to provide the patch.

Thanks!

Reply via email to