This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 2768b2e27dc879c8a126c51969f1847cc6c71503 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Mon Mar 21 10:41:18 2022 +0700 JAMES-3715 Get rid of no longer needed ChannelGroupHandler --- .../james/protocols/netty/AbstractAsyncServer.java | 4 +-- .../netty/AbstractChannelPipelineFactory.java | 11 ++---- .../AbstractSSLAwareChannelPipelineFactory.java | 9 +++-- .../james/protocols/netty/ChannelGroupHandler.java | 40 ---------------------- .../apache/james/protocols/netty/NettyServer.java | 4 +-- .../apache/james/imapserver/netty/IMAPServer.java | 10 ++---- .../james/imapserver/netty/NettyConstants.java | 1 - .../lib/netty/AbstractConfigurableAsyncServer.java | 5 ++- ...bstractExecutorAwareChannelPipelineFactory.java | 5 ++- .../managesieveserver/netty/ManageSieveServer.java | 11 ++---- 10 files changed, 19 insertions(+), 81 deletions(-) diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractAsyncServer.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractAsyncServer.java index 1e6bdb2..78e05e2 100644 --- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractAsyncServer.java +++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractAsyncServer.java @@ -97,7 +97,7 @@ public abstract class AbstractAsyncServer implements ProtocolServer { bootstrap.group(bossGroup, workerGroup); - ChannelInitializer<SocketChannel> factory = createPipelineFactory(channels); + ChannelInitializer<SocketChannel> factory = createPipelineFactory(); // Configure the pipeline factory. bootstrap.childHandler(factory); @@ -153,7 +153,7 @@ public abstract class AbstractAsyncServer implements ProtocolServer { /** * Create ChannelPipelineFactory to use by this Server implementation */ - protected abstract ChannelInitializer<SocketChannel> createPipelineFactory(ChannelGroup group); + protected abstract ChannelInitializer<SocketChannel> createPipelineFactory(); /** * Set the read/write timeout for the server. This will throw a {@link IllegalStateException} if the diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java index db4a1bd..601f91a 100644 --- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java +++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java @@ -22,7 +22,6 @@ import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; -import io.netty.channel.group.ChannelGroup; import io.netty.channel.socket.SocketChannel; import io.netty.handler.stream.ChunkedWriteHandler; import io.netty.util.concurrent.EventExecutorGroup; @@ -36,21 +35,18 @@ public abstract class AbstractChannelPipelineFactory<C extends SocketChannel> ex protected final ConnectionLimitUpstreamHandler connectionLimitHandler; protected final ConnectionPerIpLimitUpstreamHandler connectionPerIpLimitHandler; - private final ChannelGroupHandler groupHandler; private final int timeout; private final ChannelHandlerFactory frameHandlerFactory; private final EventExecutorGroup eventExecutorGroup; - public AbstractChannelPipelineFactory(ChannelGroup channels, - ChannelHandlerFactory frameHandlerFactory, EventExecutorGroup eventExecutorGroup) { - this(0, 0, 0, channels, frameHandlerFactory, eventExecutorGroup); + public AbstractChannelPipelineFactory(ChannelHandlerFactory frameHandlerFactory, EventExecutorGroup eventExecutorGroup) { + this(0, 0, 0, frameHandlerFactory, eventExecutorGroup); } - public AbstractChannelPipelineFactory(int timeout, int maxConnections, int maxConnectsPerIp, ChannelGroup channels, + public AbstractChannelPipelineFactory(int timeout, int maxConnections, int maxConnectsPerIp, ChannelHandlerFactory frameHandlerFactory, EventExecutorGroup eventExecutorGroup) { this.connectionLimitHandler = new ConnectionLimitUpstreamHandler(maxConnections); this.connectionPerIpLimitHandler = new ConnectionPerIpLimitUpstreamHandler(maxConnectsPerIp); - this.groupHandler = new ChannelGroupHandler(channels); this.timeout = timeout; this.frameHandlerFactory = frameHandlerFactory; this.eventExecutorGroup = eventExecutorGroup; @@ -61,7 +57,6 @@ public abstract class AbstractChannelPipelineFactory<C extends SocketChannel> ex protected void initChannel(C channel) throws Exception { // Create a default pipeline implementation. ChannelPipeline pipeline = channel.pipeline(); - pipeline.addLast(HandlerConstants.GROUP_HANDLER, groupHandler); pipeline.addLast(HandlerConstants.CONNECTION_LIMIT_HANDLER, connectionLimitHandler); diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java index f3399c9..2203efd 100644 --- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java +++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java @@ -24,7 +24,6 @@ import org.apache.james.protocols.api.Encryption; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelPipeline; -import io.netty.channel.group.ChannelGroup; import io.netty.channel.socket.SocketChannel; import io.netty.handler.ssl.SslHandler; import io.netty.util.concurrent.EventExecutorGroup; @@ -39,16 +38,16 @@ public abstract class AbstractSSLAwareChannelPipelineFactory<C extends SocketCha private Encryption secure; public AbstractSSLAwareChannelPipelineFactory(int timeout, - int maxConnections, int maxConnectsPerIp, ChannelGroup group, + int maxConnections, int maxConnectsPerIp, ChannelHandlerFactory frameHandlerFactory, EventExecutorGroup eventExecutorGroup) { - super(timeout, maxConnections, maxConnectsPerIp, group, frameHandlerFactory, eventExecutorGroup); + super(timeout, maxConnections, maxConnectsPerIp, frameHandlerFactory, eventExecutorGroup); } public AbstractSSLAwareChannelPipelineFactory(int timeout, - int maxConnections, int maxConnectsPerIp, ChannelGroup group, Encryption secure, + int maxConnections, int maxConnectsPerIp, Encryption secure, ChannelHandlerFactory frameHandlerFactory, EventExecutorGroup eventExecutorGroup) { - this(timeout, maxConnections, maxConnectsPerIp, group, frameHandlerFactory, eventExecutorGroup); + this(timeout, maxConnections, maxConnectsPerIp, frameHandlerFactory, eventExecutorGroup); this.secure = secure; } diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/ChannelGroupHandler.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/ChannelGroupHandler.java deleted file mode 100644 index 152f888..0000000 --- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/ChannelGroupHandler.java +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.protocols.netty; - -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelInboundHandlerAdapter; -import io.netty.channel.group.ChannelGroup; - -/** - * Add channels to the channel group after the channel was opened. - * - * This handler is thread-safe and thus can be shared across pipelines - */ -@ChannelHandler.Sharable -public final class ChannelGroupHandler extends ChannelInboundHandlerAdapter { - private final ChannelGroup channels; - - public ChannelGroupHandler(ChannelGroup channels) { - this.channels = channels; - } - - -} \ No newline at end of file diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java index 82e0e4f..951cdda 100644 --- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java +++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java @@ -29,7 +29,6 @@ import com.google.common.base.Preconditions; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.DefaultEventLoopGroup; -import io.netty.channel.group.ChannelGroup; /** @@ -111,13 +110,12 @@ public class NettyServer extends AbstractAsyncServer { } @Override - protected AbstractChannelPipelineFactory createPipelineFactory(ChannelGroup group) { + protected AbstractChannelPipelineFactory createPipelineFactory() { return new AbstractSSLAwareChannelPipelineFactory( getTimeout(), maxCurConnections, maxCurConnectionsPerIP, - group, secure, getFrameHandlerFactory(), new DefaultEventLoopGroup(16)) { diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java index f689024..f39c826 100644 --- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java +++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java @@ -36,7 +36,6 @@ import org.apache.james.protocols.api.Encryption; import org.apache.james.protocols.api.OidcSASLConfiguration; import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer; import org.apache.james.protocols.netty.AbstractChannelPipelineFactory; -import org.apache.james.protocols.netty.ChannelGroupHandler; import org.apache.james.protocols.netty.ChannelHandlerFactory; import org.apache.james.protocols.netty.ConnectionLimitUpstreamHandler; import org.apache.james.protocols.netty.ConnectionPerIpLimitUpstreamHandler; @@ -51,7 +50,6 @@ import com.google.common.collect.ImmutableSet; import io.netty.channel.Channel; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelPipeline; -import io.netty.channel.group.ChannelGroup; import io.netty.handler.ssl.SslHandler; import io.netty.handler.stream.ChunkedWriteHandler; @@ -206,22 +204,20 @@ public class IMAPServer extends AbstractConfigurableAsyncServer implements ImapC return "IMAP Service"; } + @Override - protected AbstractChannelPipelineFactory createPipelineFactory(final ChannelGroup group) { + protected AbstractChannelPipelineFactory createPipelineFactory() { - return new AbstractChannelPipelineFactory(group, getFrameHandlerFactory(), getExecutorGroup()) { + return new AbstractChannelPipelineFactory(getFrameHandlerFactory(), getExecutorGroup()) { @Override protected ChannelInboundHandlerAdapter createHandler() { return createCoreHandler(); } - private final ChannelGroupHandler groupHandler = new ChannelGroupHandler(group); - @Override public void initChannel(Channel channel) throws Exception { ChannelPipeline pipeline = channel.pipeline(); - pipeline.addLast(GROUP_HANDLER, groupHandler); pipeline.addLast(TIMEOUT_HANDLER, new ImapIdleStateHandler(timeout)); pipeline.addLast(CONNECTION_LIMIT_HANDLER, new ConnectionLimitUpstreamHandler(IMAPServer.this.connectionLimit)); diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyConstants.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyConstants.java index 68bbd6d..afe1c26 100644 --- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyConstants.java +++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyConstants.java @@ -36,7 +36,6 @@ public interface NettyConstants { String FRAMER = "framer"; String TIMEOUT_HANDLER = "timeoutHandler"; String CORE_HANDLER = "coreHandler"; - String GROUP_HANDLER = "groupHandler"; String CONNECTION_LIMIT_HANDLER = "connectionLimitHandler"; String CONNECTION_LIMIT_PER_IP_HANDLER = "connectionPerIpLimitHandler"; String CONNECTION_COUNT_HANDLER = "connectionCountHandler"; diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java index ec8a20a..1d4bc96 100644 --- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java +++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java @@ -55,7 +55,6 @@ import org.slf4j.LoggerFactory; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelOption; -import io.netty.channel.group.ChannelGroup; import io.netty.util.concurrent.DefaultEventExecutorGroup; import io.netty.util.concurrent.EventExecutorGroup; import nl.altindag.ssl.SSLFactory; @@ -555,8 +554,8 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe protected abstract ChannelInboundHandlerAdapter createCoreHandler(); @Override - protected AbstractChannelPipelineFactory createPipelineFactory(ChannelGroup group) { - return new AbstractExecutorAwareChannelPipelineFactory(getTimeout(), connectionLimit, connPerIP, group, + protected AbstractChannelPipelineFactory createPipelineFactory() { + return new AbstractExecutorAwareChannelPipelineFactory(getTimeout(), connectionLimit, connPerIP, getEncryption(), getFrameHandlerFactory(), getExecutorGroup()) { @Override diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java index 4890f3c..07e55ea 100644 --- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java +++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java @@ -23,7 +23,6 @@ import org.apache.james.protocols.netty.AbstractSSLAwareChannelPipelineFactory; import org.apache.james.protocols.netty.ChannelHandlerFactory; import io.netty.channel.ChannelHandler; -import io.netty.channel.group.ChannelGroup; import io.netty.util.concurrent.EventExecutorGroup; /** @@ -35,9 +34,9 @@ import io.netty.util.concurrent.EventExecutorGroup; public abstract class AbstractExecutorAwareChannelPipelineFactory extends AbstractSSLAwareChannelPipelineFactory { public AbstractExecutorAwareChannelPipelineFactory(int timeout, int maxConnections, int maxConnectsPerIp, - ChannelGroup group, Encryption encryption, + Encryption encryption, ChannelHandlerFactory frameHandlerFactory, EventExecutorGroup eventExecutorGroup) { - super(timeout, maxConnections, maxConnectsPerIp, group, encryption, frameHandlerFactory, eventExecutorGroup); + super(timeout, maxConnections, maxConnectsPerIp, encryption, frameHandlerFactory, eventExecutorGroup); } /** diff --git a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServer.java b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServer.java index 294ddc7..75d6b32 100644 --- a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServer.java +++ b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServer.java @@ -27,7 +27,6 @@ import org.apache.james.protocols.api.Encryption; import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer; import org.apache.james.protocols.netty.AbstractChannelPipelineFactory; import org.apache.james.protocols.netty.AllButStartTlsLineChannelHandlerFactory; -import org.apache.james.protocols.netty.ChannelGroupHandler; import org.apache.james.protocols.netty.ChannelHandlerFactory; import org.apache.james.protocols.netty.ConnectionLimitUpstreamHandler; import org.apache.james.protocols.netty.ConnectionPerIpLimitUpstreamHandler; @@ -37,7 +36,6 @@ import org.slf4j.LoggerFactory; import io.netty.channel.Channel; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelPipeline; -import io.netty.channel.group.ChannelGroup; import io.netty.handler.codec.string.StringDecoder; import io.netty.handler.codec.string.StringEncoder; import io.netty.handler.ssl.SslHandler; @@ -51,12 +49,10 @@ public class ManageSieveServer extends AbstractConfigurableAsyncServer implement static final String SSL_HANDLER = "sslHandler"; static final String FRAMER = "framer"; static final String CORE_HANDLER = "coreHandler"; - static final String GROUP_HANDLER = "groupHandler"; static final String CONNECTION_LIMIT_HANDLER = "connectionLimitHandler"; static final String CONNECTION_LIMIT_PER_IP_HANDLER = "connectionPerIpLimitHandler"; static final String CONNECTION_COUNT_HANDLER = "connectionCountHandler"; static final String CHUNK_WRITE_HANDLER = "chunkWriteHandler"; - static final String EXECUTION_HANDLER = "executionHandler"; private final int maxLineLength; private final ManageSieveProcessor manageSieveProcessor; @@ -84,17 +80,15 @@ public class ManageSieveServer extends AbstractConfigurableAsyncServer implement } @Override - protected AbstractChannelPipelineFactory createPipelineFactory(final ChannelGroup group) { + protected AbstractChannelPipelineFactory createPipelineFactory() { - return new AbstractChannelPipelineFactory(group, createFrameHandlerFactory(), getExecutorGroup()) { + return new AbstractChannelPipelineFactory(createFrameHandlerFactory(), getExecutorGroup()) { @Override protected ChannelInboundHandlerAdapter createHandler() { return createCoreHandler(); } - private final ChannelGroupHandler groupHandler = new ChannelGroupHandler(group); - @Override public void initChannel(Channel channel) throws Exception { ChannelPipeline pipeline = channel.pipeline(); @@ -107,7 +101,6 @@ public class ManageSieveServer extends AbstractConfigurableAsyncServer implement pipeline.addFirst(SSL_HANDLER, new SslHandler(engine)); } - pipeline.addLast(GROUP_HANDLER, groupHandler); pipeline.addLast(CONNECTION_LIMIT_HANDLER, new ConnectionLimitUpstreamHandler(ManageSieveServer.this.connectionLimit)); pipeline.addLast(CONNECTION_LIMIT_PER_IP_HANDLER, new ConnectionPerIpLimitUpstreamHandler(ManageSieveServer.this.connPerIP)); // Add the text line decoder which limit the max line length, --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org