Author: davsclaus Date: Mon Jul 27 06:41:33 2009 New Revision: 798037 URL: http://svn.apache.org/viewvc?rev=798037&view=rev Log: Merged revisions 798027 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk
........ r798027 | davsclaus | 2009-07-27 07:48:02 +0200 (Mon, 27 Jul 2009) | 1 line CAMEL-1853: Using a custom Spring MessageConverter now possible for both sending and receiving jms messages. ........ Added: camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java - copied, changed from r798027, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java - copied, changed from r798027, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java Modified: camel/branches/camel-1.x/ (props changed) camel/branches/camel-1.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java Propchange: camel/branches/camel-1.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Jul 27 06:41:33 2009 @@ -1 +1 @@ -/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121,779143,779489,781314-781349,781775,781 923,781974,781993,782557,782594,782681,782886,782918-782923,783204,783248,783363,783639,783704,785564,785584,785599,787206,787581,787598,787605,787928,788393,789121,789703,790560,790936,791379,791476,791767,792038,792381,792398,792899,793359,793518,793547-793555,793862,793935,794237,794368,794550,794967,795790 +/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121,779143,779489,781314-781349,781775,781 923,781974,781993,782557,782594,782681,782886,782918-782923,783204,783248,783363,783639,783704,785564,785584,785599,787206,787581,787598,787605,787928,788393,789121,789703,790560,790936,791379,791476,791767,792038,792381,792398,792899,793359,793518,793547-793555,793862,793935,794237,794368,794550,794967,795790,798027 Propchange: camel/branches/camel-1.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-1.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java?rev=798037&r1=798036&r2=798037&view=diff ============================================================================== --- camel/branches/camel-1.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java (original) +++ camel/branches/camel-1.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java Mon Jul 27 06:41:33 2009 @@ -86,6 +86,16 @@ */ public Object extractBodyFromJms(Exchange exchange, Message message) { try { + // is a custom message converter configured on endpoint then use it instead of doing the extraction + // based on message type + if (endpoint != null && endpoint.getConfiguration().getMessageConverter() != null) { + if (LOG.isTraceEnabled()) { + LOG.trace("Extracting body using a custom MessageConverter: " + + endpoint.getConfiguration().getMessageConverter() + " from JMS message: " + message); + } + return endpoint.getConfiguration().getMessageConverter().fromMessage(message); + } + if (message instanceof ObjectMessage) { ObjectMessage objectMessage = (ObjectMessage)message; return objectMessage.getObject(); @@ -294,6 +304,16 @@ protected Message createJmsMessage(Object body, Session session, CamelContext context) throws JMSException { + + if (endpoint != null && endpoint.getConfiguration().getMessageConverter() != null) { + if (LOG.isTraceEnabled()) { + LOG.trace("Creating JmsMessage using a custom MessageConverter: " + + endpoint.getConfiguration().getMessageConverter() + " with body: " + body); + } + return endpoint.getConfiguration().getMessageConverter().toMessage(body, session); + } + + if (body instanceof Node) { // lets convert the document to a String format try { @@ -377,7 +397,7 @@ } /** - * @deprecated Please use {...@link DefaultHeaderFilterStrategy#setOutFilter()} + * @deprecated Please use {...@link DefaultHeaderFilterStrategy#setOutFilter(java.util.Set)} */ public void setIgnoreJmsHeaders(Set<String> ignoreJmsHeaders) { if (headerFilterStrategy instanceof DefaultHeaderFilterStrategy) { Copied: camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java (from r798027, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java) URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java?p2=camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java&p1=camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java&r1=798027&r2=798037&rev=798037&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java (original) +++ camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java Mon Jul 27 06:41:33 2009 @@ -16,20 +16,18 @@ */ package org.apache.camel.component.jms; +import javax.jms.BytesMessage; import javax.jms.ConnectionFactory; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; import javax.jms.TextMessage; -import javax.jms.BytesMessage; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.camel.CamelContext; +import org.apache.camel.ContextTestSupport; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.impl.JndiRegistry; -import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.Test; import org.springframework.jms.support.converter.MessageConversionException; import org.springframework.jms.support.converter.MessageConverter; @@ -38,14 +36,7 @@ /** * @version $Revision$ */ -public class ConsumeMessageConverterTest extends CamelTestSupport { - - @Override - protected JndiRegistry createRegistry() throws Exception { - JndiRegistry jndi = super.createRegistry(); - jndi.bind("myMessageConverter", new MyMessageConverter()); - return jndi; - } +public class ConsumeMessageConverterTest extends ContextTestSupport { protected CamelContext createCamelContext() throws Exception { CamelContext camelContext = super.createCamelContext(); @@ -56,7 +47,6 @@ return camelContext; } - @Test public void testTextMessage() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMessageCount(1); @@ -67,7 +57,6 @@ assertMockEndpointsSatisfied(); } - @Test public void testBytesMessage() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMessageCount(1); @@ -81,7 +70,12 @@ protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { - from("activemq:queue:hello?messageConverter=#myMessageConverter").to("mock:result"); + // added disableReplyTo=false to make sure the endpoint is different than the ones we use for + // sending otherwise they would also use the same custom message converter + JmsEndpoint endpoint = context.getEndpoint("activemq:queue:hello?disableReplyTo=false", JmsEndpoint.class); + endpoint.getConfiguration().setMessageConverter(new MyMessageConverter()); + + from(endpoint).to("mock:result"); } }; } Copied: camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java (from r798027, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java) URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java?p2=camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java&p1=camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java&r1=798027&r2=798037&rev=798037&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java (original) +++ camel/branches/camel-1.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java Mon Jul 27 06:41:33 2009 @@ -24,11 +24,10 @@ import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.camel.CamelContext; +import org.apache.camel.ContextTestSupport; +import org.apache.camel.Endpoint; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.impl.JndiRegistry; -import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.Test; import org.springframework.jms.support.converter.MessageConversionException; import org.springframework.jms.support.converter.MessageConverter; @@ -37,14 +36,7 @@ /** * @version $Revision$ */ -public class ProduceMessageConverterTest extends CamelTestSupport { - - @Override - protected JndiRegistry createRegistry() throws Exception { - JndiRegistry jndi = super.createRegistry(); - jndi.bind("myMessageConverter", new MyMessageConverter()); - return jndi; - } +public class ProduceMessageConverterTest extends ContextTestSupport { protected CamelContext createCamelContext() throws Exception { CamelContext camelContext = super.createCamelContext(); @@ -55,12 +47,14 @@ return camelContext; } - @Test public void testProduceCustomMessageConverter() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedBodiesReceived("Hello World"); - template.sendBody("activemq:queue:hello?messageConverter=#myMessageConverter", "World"); + JmsEndpoint endpoint = context.getEndpoint("activemq:queue:hello?disableReplyTo=false", JmsEndpoint.class); + endpoint.getConfiguration().setMessageConverter(new MyMessageConverter()); + + template.sendBody((Endpoint)endpoint, "World"); assertMockEndpointsSatisfied(); }