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 = 


Reply via email to