You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/03/22 02:01:58 UTC

[james-project] 27/29: JAMES-3715 Get rid of no longer needed ChannelGroupHandler

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 <bt...@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-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org