Repository: camel Updated Branches: refs/heads/master d9ae20ba7 -> 2ec2b8750
CAMEL-8702 doesn't create the a new EventLoopGroup per connection in NettyProducer Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2ec2b875 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2ec2b875 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2ec2b875 Branch: refs/heads/master Commit: 2ec2b87509fb77daf2d40cfa7b7334fc699f4bdf Parents: d9ae20b Author: Willem Jiang <willem.ji...@gmail.com> Authored: Mon Apr 27 10:55:34 2015 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Mon Apr 27 10:55:34 2015 +0800 ---------------------------------------------------------------------- .../apache/camel/component/netty4/NettyProducer.java | 14 ++++++-------- .../netty4/NettyServerBootstrapConfiguration.java | 12 +++++++++++- 2 files changed, 17 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/2ec2b875/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java index 4dd2cac..9bba354 100644 --- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java +++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyProducer.java @@ -91,7 +91,12 @@ public class NettyProducer extends DefaultAsyncProducer { @Override protected void doStart() throws Exception { super.doStart(); - + if (configuration.getWorkerGroup() == null) { + // create new pool which we should shutdown when stopping as its not shared + workerGroup = new NettyWorkerPoolBuilder().withWorkerCount(configuration.getWorkerCount()) + .withName("NettyClientTCPWorker").build(); + } + if (configuration.isProducerPoolEnabled()) { // setup pool where we want an unbounded pool, which allows the pool to shrink on no demand GenericObjectPool.Config config = new GenericObjectPool.Config(); @@ -312,19 +317,12 @@ public class NettyProducer extends DefaultAsyncProducer { } protected EventLoopGroup getWorkerGroup() { - // prefer using explicit configured thread pools EventLoopGroup wg = configuration.getWorkerGroup(); - if (wg == null) { - // create new pool which we should shutdown when stopping as its not - // shared - workerGroup = new NettyWorkerPoolBuilder().withWorkerCount(configuration.getWorkerCount()) - .withName("NettyClientTCPWorker").build(); wg = workerGroup; } return wg; - } protected ChannelFuture openConnection() throws Exception { http://git-wip-us.apache.org/repos/asf/camel/blob/2ec2b875/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java ---------------------------------------------------------------------- diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java index ce1403d..9dc4c40 100644 --- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java +++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java @@ -91,7 +91,9 @@ public class NettyServerBootstrapConfiguration implements Cloneable { protected String enabledProtocols = DEFAULT_ENABLED_PROTOCOLS; @UriParam protected String passphrase; + @UriParam protected EventLoopGroup bossGroup; + @UriParam protected EventLoopGroup workerGroup; @UriParam protected String networkInterface; @@ -360,14 +362,22 @@ public class NettyServerBootstrapConfiguration implements Cloneable { return bossGroup; } + /** + * Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint + * @param bossGroup + */ public void setBossGroup(EventLoopGroup bossGroup) { this.bossGroup = bossGroup; } - + public EventLoopGroup getWorkerGroup() { return workerGroup; } + /** + * Set the WorkerGroup which could be used for handling selector eventloop across the NettyEndpoint + * @param workerGroup + */ public void setWorkerGroup(EventLoopGroup workerGroup) { this.workerGroup = workerGroup; }