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/07/27 08:41:33 UTC

svn commit: r798037 - in /camel/branches/camel-1.x: ./ components/camel-jms/src/main/java/org/apache/camel/component/jms/ components/camel-jms/src/test/java/org/apache/camel/component/jms/

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