You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by de...@apache.org on 2017/06/22 11:50:51 UTC
cxf git commit: setter for applicationExecutor This closes #284
Repository: cxf
Updated Branches:
refs/heads/master e9f7d73e6 -> 21618dad0
setter for applicationExecutor This closes #284
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/21618dad
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/21618dad
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/21618dad
Branch: refs/heads/master
Commit: 21618dad08506cc80edde02cf1661cecd06c49ab
Parents: e9f7d73
Author: Maxim Samoylych <ms...@sberbank-tele.com>
Authored: Thu Jun 22 13:50:14 2017 +0200
Committer: Dennis Kieselhorst <de...@apache.org>
Committed: Thu Jun 22 13:50:14 2017 +0200
----------------------------------------------------------------------
.../netty/server/NettyHttpServerEngine.java | 27 +++++++++++++++++---
.../server/NettyHttpServletPipelineFactory.java | 17 +++++++++---
2 files changed, 37 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/21618dad/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java
index 878f5b4..6dff4e6 100644
--- a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java
+++ b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServerEngine.java
@@ -40,7 +40,8 @@ import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
-
+import io.netty.util.concurrent.DefaultEventExecutorGroup;
+import io.netty.util.concurrent.EventExecutorGroup;
public class NettyHttpServerEngine implements ServerEngine {
@@ -92,6 +93,7 @@ public class NettyHttpServerEngine implements ServerEngine {
// TODO need to setup configuration about them
private EventLoopGroup bossGroup;
private EventLoopGroup workerGroup;
+ private EventExecutorGroup applicationExecutor;
public NettyHttpServerEngine() {
@@ -141,6 +143,9 @@ public class NettyHttpServerEngine implements ServerEngine {
if (workerGroup == null) {
workerGroup = new NioEventLoopGroup();
}
+ if (applicationExecutor == null) {
+ applicationExecutor = new DefaultEventExecutorGroup(threadingParameters.getThreadPoolSize());
+ }
final ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(bossGroup, workerGroup)
@@ -151,9 +156,8 @@ public class NettyHttpServerEngine implements ServerEngine {
servletPipeline =
new NettyHttpServletPipelineFactory(
tlsServerParameters, sessionSupport,
- threadingParameters.getThreadPoolSize(),
- maxChunkContentSize,
- handlerMap, this);
+ maxChunkContentSize, handlerMap,
+ this, applicationExecutor);
// Start the servletPipeline's timer
servletPipeline.start();
bootstrap.childHandler(servletPipeline);
@@ -235,6 +239,9 @@ public class NettyHttpServerEngine implements ServerEngine {
// just unbind the channel
if (servletPipeline != null) {
servletPipeline.shutdown();
+ } else if (applicationExecutor != null) {
+ // shutdown executor if it set but not server started
+ applicationExecutor.shutdownGracefully();
}
if (serverChannel != null) {
@@ -329,4 +336,16 @@ public class NettyHttpServerEngine implements ServerEngine {
public EventLoopGroup getWorkerGroup() {
return workerGroup;
}
+
+ public EventExecutorGroup getApplicationExecutor() {
+ return applicationExecutor;
+ }
+
+ public void setApplicationExecutor(EventExecutorGroup applicationExecutor) {
+ if (this.applicationExecutor == null) {
+ this.applicationExecutor = applicationExecutor;
+ } else {
+ throw new IllegalStateException("applicationExecutor is already defined");
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/21618dad/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletPipelineFactory.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletPipelineFactory.java b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletPipelineFactory.java
index eec502a..5c27ae5 100644
--- a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletPipelineFactory.java
+++ b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/NettyHttpServletPipelineFactory.java
@@ -69,21 +69,32 @@ public class NettyHttpServletPipelineFactory extends ChannelInitializer<Channel>
private final NettyHttpServerEngine nettyHttpServerEngine;
+ /**
+ * @deprecated use {@link #NettyHttpServletPipelineFactory(TLSServerParameters, boolean, int, Map,
+ * NettyHttpServerEngine, EventExecutorGroup)}
+ */
+ @Deprecated
public NettyHttpServletPipelineFactory(TLSServerParameters tlsServerParameters,
boolean supportSession, int threadPoolSize, int maxChunkContentSize,
Map<String, NettyHttpContextHandler> handlerMap,
NettyHttpServerEngine engine) {
+ this(tlsServerParameters, supportSession, maxChunkContentSize, handlerMap, engine,
+ new DefaultEventExecutorGroup(threadPoolSize));
+ }
+
+ public NettyHttpServletPipelineFactory(TLSServerParameters tlsServerParameters,
+ boolean supportSession, int maxChunkContentSize,
+ Map<String, NettyHttpContextHandler> handlerMap,
+ NettyHttpServerEngine engine, EventExecutorGroup applicationExecutor) {
this.supportSession = supportSession;
this.watchdog = new HttpSessionWatchdog();
this.handlerMap = handlerMap;
this.tlsServerParameters = tlsServerParameters;
this.maxChunkContentSize = maxChunkContentSize;
this.nettyHttpServerEngine = engine;
- //TODO need to configure the thread size of EventExecutorGroup
- applicationExecutor = new DefaultEventExecutorGroup(threadPoolSize);
+ this.applicationExecutor = applicationExecutor;
}
-
public Map<String, NettyHttpContextHandler> getHttpContextHandlerMap() {
return handlerMap;
}