You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/11/21 11:19:49 UTC

svn commit: r1204430 - in /james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl: AbstractChannelPipelineFactory.java AbstractSSLAwareChannelPipelineFactory.java HandlerConstants.java NettyProtocolTransport.java

Author: norman
Date: Mon Nov 21 10:19:49 2011
New Revision: 1204430

URL: http://svn.apache.org/viewvc?rev=1204430&view=rev
Log:
Add HandlerConstants which holds the keys under which the ChannelHandlers get added to the ChannelPipeline

Added:
    james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/HandlerConstants.java
Modified:
    james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java
    james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java
    james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyProtocolTransport.java

Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java?rev=1204430&r1=1204429&r2=1204430&view=diff
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java (original)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java Mon Nov 21 10:19:49 2011
@@ -42,17 +42,17 @@ public abstract class AbstractChannelPip
     private final ConnectionLimitUpstreamHandler connectionLimitHandler;
     private final ConnectionPerIpLimitUpstreamHandler connectionPerIpLimitHandler;
     private final HashedWheelTimer timer = new HashedWheelTimer();
-    private ChannelGroupHandler groupHandler;
-	private int timeout;
-    private ExecutionHandler eHandler;
+    private final ChannelGroupHandler groupHandler;
+	private final int timeout;
+    private final ExecutionHandler eHandler;
     public AbstractChannelPipelineFactory(int timeout, int maxConnections, int maxConnectsPerIp, ChannelGroup channels) {
         this(timeout, maxConnections, maxConnectsPerIp, channels, null);
     }
     
     public AbstractChannelPipelineFactory(int timeout, int maxConnections, int maxConnectsPerIp, ChannelGroup channels, ExecutionHandler eHandler) {
-        connectionLimitHandler = new ConnectionLimitUpstreamHandler(maxConnections);
-        connectionPerIpLimitHandler = new ConnectionPerIpLimitUpstreamHandler(maxConnectsPerIp);
-        groupHandler = new ChannelGroupHandler(channels);
+        this.connectionLimitHandler = new ConnectionLimitUpstreamHandler(maxConnections);
+        this.connectionPerIpLimitHandler = new ConnectionPerIpLimitUpstreamHandler(maxConnectsPerIp);
+        this.groupHandler = new ChannelGroupHandler(channels);
         this.timeout = timeout;
         this.eHandler = eHandler;
     }
@@ -66,25 +66,25 @@ public abstract class AbstractChannelPip
     public ChannelPipeline getPipeline() throws Exception {
         // Create a default pipeline implementation.
         ChannelPipeline pipeline = pipeline();
-        pipeline.addLast("groupHandler", groupHandler);
+        pipeline.addLast(HandlerConstants.GROUP_HANDLER, groupHandler);
 
-        pipeline.addLast("connectionLimit", connectionLimitHandler);
+        pipeline.addLast(HandlerConstants.CONNECTION_LIMIT_HANDLER, connectionLimitHandler);
 
-        pipeline.addLast("connectionPerIpLimit", connectionPerIpLimitHandler);
+        pipeline.addLast(HandlerConstants.CONNECTION_PER_IP_LIMIT_HANDLER, connectionPerIpLimitHandler);
 
         
         // Add the text line decoder which limit the max line length, don't strip the delimiter and use CRLF as delimiter
-        pipeline.addLast("framer", new DelimiterBasedFrameDecoder(MAX_LINE_LENGTH, false, Delimiters.lineDelimiter()));
+        pipeline.addLast(HandlerConstants.FRAMER, new DelimiterBasedFrameDecoder(MAX_LINE_LENGTH, false, Delimiters.lineDelimiter()));
        
         // Add the ChunkedWriteHandler to be able to write ChunkInput
-        pipeline.addLast("streamer", new ChunkedWriteHandler());
-        pipeline.addLast("timeoutHandler", new TimeoutHandler(timer, timeout));
+        pipeline.addLast(HandlerConstants.CHUNK_HANDLER, new ChunkedWriteHandler());
+        pipeline.addLast(HandlerConstants.TIMEOUT_HANDLER, new TimeoutHandler(timer, timeout));
 
         if (eHandler != null) {
-            pipeline.addLast("executionHandler", eHandler);
+            pipeline.addLast(HandlerConstants.EXECUTION_HANDLER, eHandler);
         }
         
-        pipeline.addLast("coreHandler", createHandler());
+        pipeline.addLast(HandlerConstants.CORE_HANDLER, createHandler());
 
 
         return pipeline;
@@ -100,11 +100,9 @@ public abstract class AbstractChannelPip
      */
     protected abstract ChannelUpstreamHandler createHandler();
 
+    
     @Override
     public void releaseExternalResources() {
         timer.stop();
     }
-    
-
-
 }

Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java?rev=1204430&r1=1204429&r2=1204430&view=diff
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java (original)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java Mon Nov 21 10:19:49 2011
@@ -68,7 +68,7 @@ public abstract class AbstractSSLAwareCh
             if (enabledCipherSuites != null && enabledCipherSuites.length > 0) {
                 engine.setEnabledCipherSuites(enabledCipherSuites);
             }
-            pipeline.addFirst("sslHandler", new SslHandler(engine));
+            pipeline.addFirst(HandlerConstants.SSL_HANDLER, new SslHandler(engine));
         }
         return pipeline;
     }

Added: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/HandlerConstants.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/HandlerConstants.java?rev=1204430&view=auto
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/HandlerConstants.java (added)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/HandlerConstants.java Mon Nov 21 10:19:49 2011
@@ -0,0 +1,50 @@
+/****************************************************************
+ * 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.impl;
+
+import org.jboss.netty.channel.ChannelHandler;
+import org.jboss.netty.channel.ChannelPipeline;
+
+/**
+ * Provide the keys under which the {@link ChannelHandler}'s are stored in the {@link ChannelPipeline}
+ * 
+ *
+ */
+public interface HandlerConstants {
+
+	public static final String SSL_HANDLER = "sslHandler";
+	
+	public static final String GROUP_HANDLER ="groupHandler";
+	
+	public static final String CONNECTION_LIMIT_HANDLER =" connectionLimit";
+	
+	public static final String CONNECTION_PER_IP_LIMIT_HANDLER ="connectionPerIpLimit";
+	
+	public static final String FRAMER = "framer";
+	
+	public static final String EXECUTION_HANDLER = "executionHandler";
+	
+	public static final String TIMEOUT_HANDLER = "timeoutHandler";
+	
+	public static final String CORE_HANDLER = "coreHandler";
+
+	public static final String CHUNK_HANDLER = "chunkHandler";
+
+
+}

Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyProtocolTransport.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyProtocolTransport.java?rev=1204430&r1=1204429&r2=1204430&view=diff
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyProtocolTransport.java (original)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyProtocolTransport.java Mon Nov 21 10:19:49 2011
@@ -65,7 +65,7 @@ public class NettyProtocolTransport exte
      * @see org.apache.james.protocols.api.ProtocolTransport#isTLSStarted()
      */
     public boolean isTLSStarted() {
-        return channel.getPipeline().get("sslHandler") != null;
+        return channel.getPipeline().get(SslHandler.class) != null;
     }
 
     /**
@@ -113,7 +113,7 @@ public class NettyProtocolTransport exte
         channel.setReadable(false);
         SslHandler filter = new SslHandler(engine);
         filter.getEngine().setUseClientMode(false);
-        channel.getPipeline().addFirst("sslHandler", filter);
+        channel.getPipeline().addFirst(HandlerConstants.SSL_HANDLER, filter);
         channel.setReadable(true);        
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org