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