Return-Path: Delivered-To: apmail-activemq-camel-commits-archive@locus.apache.org Received: (qmail 96019 invoked from network); 9 Jul 2007 12:51:32 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Jul 2007 12:51:32 -0000 Received: (qmail 97867 invoked by uid 500); 9 Jul 2007 12:51:34 -0000 Delivered-To: apmail-activemq-camel-commits-archive@activemq.apache.org Received: (qmail 97847 invoked by uid 500); 9 Jul 2007 12:51:34 -0000 Mailing-List: contact camel-commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: camel-dev@activemq.apache.org Delivered-To: mailing list camel-commits@activemq.apache.org Received: (qmail 97838 invoked by uid 99); 9 Jul 2007 12:51:34 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jul 2007 05:51:34 -0700 X-ASF-Spam-Status: No, hits=-98.6 required=10.0 tests=ALL_TRUSTED,INFO_TLD,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jul 2007 05:51:31 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 3944B1A981A; Mon, 9 Jul 2007 05:51:11 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r554624 - in /activemq/camel/trunk/components/camel-activemq/src: main/java/org/apache/camel/jms/ test/java/org/apache/camel/jms/ test/resources/org/apache/camel/jms/ Date: Mon, 09 Jul 2007 12:51:11 -0000 To: camel-commits@activemq.apache.org From: jstrachan@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070709125111.3944B1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jstrachan Date: Mon Jul 9 05:51:10 2007 New Revision: 554624 URL: http://svn.apache.org/viewvc?view=rev&rev=554624 Log: changed the JMS client test cases to use the regular ActiveMQConnectionFactory; as its only the CamelDestinations that are required. Also added a test case showing the consumer side now works too (after I added the start() method calls :) Modified: activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelDestination.java activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageConsumer.java activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageProducer.java activemq/camel/trunk/components/camel-activemq/src/test/java/org/apache/camel/jms/CamelJmsTest.java activemq/camel/trunk/components/camel-activemq/src/test/resources/org/apache/camel/jms/spring.xml Modified: activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelDestination.java URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelDestination.java?view=diff&rev=554624&r1=554623&r2=554624 ============================================================================== --- activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelDestination.java (original) +++ activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelDestination.java Mon Jul 9 05:51:10 2007 @@ -20,6 +20,7 @@ import org.apache.activemq.ActiveMQSession; import org.apache.activemq.CustomDestination; import org.apache.camel.CamelContext; +import org.apache.camel.CamelContextAware; import org.apache.camel.Endpoint; import org.apache.camel.component.jms.JmsBinding; @@ -34,19 +35,17 @@ /** * @version $Revision: $ */ -public class CamelDestination implements CustomDestination { - - private final String uri; +public class CamelDestination implements CustomDestination, CamelContextAware { + private String uri; private Endpoint endpoint; private CamelContext camelContext; private JmsBinding binding = new JmsBinding(); - public CamelDestination(String uri) { - this.uri = uri; + public CamelDestination() { } - public String getUri() { - return uri; + public CamelDestination(String uri) { + this.uri = uri; } public String toString() { @@ -91,6 +90,14 @@ // Properties //----------------------------------------------------------------------- + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } public Endpoint getEndpoint() { return endpoint; Modified: activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageConsumer.java URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageConsumer.java?view=diff&rev=554624&r1=554623&r2=554624 ============================================================================== --- activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageConsumer.java (original) +++ activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageConsumer.java Mon Jul 9 05:51:10 2007 @@ -128,6 +128,7 @@ try { if (pollingConsumer == null) { pollingConsumer = endpoint.createPollingConsumer(); + pollingConsumer.start(); } return pollingConsumer; } @@ -151,12 +152,14 @@ protected Consumer createConsumer() throws JMSException { try { - return endpoint.createConsumer(new Processor() { + Consumer answer = endpoint.createConsumer(new Processor() { public void process(Exchange exchange) throws Exception { Message message = createMessage(exchange); getMessageListener().onMessage(message); } }); + answer.start(); + return answer; } catch (JMSException e) { throw e; Modified: activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageProducer.java URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageProducer.java?view=diff&rev=554624&r1=554623&r2=554624 ============================================================================== --- activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageProducer.java (original) +++ activemq/camel/trunk/components/camel-activemq/src/main/java/org/apache/camel/jms/CamelMessageProducer.java Mon Jul 9 05:51:10 2007 @@ -18,6 +18,7 @@ import org.apache.activemq.ActiveMQMessageProducerSupport; import org.apache.activemq.ActiveMQSession; +import org.apache.activemq.command.ActiveMQMessage; import org.apache.activemq.util.JMSExceptionSupport; import org.apache.camel.Endpoint; import org.apache.camel.Producer; @@ -80,7 +81,6 @@ } public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { - message.setJMSDestination(destination); CamelDestination camelDestination = null; if (ObjectHelper.equals(destination, this.destination)) { camelDestination = this.destination; Modified: activemq/camel/trunk/components/camel-activemq/src/test/java/org/apache/camel/jms/CamelJmsTest.java URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-activemq/src/test/java/org/apache/camel/jms/CamelJmsTest.java?view=diff&rev=554624&r1=554623&r2=554624 ============================================================================== --- activemq/camel/trunk/components/camel-activemq/src/test/java/org/apache/camel/jms/CamelJmsTest.java (original) +++ activemq/camel/trunk/components/camel-activemq/src/test/java/org/apache/camel/jms/CamelJmsTest.java Mon Jul 9 05:51:10 2007 @@ -16,52 +16,75 @@ */ package org.apache.camel.jms; +import org.apache.camel.CamelTemplate; +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.spring.SpringTestSupport; +import org.springframework.context.support.ClassPathXmlApplicationContext; + import javax.jms.Connection; +import javax.jms.ConnectionFactory; +import javax.jms.Destination; +import javax.jms.Message; +import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.ObjectMessage; import javax.jms.Session; - -import org.apache.camel.CamelContext; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.spring.SpringTestSupport; -import org.springframework.context.support.ClassPathXmlApplicationContext; +import javax.jms.TextMessage; /** * @version $Revision: $ */ public class CamelJmsTest extends SpringTestSupport { - protected String expectedBody = "world!"; - public void testCamelJms() throws Exception { - CamelConnectionFactory factory = getMandatoryBean(CamelConnectionFactory.class, "connectionFactory"); + public void testSendingViaJmsIsReceivedByCamel() throws Exception { + MockEndpoint result = resolveMandatoryEndpoint("mock:result", MockEndpoint.class); + result.expectedBodiesReceived(expectedBody); + result.message(0).header("foo").isEqualTo("bar"); - CamelContext context = factory.getCamelContext(); - assertNotNull("Should have a CamelContext!", context); - - MockEndpoint result = context.getEndpoint("mock:result", MockEndpoint.class); - assertNotNull("Should have a MockEndpoint!", result); - - result.expectedBodiesReceived(expectedBody); - result.message(0).header("foo").isEqualTo("bar"); - // lets create a message + Destination destination = getMandatoryBean(Destination.class, "sendTo"); + ConnectionFactory factory = getMandatoryBean(ConnectionFactory.class, "connectionFactory"); + Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - CamelQueue destination = new CamelQueue("mock:result"); - destination.setCamelContext(context); - MessageProducer producer = session.createProducer(destination); - - // now lets send a message - ObjectMessage message = session.createObjectMessage(expectedBody); - message.setStringProperty("foo", "bar"); - producer.send(message); - - result.assertIsSatisfied(); + MessageProducer producer = session.createProducer(destination); + + // now lets send a message + ObjectMessage message = session.createObjectMessage(expectedBody); + message.setStringProperty("foo", "bar"); + producer.send(message); + + result.assertIsSatisfied(); + + log.info("Received message: " + result.getReceivedExchanges()); + } + + public void testConsumingViaJMSReceivesMessageFromCamel() throws Exception { + // lets create a message + Destination destination = getMandatoryBean(Destination.class, "consumeFrom"); + ConnectionFactory factory = getMandatoryBean(ConnectionFactory.class, "connectionFactory"); + CamelTemplate template = getMandatoryBean(CamelTemplate.class, "camelTemplate"); + + Connection connection = factory.createConnection(); + connection.start(); + Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + log.info("Consuming from: " + destination); + MessageConsumer consumer = session.createConsumer(destination); + + // now lets send a message + template.sendBody("seda:consumer", expectedBody); + + Message message = consumer.receive(5000); + assertNotNull("Should have received a message from destination: " + destination, message); + + TextMessage textMessage = assertIsInstanceOf(TextMessage.class, message); + assertEquals("Message body", expectedBody, textMessage.getText()); - log.info("Received message: "+ result.getReceivedExchanges()); - } + log.info("Received message: " + message); + } protected int getExpectedRouteCount() { return 0; Modified: activemq/camel/trunk/components/camel-activemq/src/test/resources/org/apache/camel/jms/spring.xml URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-activemq/src/test/resources/org/apache/camel/jms/spring.xml?view=diff&rev=554624&r1=554623&r2=554624 ============================================================================== --- activemq/camel/trunk/components/camel-activemq/src/test/resources/org/apache/camel/jms/spring.xml (original) +++ activemq/camel/trunk/components/camel-activemq/src/test/resources/org/apache/camel/jms/spring.xml Mon Jul 9 05:51:10 2007 @@ -28,9 +28,25 @@ - + + + + + + + + + + + + +