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 2009/03/26 13:58:53 UTC
svn commit: r758617 - in
/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms:
JmsBinding.java JmsProducer.java
Author: davsclaus
Date: Thu Mar 26 12:58:49 2009
New Revision: 758617
URL: http://svn.apache.org/viewvc?rev=758617&view=rev
Log:
CAMEL-1461: JMSProducer does not forward JMSReplyTo for not OUT capable, unless QoS is preserved.
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/JmsProducer.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=758617&r1=758616&r2=758617&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 Thu Mar 26 12:58:49 2009
@@ -252,13 +252,7 @@
if (headerName.equals("JMSCorrelationID")) {
jmsMessage.setJMSCorrelationID(ExchangeHelper.convertToType(exchange, String.class, headerValue));
} else if (headerName.equals("JMSReplyTo") && headerValue != null) {
- if (exchange.getPattern().isOutCapable()) {
- // only set the JMSReply if the Exchange supports Out
- jmsMessage.setJMSReplyTo(ExchangeHelper.convertToType(exchange, Destination.class, headerValue));
- } else {
- // warn we got a JMSReplyTo but the Exchange is not out capable
- LOG.warn("Exchange is not out capable, Ignoring JMSReplyTo: " + headerValue);
- }
+ jmsMessage.setJMSReplyTo(ExchangeHelper.convertToType(exchange, Destination.class, headerValue));
} else if (headerName.equals("JMSType")) {
jmsMessage.setJMSType(ExchangeHelper.convertToType(exchange, String.class, headerValue));
} else if (LOG.isDebugEnabled()) {
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=758617&r1=758616&r2=758617&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 Thu Mar 26 12:58:49 2009
@@ -272,6 +272,19 @@
exchange.setException(e);
}
} else {
+ // we must honor these special flags to preverse QoS
+ if (!endpoint.isPreserveMessageQos() && !endpoint.isExplicitQosEnabled()
+ && exchange.getIn().getHeaders().containsKey("JMSReplyTo")) {
+ // we are routing an existing JmsMessage, origin from another JMS endpoint
+ // then we need to remove the existing JMSReplyTo, JMSCorrelationID.
+ // as we are not out capable and thus do not expect a reply, and therefore
+ // the consumer of this message we send should not return a reply
+ String to = destinationName != null ? destinationName : "" + destination;
+ LOG.warn("Disabling JMSReplyTo as this Exchange is not OUT capable: " + exchange + " with destination: " + to);
+ exchange.getIn().setHeader("JMSReplyTo", null);
+ exchange.getIn().setHeader("JMSCorrelationID", null);
+ }
+
MessageCreator messageCreator = new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
Message message = endpoint.getBinding().makeJmsMessage(exchange, in, session, null);