You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/06/20 18:44:00 UTC
svn commit: r1137696 - in /camel/trunk/components/camel-jms/src:
main/java/org/apache/camel/component/jms/
test/java/org/apache/camel/component/jms/
Author: davsclaus
Date: Mon Jun 20 16:44:00 2011
New Revision: 1137696
URL: http://svn.apache.org/viewvc?rev=1137696&view=rev
Log:
CAMEL-4123: Created javax.jms.Message should have default delivery mode preset. CAMEL-4124: Fixed issue with using preserveMessageQos not preserving JMSDeliveryMode under certain curcomstanses.
Modified:
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/JmsConfiguration.java
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java
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=1137696&r1=1137695&r2=1137696&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 Mon Jun 20 16:44:00 2011
@@ -400,7 +400,10 @@ public class JmsBinding {
protected Message createJmsMessage(Exception cause, Session session) throws JMSException {
LOG.trace("Using JmsMessageType: {}", Object);
- return session.createObjectMessage(cause);
+ Message answer = session.createObjectMessage(cause);
+ // ensure default delivery mode is used by default
+ answer.setJMSDeliveryMode(Message.DEFAULT_DELIVERY_MODE);
+ return answer;
}
protected Message createJmsMessage(Exchange exchange, Object body, Map<String, Object> headers, Session session, CamelContext context) throws JMSException {
@@ -410,7 +413,10 @@ public class JmsBinding {
if (endpoint != null && endpoint.isTransferExchange()) {
LOG.trace("Option transferExchange=true so we use JmsMessageType: Object");
Serializable holder = DefaultExchangeHolder.marshal(exchange);
- return session.createObjectMessage(holder);
+ Message answer = session.createObjectMessage(holder);
+ // ensure default delivery mode is used by default
+ answer.setJMSDeliveryMode(Message.DEFAULT_DELIVERY_MODE);
+ return answer;
}
// use a custom message converter
@@ -434,7 +440,10 @@ public class JmsBinding {
// create the JmsMessage based on the type
if (type != null) {
LOG.trace("Using JmsMessageType: {}", type);
- return createJmsMessageForType(exchange, body, headers, session, context, type);
+ Message answer = createJmsMessageForType(exchange, body, headers, session, context, type);
+ // ensure default delivery mode is used by default
+ answer.setJMSDeliveryMode(Message.DEFAULT_DELIVERY_MODE);
+ return answer;
}
// warn if the body could not be mapped
@@ -447,7 +456,10 @@ public class JmsBinding {
}
// return a default message
- return session.createMessage();
+ Message answer = session.createMessage();
+ // ensure default delivery mode is used by default
+ answer.setJMSDeliveryMode(Message.DEFAULT_DELIVERY_MODE);
+ return answer;
}
/**
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java?rev=1137696&r1=1137695&r2=1137696&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java Mon Jun 20 16:44:00 2011
@@ -243,7 +243,8 @@ public class JmsConfiguration implements
// remove the temporary property
JmsMessageHelper.removeJmsProperty(message, JmsConstants.JMS_DELIVERY_MODE);
} else {
- deliveryMode = this.getDeliveryMode();
+ // use the existing delivery mode from the message
+ deliveryMode = message.getJMSDeliveryMode();
}
// need to log just before so the message is 100% correct when logged
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java?rev=1137696&r1=1137695&r2=1137696&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java Mon Jun 20 16:44:00 2011
@@ -227,7 +227,7 @@ public final class JmsMessageHelper {
* @throws javax.jms.JMSException is thrown if error setting the delivery mode
*/
public static void setJMSDeliveryMode(Exchange exchange, Message message, Object deliveryMode) throws JMSException {
- int mode = Message.DEFAULT_DELIVERY_MODE;
+ Integer mode = null;
if (deliveryMode instanceof String) {
String s = (String) deliveryMode;
@@ -252,8 +252,10 @@ public final class JmsMessageHelper {
}
}
- message.setJMSDeliveryMode(mode);
- message.setIntProperty(JmsConstants.JMS_DELIVERY_MODE, mode);
+ if (mode != null) {
+ message.setJMSDeliveryMode(mode);
+ message.setIntProperty(JmsConstants.JMS_DELIVERY_MODE, mode);
+ }
}
}
Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java?rev=1137696&r1=1137695&r2=1137696&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java (original)
+++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java Mon Jun 20 16:44:00 2011
@@ -118,10 +118,10 @@ public class JmsRouteDeliveryModePreserv
@Override
public void configure() throws Exception {
from("activemq:queue:foo")
- .to("log:foo")
.to("activemq:queue:bar?preserveMessageQos=true");
- from("activemq:queue:bar").to("mock:bar");
+ from("activemq:queue:bar")
+ .to("mock:bar");
}
};
}