CAMEL-8712 - User the Netty Timer per Component

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8e18c032
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8e18c032
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8e18c032

Branch: refs/heads/master
Commit: 8e18c032af4ed81e1d46080caf152ccf3c479181
Parents: 05c7248
Author: Willem Jiang <willem.ji...@gmail.com>
Authored: Tue Apr 28 21:53:31 2015 +0800
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Tue Apr 28 21:53:31 2015 +0800

----------------------------------------------------------------------
 .../component/netty/http/HttpClientPipelineFactory.java      | 2 +-
 .../camel/component/netty/DefaultClientPipelineFactory.java  | 2 +-
 .../org/apache/camel/component/netty/NettyComponent.java     | 8 ++++++--
 .../camel/component/netty/NettyManualEndpointTest.java       | 2 +-
 4 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8e18c032/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/HttpClientPipelineFactory.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/HttpClientPipelineFactory.java
 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/HttpClientPipelineFactory.java
index ee77dce..6fde363 100644
--- 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/HttpClientPipelineFactory.java
+++ 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/HttpClientPipelineFactory.java
@@ -108,7 +108,7 @@ public class HttpClientPipelineFactory extends 
ClientPipelineFactory {
             if (LOG.isTraceEnabled()) {
                 LOG.trace("Using request timeout {} millis", 
producer.getConfiguration().getRequestTimeout());
             }
-            ChannelHandler timeout = new 
ReadTimeoutHandler(NettyComponent.getTimer(), 
producer.getConfiguration().getRequestTimeout(), TimeUnit.MILLISECONDS);
+            ChannelHandler timeout = new 
ReadTimeoutHandler(producer.getEndpoint().getTimer(), 
producer.getConfiguration().getRequestTimeout(), TimeUnit.MILLISECONDS);
             pipeline.addLast("timeout", timeout);
         }
         

http://git-wip-us.apache.org/repos/asf/camel/blob/8e18c032/components/camel-netty/src/main/java/org/apache/camel/component/netty/DefaultClientPipelineFactory.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/DefaultClientPipelineFactory.java
 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/DefaultClientPipelineFactory.java
index 556ee98..1e40f4c 100644
--- 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/DefaultClientPipelineFactory.java
+++ 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/DefaultClientPipelineFactory.java
@@ -85,7 +85,7 @@ public class DefaultClientPipelineFactory extends 
ClientPipelineFactory  {
             if (LOG.isTraceEnabled()) {
                 LOG.trace("Using request timeout {} millis", 
producer.getConfiguration().getRequestTimeout());
             }
-            ChannelHandler timeout = new 
ReadTimeoutHandler(NettyComponent.getTimer(), 
producer.getConfiguration().getRequestTimeout(), TimeUnit.MILLISECONDS);
+            ChannelHandler timeout = new 
ReadTimeoutHandler(producer.getEndpoint().getTimer(), 
producer.getConfiguration().getRequestTimeout(), TimeUnit.MILLISECONDS);
             addToPipeline("timeout", channelPipeline, timeout);
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/8e18c032/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index b140cba..ac622d0 100644
--- 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -33,7 +33,7 @@ import org.jboss.netty.util.Timer;
 
 public class NettyComponent extends UriEndpointComponent {
     // use a shared timer for Netty (see javadoc for HashedWheelTimer)
-    private static volatile Timer timer;
+    private Timer timer;
     private NettyConfiguration configuration;
     private int maximumPoolSize = 16;
     private OrderedMemoryAwareThreadPoolExecutor executorService;
@@ -104,7 +104,7 @@ public class NettyComponent extends UriEndpointComponent {
         this.maximumPoolSize = maximumPoolSize;
     }
 
-    public static Timer getTimer() {
+    public Timer getTimer() {
         return timer;
     }
 
@@ -146,6 +146,10 @@ public class NettyComponent extends UriEndpointComponent {
 
     @Override
     protected void doStop() throws Exception {
+        if (timer != null) {
+            timer.stop();
+            timer = null;
+        }
         if (executorService != null) {
             
getCamelContext().getExecutorServiceManager().shutdownNow(executorService);
             executorService = null;

http://git-wip-us.apache.org/repos/asf/camel/blob/8e18c032/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyManualEndpointTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyManualEndpointTest.java
 
b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyManualEndpointTest.java
index c95147d..770bf8f 100644
--- 
a/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyManualEndpointTest.java
+++ 
b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyManualEndpointTest.java
@@ -69,7 +69,7 @@ public class NettyManualEndpointTest extends BaseNettyTest {
                 // create and start endpoint, pass in null as endpoint uri
                 // as we create this endpoint manually
                 endpoint = new NettyEndpoint(null, component, nettyConfig);
-                endpoint.setTimer(NettyComponent.getTimer());
+                endpoint.setTimer(component.getTimer());
                 endpoint.start();
 
                 from(endpoint).to("mock:result");

Reply via email to