You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/11/05 13:47:39 UTC

svn commit: r591979 - in /activemq/camel/trunk/components/camel-jms/src: main/java/org/apache/camel/component/jms/JmsBinding.java test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java

Author: jstrachan
Date: Mon Nov  5 04:47:38 2007
New Revision: 591979

URL: http://svn.apache.org/viewvc?rev=591979&view=rev
Log:
added a test case and patch for https://issues.apache.org/activemq/browse/CAMEL-205 with MapMessage not correctly turned into a Map

Added:
    activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java
      - copied, changed from r591961, activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
Modified:
    activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java

Modified: activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java?rev=591979&r1=591978&r2=591979&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java (original)
+++ activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java Mon Nov  5 04:47:38 2007
@@ -143,7 +143,7 @@
      */
     public Map<String, Object> createMapFromMapMessage(MapMessage message) throws JMSException {
         Map<String, Object> answer = new HashMap<String, Object>();
-        Enumeration names = message.getPropertyNames();
+        Enumeration names = message.getMapNames();
         while (names.hasMoreElements()) {
             String name = names.nextElement().toString();
             Object value = message.getObject(name);

Copied: activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java (from r591961, activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java)
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java?p2=activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java&p1=activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java&r1=591961&r2=591979&rev=591979&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java (original)
+++ activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java Mon Nov  5 04:47:38 2007
@@ -16,65 +16,63 @@
  */
 package org.apache.camel.component.jms;
 
+import java.util.Map;
+
 import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+import javax.jms.Message;
+import javax.jms.Session;
 
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentClientAcknowledge;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.jms.core.MessageCreator;
 
 /**
  * @version $Revision$
  */
-public class JmsRouteTest extends ContextTestSupport {
-    protected MockEndpoint resultEndpoint;
-    protected String componentName = "activemq";
-    protected String startEndpointUri;
-
-    public void testJmsRouteWithTextMessage() throws Exception {
-        String expectedBody = "Hello there!";
-
-        resultEndpoint.expectedBodiesReceived(expectedBody);
-        resultEndpoint.message(0).header("cheese").isEqualTo(123);
-
-        sendExchange(expectedBody);
-
-        resultEndpoint.assertIsSatisfied();
-    }
+public class ConsumeJmsMapMessageTest extends ContextTestSupport {
+    protected JmsTemplate jmsTemplate;
 
-    public void testJmsRouteWithObjectMessage() throws Exception {
-        PurchaseOrder expectedBody = new PurchaseOrder("Beer", 10);
-
-        resultEndpoint.expectedBodiesReceived(expectedBody);
-        resultEndpoint.message(0).header("cheese").isEqualTo(123);
-
-        sendExchange(expectedBody);
-
-        resultEndpoint.assertIsSatisfied();
-    }
+    public void testConsumeMapMessage() throws Exception {
+        MockEndpoint endpoint = getMockEndpoint("mock:result");
+        endpoint.expectedMessageCount(1);
+
+        jmsTemplate.setPubSubDomain(false);
+        jmsTemplate.send("test.map", new MessageCreator() {
+            public Message createMessage(Session session) throws JMSException {
+                MapMessage mapMessage = session.createMapMessage();
+                mapMessage.setString("foo", "abc");
+                mapMessage.setString("bar", "xyz");
+                return mapMessage;
+            }
+        });
 
-    protected void sendExchange(final Object expectedBody) {
-        template.sendBodyAndHeader(startEndpointUri, expectedBody, "cheese", 123);
+        endpoint.assertIsSatisfied();
+        Exchange exchange = endpoint.getReceivedExchanges().get(0);
+        Map map = exchange.getIn().getBody(Map.class);
+
+        log.info("Received map: " + map);
+
+        assertNotNull("Should have received a map message!", map);
+        assertEquals("map.foo", "abc", map.get("foo"));
+        assertEquals("map.bar", "xyz", map.get("bar"));
+        assertEquals("map.size", 2, map.size());
     }
 
 
-    @Override
-    protected void setUp() throws Exception {
-        startEndpointUri = componentName + ":queue:test.a";
-
-        super.setUp();
-
-        resultEndpoint = (MockEndpoint) context.getEndpoint("mock:result");
-    }
-
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
 
         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
-        camelContext.addComponent(componentName, jmsComponentClientAcknowledge(connectionFactory));
+        jmsTemplate = new JmsTemplate(connectionFactory);
+        camelContext.addComponent("activemq", jmsComponentClientAcknowledge(connectionFactory));
 
         return camelContext;
     }
@@ -82,9 +80,8 @@
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(startEndpointUri).to(componentName + ":queue:test.b");
-                from(componentName + ":queue:test.b").to("mock:result");
+                from("activemq:test.map").to("mock:result");
             }
         };
     }
-}
+}
\ No newline at end of file