Author: davsclaus
Date: Tue Sep 16 01:41:34 2008
New Revision: 695769
URL: http://svn.apache.org/viewvc?rev=695769&view=rev
Log:
CAMEL-906: Fixed requestTimeout for JMSProducer
Added:
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
(contents, props changed)
- copied, changed from r695733,
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java
Modified:
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
Modified:
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java?rev=695769&r1=695768&r2=695769&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
(original)
+++
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
Tue Sep 16 01:41:34 2008
@@ -1071,6 +1071,9 @@
return requestTimeout;
}
+ /**
+ * Sets the timeout in milliseconds which requests should timeout after
+ */
public void setRequestTimeout(long requestTimeout) {
this.requestTimeout = requestTimeout;
}
Modified:
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=695769&r1=695768&r2=695769&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
(original)
+++
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
Tue Sep 16 01:41:34 2008
@@ -43,14 +43,12 @@
private String selector;
private JmsConfiguration configuration;
private Requestor requestor;
- private long requestTimeout;
public JmsEndpoint(String uri, JmsComponent component, String destination,
boolean pubSubDomain, JmsConfiguration configuration) {
super(uri, component);
this.configuration = configuration;
this.destination = destination;
this.pubSubDomain = pubSubDomain;
- this.requestTimeout = configuration.getRequestTimeout();
}
public JmsEndpoint(String endpointUri, JmsBinding binding,
JmsConfiguration configuration, String destination, boolean pubSubDomain) {
@@ -59,7 +57,6 @@
this.configuration = configuration;
this.destination = destination;
this.pubSubDomain = pubSubDomain;
- this.requestTimeout = configuration.getRequestTimeout();
}
public JmsEndpoint(String endpointUri, String destination, boolean
pubSubDomain) {
@@ -193,17 +190,20 @@
this.requestor = requestor;
}
+ /**
+ * @deprecated use configuration.requestTimeout. Will be removed in Camel
2.0
+ */
public long getRequestTimeout() {
- return requestTimeout;
+ return configuration.getRequestTimeout();
}
/**
* Sets the timeout in milliseconds which requests should timeout after
*
- * @param requestTimeout
+ * @deprecated use configuration.requestTimeout. Will be removed in Camel
2.0
*/
public void setRequestTimeout(long requestTimeout) {
- this.requestTimeout = requestTimeout;
+ configuration.setRequestTimeout(requestTimeout);
}
public boolean isPubSubDomain() {
Modified:
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java?rev=695769&r1=695768&r2=695769&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
(original)
+++
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
Tue Sep 16 01:41:34 2008
@@ -192,7 +192,7 @@
setMessageId(exchange);
// lets wait and return the response
- long requestTimeout = endpoint.getRequestTimeout();
+ long requestTimeout =
endpoint.getConfiguration().getRequestTimeout();
try {
Message message = null;
try {
Copied:
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
(from r695733,
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java)
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java?p2=activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java&p1=activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java&r1=695733&r2=695769&rev=695769&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java
(original)
+++
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
Tue Sep 16 01:41:34 2008
@@ -16,47 +16,44 @@
*/
package org.apache.camel.component.jms;
-import java.io.File;
-
import javax.jms.ConnectionFactory;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.ContextTestSupport;
+import org.apache.camel.ExchangeTimedOutException;
+import org.apache.camel.RuntimeCamelException;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.converter.IOConverter;
-
import static
org.apache.camel.component.jms.JmsComponent.jmsComponentClientAcknowledge;
/**
- * Unit test that we can consume JMS message and store it as file (to avoid
regression bug)
+ * Unit test for testing request timeout with a InOut exchange.
*/
-public class JmsRouteToFileTest extends ContextTestSupport {
-
- protected String componentName = "activemq";
+public class JmsRouteTimeoutTest extends ContextTestSupport {
- public void testRouteToFile() throws Exception {
- deleteDirectory("target/routetofile");
-
- template.sendBody("activemq:queue:hello", "Hello World");
-
- // pause to let file producer save the file
- Thread.sleep(1500);
+ public void testTimeout() throws Exception {
+ try {
+ // send a in-out with a timeout for 1 sec
+ template.requestBody("activemq:queue:slow?requestTimeout=1000",
"Hello World");
+ fail("Should have timed out with an exception");
+ } catch (RuntimeCamelException e) {
+ assertTrue("Should have timed out with an exception", e.getCause()
instanceof ExchangeTimedOutException);
+ }
+ }
- // do file assertions
- File dir = new File("./target/routetofile");
- assertTrue("Should be directory", dir.isDirectory());
- File file = dir.listFiles()[0];
- assertTrue("File should exists", file.exists());
- String body = IOConverter.toString(file);
- assertEquals("Hello World", body);
+ public void testNoTimeout() throws Exception {
+ // START SNIPPET: e1
+ // send a in-out with a timeout for 5 sec
+ Object out =
template.requestBody("activemq:queue:slow?requestTimeout=5000", "Hello World");
+ // END SNIPPET: e1
+ assertEquals("Bye World", out);
}
protected CamelContext createCamelContext() throws Exception {
CamelContext camelContext = super.createCamelContext();
ConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
- camelContext.addComponent(componentName,
jmsComponentClientAcknowledge(connectionFactory));
+ camelContext.addComponent("activemq",
jmsComponentClientAcknowledge(connectionFactory));
return camelContext;
}
@@ -64,8 +61,8 @@
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from("activemq:queue:hello").to("file://target/routetofile");
+
from("activemq:queue:slow").delayer(3000).transform(constant("Bye World"));
}
};
}
-}
+}
\ No newline at end of file
Propchange:
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
------------------------------------------------------------------------------
svn:mergeinfo =