Skip to content

Commit

Permalink
CAMEL-3782: Polished
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.apache.org/repos/asf/camel/trunk@1080900 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
davsclaus committed Mar 12, 2011
1 parent 10fd5fa commit 81e8e82
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,10 @@ public Message makeJmsMessage(Exchange exchange, org.apache.camel.Message camelM
Message answer = null;

boolean alwaysCopy = endpoint != null && endpoint.getConfiguration().isAlwaysCopyMessage();
boolean force = endpoint != null && endpoint.getConfiguration().isForceSendOriginalMessage();
if (!alwaysCopy && camelMessage instanceof JmsMessage) {
JmsMessage jmsMessage = (JmsMessage)camelMessage;
if (!jmsMessage.shouldCreateNewMessage() || endpoint.getConfiguration().isForceSendOriginalMessage()) {
if (!jmsMessage.shouldCreateNewMessage() || force) {
answer = jmsMessage.getJmsMessage();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,10 @@ public void setTestConnectionOnStartup(boolean testConnectionOnStartup) {
getConfiguration().setTestConnectionOnStartup(testConnectionOnStartup);
}

public void setForceSendOriginalMessage(boolean forceSendOriginalMessage) {
getConfiguration().setForceSendOriginalMessage(forceSendOriginalMessage);
}

public void setRequestTimeout(long requestTimeout) {
getConfiguration().setRequestTimeout(requestTimeout);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,16 @@ public void setTestConnectionOnStartup(boolean testConnectionOnStartup) {
configuration.setTestConnectionOnStartup(testConnectionOnStartup);
}

@ManagedAttribute
public boolean isForceSendOriginalMessage() {
return configuration.isForceSendOriginalMessage();
}

@ManagedAttribute
public void setForceSendOriginalMessage(boolean forceSendOriginalMessage) {
configuration.setForceSendOriginalMessage(forceSendOriginalMessage);
}

@ManagedAttribute(description = "Camel id")
public String getCamelId() {
return getCamelContext().getName();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

import javax.jms.ConnectionFactory;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTextMessage;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
Expand All @@ -41,7 +40,6 @@ public void testFailover() throws Exception {
MockEndpoint twoMock = getMockEndpoint("mock:two");
MockEndpoint resultMock = getMockEndpoint("mock:result");


oneMock.expectedMessageCount(1);
oneMock.expectedHeaderReceived("foo", "bar");
twoMock.expectedMessageCount(1);
Expand All @@ -50,7 +48,7 @@ public void testFailover() throws Exception {
resultMock.expectedMessageCount(1);
resultMock.expectedHeaderReceived("foo", "bar");

String out = template.requestBodyAndHeader("jms:queue:start?jmsMessageType=Text&forceSendOriginalMessage=" + forceSendOriginalMessage, "Hello World", "foo", "bar", String.class);
String out = template.requestBodyAndHeader("jms:queue:start", "Hello World", "foo", "bar", String.class);
assertEquals("Hello Back", out);

assertMockEndpointsSatisfied();
Expand Down Expand Up @@ -79,7 +77,7 @@ public void testFailover() throws Exception {
resultMock.expectedMessageCount(1);
resultMock.expectedHeaderReceived("foo", "bar");

out = template.requestBodyAndHeader("jms:queue:start?jmsMessageType=Text&forceSendOriginalMessage=" + forceSendOriginalMessage, "Hello World", "foo", "bar", String.class);
out = template.requestBodyAndHeader("jms:queue:start", "Hello World", "foo", "bar", String.class);
assertEquals("Bye World", out);

assertMockEndpointsSatisfied();
Expand All @@ -96,21 +94,21 @@ protected RouteBuilder createRouteBuilder() throws Exception {
public void configure() throws Exception {
from("jms:queue:start?mapJmsMessage=false")
.loadBalance().failover(-1, false, true)
.to("jms:queue:one?transferException=true&forceSendOriginalMessage=" + forceSendOriginalMessage)
.to("jms:queue:two?transferException=true&forceSendOriginalMessage=" + forceSendOriginalMessage)
.to("jms:queue:three?transferException=true&forceSendOriginalMessage=" + forceSendOriginalMessage)
.to("jms:queue:one?forceSendOriginalMessage=" + forceSendOriginalMessage)
.to("jms:queue:two?forceSendOriginalMessage=" + forceSendOriginalMessage)
.to("jms:queue:three?forceSendOriginalMessage=" + forceSendOriginalMessage)
.end()
.to("mock:result");

from("jms:queue:one?transferException=true&mapJmsMessage=false")
from("jms:queue:one?mapJmsMessage=false")
.to("mock:one")
.throwException(new IllegalArgumentException("Damn"));

from("jms:queue:two?transferException=true&mapJmsMessage=false")
from("jms:queue:two?mapJmsMessage=false")
.to("mock:two")
.transform().simple("Hello Back");

from("jms:queue:three?transferException=true&mapJmsMessage=false")
from("jms:queue:three?mapJmsMessage=false")
.to("mock:three")
.transform().simple("Bye World");
}
Expand All @@ -121,7 +119,11 @@ protected CamelContext createCamelContext() throws Exception {
CamelContext camelContext = super.createCamelContext();

ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
// we want to transfer the exception
jms.setTransferException(true);

camelContext.addComponent("jms", jms);

return camelContext;
}
Expand Down

0 comments on commit 81e8e82

Please sign in to comment.