Author: hadrian Date: Sat Jun 27 04:06:31 2009 New Revision: 788923 URL: http://svn.apache.org/viewvc?rev=788923&view=rev Log: CAMEL-1078. JmsExchange gone.
Removed: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsExchange.java Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java Sat Jun 27 04:06:31 2009 @@ -46,7 +46,7 @@ Enumeration iter = browser.getEnumeration(); while (iter.hasMoreElements()) { Message message = (Message) iter.nextElement(); - JmsExchange exchange = endpoint.createExchange(message); + Exchange exchange = endpoint.createExchange(message); answer.add(exchange); } return answer; Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java Sat Jun 27 04:06:31 2009 @@ -22,9 +22,11 @@ import javax.jms.MessageListener; import javax.jms.Session; +import org.apache.camel.Exchange; import org.apache.camel.ExchangePattern; import org.apache.camel.Processor; import org.apache.camel.RuntimeCamelException; +import org.apache.camel.impl.DefaultExchange; import org.apache.camel.impl.LoggingExceptionHandler; import org.apache.camel.spi.ExceptionHandler; import org.apache.commons.logging.Log; @@ -69,7 +71,7 @@ RuntimeCamelException rce = null; try { Destination replyDestination = getReplyToDestination(message); - final JmsExchange exchange = createExchange(message, replyDestination); + final Exchange exchange = createExchange(message, replyDestination); if (eagerLoadingOfProperties) { exchange.getIn().getHeaders(); } @@ -102,12 +104,12 @@ } } else if (exchange.getFault().getBody() != null) { // a fault occurred while processing - body = exchange.getFault(); + body = (JmsMessage) exchange.getFault(); sendReply = true; } } else if (exchange.hasOut()) { // process OK so get the reply - body = exchange.getOut(); + body = (JmsMessage) exchange.getOut(); sendReply = true; } @@ -133,8 +135,11 @@ LOG.trace("onMessage END"); } - public JmsExchange createExchange(Message message, Destination replyDestination) { - JmsExchange exchange = new JmsExchange(endpoint, endpoint.getExchangePattern(), getBinding(), message); + public Exchange createExchange(Message message, Destination replyDestination) { + Exchange exchange = new DefaultExchange(endpoint, endpoint.getExchangePattern()); + exchange.setProperty(Exchange.BINDING, getBinding()); + exchange.setIn(new JmsMessage(message)); + // lets set to an InOut if we have some kind of reply-to destination if (replyDestination != null && !disableReplyTo) { exchange.setProperty(JmsConstants.JMS_REPLY_DESTINATION, replyDestination); @@ -223,7 +228,7 @@ // Implementation methods //------------------------------------------------------------------------- - protected void sendReply(Destination replyDestination, final Message message, final JmsExchange exchange, + protected void sendReply(Destination replyDestination, final Message message, final Exchange exchange, final JmsMessage out, final Exception cause) { if (replyDestination == null) { if (LOG.isDebugEnabled()) { Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java Sat Jun 27 04:06:31 2009 @@ -58,7 +58,7 @@ import static org.apache.camel.component.jms.JmsMessageType.Text; /** - * A Strategy used to convert between a Camel {...@link JmsExchange} and {...@link JmsMessage} + * A Strategy used to convert between a Camel {...@link Exchange} and {...@link JmsMessage} * to and from a JMS {...@link Message} * * @version $Revision$ Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Sat Jun 27 04:06:31 2009 @@ -33,6 +33,7 @@ import org.apache.camel.Processor; import org.apache.camel.component.jms.requestor.Requestor; import org.apache.camel.impl.DefaultEndpoint; +import org.apache.camel.impl.DefaultExchange; import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.camel.spi.HeaderFilterStrategyAware; import org.springframework.core.task.TaskExecutor; @@ -195,11 +196,15 @@ @Override public Exchange createExchange(ExchangePattern pattern) { - return new JmsExchange(this, pattern, getBinding()); + Exchange exchange = new DefaultExchange(this, pattern); + exchange.setProperty(Exchange.BINDING, getBinding()); + return exchange; } - public JmsExchange createExchange(Message message) { - return new JmsExchange(this, getExchangePattern(), getBinding(), message); + public Exchange createExchange(Message message) { + Exchange exchange = createExchange(getExchangePattern()); + exchange.setIn(new JmsMessage(message)); + return exchange; } /** Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java Sat Jun 27 04:06:31 2009 @@ -18,15 +18,16 @@ import java.io.File; import java.util.Map; + import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Queue; import javax.jms.Topic; -import org.apache.camel.Exchange; import org.apache.camel.RuntimeCamelException; import org.apache.camel.impl.DefaultMessage; +import org.apache.camel.util.ExchangeHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -89,13 +90,8 @@ public JmsBinding getBinding() { if (binding == null) { - Exchange exchange = getExchange(); - if (exchange instanceof JmsExchange) { - JmsExchange jmsExchange = (JmsExchange) exchange; - return jmsExchange.getBinding(); - } else { - return new JmsBinding(); - } + JmsBinding b = ExchangeHelper.getBinding(getExchange(), JmsBinding.class); + return b != null ? b : new JmsBinding(); } return binding; } Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java Sat Jun 27 04:06:31 2009 @@ -300,7 +300,8 @@ } else if (destinationName != null) { getInOnlyTemplate().send(destinationName, messageCreator); } else { - throw new IllegalArgumentException("Neither destination nor destinationName is specified on this endpoint: " + endpoint); + throw new IllegalArgumentException("Neither destination nor " + + "destinationName are specified on this endpoint: " + endpoint); } setMessageId(exchange); @@ -308,17 +309,16 @@ } protected void setMessageId(Exchange exchange) { - if (!(exchange instanceof JmsExchange)) { - return; - } - try { - JmsExchange jmsExchange = JmsExchange.class.cast(exchange); - if (jmsExchange.hasOut()) { - JmsMessage out = jmsExchange.getOut(); - out.setMessageId(out.getJmsMessage().getJMSMessageID()); + if (exchange.hasOut()) { + JmsMessage out = (JmsMessage) exchange.getOut(); + try { + if (out != null) { + out.setMessageId(out.getJmsMessage().getJMSMessageID()); + } + } catch (JMSException e) { + LOG.warn("Unable to retrieve JMSMessageID from outgoing " + + "JMS Message and set it into Camel's MessageId", e); } - } catch (JMSException e) { - LOG.warn("Unable to retrieve JMSMessageID from outgoing JMS Message and set it into Camel's MessageId", e); } } Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java (original) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java Sat Jun 27 04:06:31 2009 @@ -31,6 +31,7 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; +import org.apache.camel.util.ExchangeHelper; import org.junit.Before; import org.junit.Test; import org.springframework.jms.core.JmsTemplate; @@ -80,13 +81,16 @@ protected void assertCorrectBytesReceived() { Exchange exchange = endpoint.getReceivedExchanges().get(0); - JmsExchange jmsExchange = assertIsInstanceOf(JmsExchange.class, exchange); + // This should be a JMS Exchange + assertNotNull(ExchangeHelper.getBinding(exchange, JmsBinding.class)); + JmsMessage in = (JmsMessage) exchange.getIn(); + assertNotNull(in); + byte[] bytes = exchange.getIn().getBody(byte[].class); - log.info("Received bytes: " + Arrays.toString(bytes)); assertNotNull("Should have received a bytes message!", bytes); - assertIsInstanceOf(BytesMessage.class, jmsExchange.getInMessage()); + assertIsInstanceOf(BytesMessage.class, in.getJmsMessage()); assertEquals("Wrong byte 1", 1, bytes[0]); assertEquals("Wrong payload lentght", 3, bytes.length); } Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java (original) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java Sat Jun 27 04:06:31 2009 @@ -31,6 +31,7 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; +import org.apache.camel.util.ExchangeHelper; import org.junit.Before; import org.junit.Test; import org.springframework.jms.core.JmsTemplate; @@ -64,13 +65,16 @@ protected void assertCorrectMapReceived() { Exchange exchange = endpoint.getReceivedExchanges().get(0); - JmsExchange jmsExchange = assertIsInstanceOf(JmsExchange.class, exchange); + // This should be a JMS Exchange + assertNotNull(ExchangeHelper.getBinding(exchange, JmsBinding.class)); + JmsMessage in = (JmsMessage) exchange.getIn(); + assertNotNull(in); + Map map = exchange.getIn().getBody(Map.class); - log.info("Received map: " + map); assertNotNull("Should have received a map message!", map); - assertIsInstanceOf(MapMessage.class, jmsExchange.getInMessage()); + assertIsInstanceOf(MapMessage.class, in.getJmsMessage()); assertEquals("map.foo", "abc", map.get("foo")); assertEquals("map.bar", "xyz", map.get("bar")); assertEquals("map.size", 2, map.size()); Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java (original) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java Sat Jun 27 04:06:31 2009 @@ -30,6 +30,7 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; +import org.apache.camel.util.ExchangeHelper; import org.junit.Before; import org.junit.Test; import org.springframework.jms.core.JmsTemplate; @@ -78,8 +79,11 @@ protected void assertCorrectObjectReceived() { Exchange exchange = endpoint.getReceivedExchanges().get(0); - JmsExchange jmsExchange = assertIsInstanceOf(JmsExchange.class, exchange); - assertIsInstanceOf(ObjectMessage.class, jmsExchange.getInMessage()); + // This should be a JMS Exchange + assertNotNull(ExchangeHelper.getBinding(exchange, JmsBinding.class)); + JmsMessage in = (JmsMessage) exchange.getIn(); + assertNotNull(in); + assertIsInstanceOf(ObjectMessage.class, in.getJmsMessage()); MyUser user = exchange.getIn().getBody(MyUser.class); assertEquals("Claus", user.getName()); Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java?rev=788923&r1=788922&r2=788923&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java (original) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java Sat Jun 27 04:06:31 2009 @@ -26,10 +26,12 @@ import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.jms.JmsExchange; +import org.apache.camel.component.jms.JmsBinding; +import org.apache.camel.component.jms.JmsMessage; import org.apache.camel.component.mock.AssertionClause; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; +import org.apache.camel.util.ExchangeHelper; import org.junit.Test; import static org.apache.activemq.camel.component.ActiveMQComponent.activeMQComponent; @@ -81,8 +83,10 @@ from("activemq:test.a").process(new Processor() { public void process(Exchange exchange) throws Exception { // lets set the custom JMS headers using the JMS API - JmsExchange jmsExchange = assertIsInstanceOf(JmsExchange.class, exchange); - Message inMessage = jmsExchange.getInMessage(); + assertNotNull(ExchangeHelper.getBinding(exchange, JmsBinding.class)); + JmsMessage in = (JmsMessage) exchange.getIn(); + assertNotNull(in); + Message inMessage = in.getJmsMessage(); inMessage.setJMSReplyTo(replyQueue); inMessage.setJMSCorrelationID(correlationID); inMessage.setJMSType(messageType);