camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Chen (JIRA)" <>
Subject [jira] Created: (CAMEL-1366) EndpointMessageListener should respect ExchangePattern
Date Fri, 20 Feb 2009 22:28:59 GMT
EndpointMessageListener should respect ExchangePattern

                 Key: CAMEL-1366
             Project: Apache Camel
          Issue Type: Bug
    Affects Versions: 1.6.0
         Environment: ActiveMQ/Camel
            Reporter: Michael Chen

In all current releases, org.apache.camel.component.jms.EndpointMessageListener.onMessage()
has the following logic (line 90 in 1.6.0 code):
// send the reply
if (rce == null && body != null && !disableReplyTo) {
    sendReply(replyDestination, message, exchange, body);
This logic should also respect ExchangePattern of the exchange, so I propose a change to:
// send the reply
if (rce == null && body != null && exchange.isOutCapable()) {
    sendReply(replyDestination, message, exchange, body);
This change allows a processing pattern where the route may change the ExchangePattern using
methods like RouteBuilder.inOnly() to switch the MEP at will so that the reply is send at
a later time (true asynchronous exchange).  This processing pattern is particularly useful
for integrating long running services. For example,
// Java DSL
The flaw of the current logic makes it impossible to do true asynchronous exchange, because
1) it does not respect the ExchangePattern; 2) if property "disableReplyTo" is used, the "org.apache.camel.jms.replyDestination"
property will not be set (see method createExchange in the same file), thus downstream cannot
find the reply destination.

The proposed change can also deprecate the disableReplyTo property and put the MEP concept
into good use.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message