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 2012/04/05 14:30:21 UTC

svn commit: r1309820 - in /camel/branches/camel-2.9.x: ./ components/camel-jms/src/main/java/org/apache/camel/component/jms/ components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ components/camel-jms/src/test/java/org/apache/camel/co...

Author: davsclaus
Date: Thu Apr  5 12:30:20 2012
New Revision: 1309820

URL: http://svn.apache.org/viewvc?rev=1309820&view=rev
Log:
CAMEL-5141: camel-jms - Allow to configure frequency of timeout checker when doing request/reply over JMS

Added:
    camel/branches/camel-2.9.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutCheckerIntervalTest.java
      - copied unchanged from r1309819, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutCheckerIntervalTest.java
Modified:
    camel/branches/camel-2.9.x/   (props changed)
    camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
    camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
    camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
    camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
  Merged /camel/trunk:r1309819

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java?rev=1309820&r1=1309819&r2=1309820&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java (original)
+++ camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java Thu Apr  5 12:30:20 2012
@@ -326,6 +326,10 @@ public class JmsComponent extends Defaul
         getConfiguration().setRequestTimeout(requestTimeout);
     }
 
+    public void setRequestTimeoutCheckerInterval(long requestTimeoutCheckerInterval) {
+        getConfiguration().setRequestTimeoutCheckerInterval(requestTimeoutCheckerInterval);
+    }
+
     public void setTransferExchange(boolean transferExchange) {
         getConfiguration().setTransferExchange(transferExchange);
     }

Modified: camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java?rev=1309820&r1=1309819&r2=1309820&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java (original)
+++ camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java Thu Apr  5 12:30:20 2012
@@ -87,6 +87,7 @@ public class JmsConfiguration implements
     private long recoveryInterval = -1;
     private long receiveTimeout = -1;
     private long requestTimeout = 20000L;
+    private long requestTimeoutCheckerInterval = 1000L;
     private int idleTaskExecutionLimit = 1;
     private int idleConsumerLimit = 1;
     private int maxConcurrentConsumers;
@@ -1059,7 +1060,7 @@ public class JmsConfiguration implements
 
     /**
      * Factory method which which allows derived classes to customize the lazy
-     * transcationManager creation
+     * transaction manager creation
      */
     protected PlatformTransactionManager createTransactionManager() {
         JmsTransactionManager answer = new JmsTransactionManager();
@@ -1110,6 +1111,17 @@ public class JmsConfiguration implements
         this.requestTimeout = requestTimeout;
     }
 
+    public long getRequestTimeoutCheckerInterval() {
+        return requestTimeoutCheckerInterval;
+    }
+
+    /**
+     * Sets the interval in milliseconds how often the request timeout checker should run.
+     */
+    public void setRequestTimeoutCheckerInterval(long requestTimeoutCheckerInterval) {
+        this.requestTimeoutCheckerInterval = requestTimeoutCheckerInterval;
+    }
+
     public String getReplyTo() {
         return replyToDestination;
     }

Modified: camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=1309820&r1=1309819&r2=1309820&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original)
+++ camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Thu Apr  5 12:30:20 2012
@@ -631,6 +631,11 @@ public class JmsEndpoint extends Default
         return getConfiguration().getRequestTimeout();
     }
 
+    @ManagedAttribute
+    public long getRequestTimeoutCheckerInterval() {
+        return getConfiguration().getRequestTimeoutCheckerInterval();
+    }
+
     public TaskExecutor getTaskExecutor() {
         return getConfiguration().getTaskExecutor();
     }

Modified: camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java?rev=1309820&r1=1309819&r2=1309820&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java (original)
+++ camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java Thu Apr  5 12:30:20 2012
@@ -205,8 +205,10 @@ public abstract class ReplyManagerSuppor
         ObjectHelper.notNull(executorService, "executorService", this);
         ObjectHelper.notNull(endpoint, "endpoint", this);
 
-        // purge for timeout every second
-        correlation = new CorrelationTimeoutMap(executorService, 1000);
+        // timeout map to use for purging messages which have timed out, while waiting for an expected reply
+        // when doing request/reply over JMS
+        log.trace("Using timeout checker interval with {} millis", endpoint.getRequestTimeoutCheckerInterval());
+        correlation = new CorrelationTimeoutMap(executorService, endpoint.getRequestTimeoutCheckerInterval());
         ServiceHelper.startService(correlation);
 
         // create JMS listener and start it