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