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 2010/06/09 14:01:50 UTC

svn commit: r952970 - in /james/server/trunk: ./ imapserver/src/main/java/org/apache/james/imapserver/netty/ netty-socket/ netty-socket/src/main/java/org/apache/james/socket/netty/ netty-socket/src/main/java/org/jboss/netty/handler/connection/ pop3serv...

Author: norman
Date: Wed Jun  9 12:01:49 2010
New Revision: 952970

URL: http://svn.apache.org/viewvc?rev=952970&view=rev
Log:
Reuse code from protocols-impl 

Added:
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractConfigurableAsyncServer.java
      - copied, changed from r952106, james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractAsyncServer.java
Removed:
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractAsyncServer.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractChannelPipelineFactory.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractChannelUpstreamHandler.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractNettySession.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractResponseEncoder.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractSSLAwareChannelPipelineFactory.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/ChannelAttributeSupport.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/LineHandlerUpstreamHandler.java
    james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/TimeoutHandler.java
    james/server/trunk/netty-socket/src/main/java/org/jboss/netty/handler/connection/
    james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mina/
    james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/mina/
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/mina/
Modified:
    james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NioImapServer.java
    james/server/trunk/netty-socket/pom.xml
    james/server/trunk/pom.xml
    james/server/trunk/pop3server/pom.xml
    james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/NioPOP3Server.java
    james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java
    james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3NettySession.java
    james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java
    james/server/trunk/remotemanager/pom.xml
    james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NettyRemoteManagerSession.java
    james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NioRemoteManager.java
    james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerChannelUpstreamHandler.java
    james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerResponseEncoder.java
    james/server/trunk/smtpserver/pom.xml
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
    james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPResponseEncoder.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/NioSMTPServerTest.java

Modified: james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NioImapServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NioImapServer.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NioImapServer.java (original)
+++ james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NioImapServer.java Wed Jun  9 12:01:49 2010
@@ -29,7 +29,7 @@ import org.apache.james.imap.api.process
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.encode.ImapEncoder;
 import org.apache.james.imap.main.ImapRequestStreamHandler;
-import org.apache.james.socket.netty.AbstractAsyncServer;
+import org.apache.james.socket.netty.AbstractConfigurableAsyncServer;
 import org.jboss.netty.channel.ChannelPipeline;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.handler.connection.ConnectionLimitUpstreamHandler;
@@ -40,7 +40,7 @@ import org.jboss.netty.handler.ssl.SslHa
  * NIO IMAP Server which use Netty
  *
  */
-public class NioImapServer extends AbstractAsyncServer implements ImapConstants{
+public class NioImapServer extends AbstractConfigurableAsyncServer implements ImapConstants{
 
     private static final String softwaretype = "JAMES "+VERSION+" Server "; //+ Constants.SOFTWARE_VERSION;
 

Modified: james/server/trunk/netty-socket/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/netty-socket/pom.xml?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/netty-socket/pom.xml (original)
+++ james/server/trunk/netty-socket/pom.xml Wed Jun  9 12:01:49 2010
@@ -44,6 +44,10 @@
       <artifactId>protocols-api</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.james.protocols</groupId>
+      <artifactId>protocols-impl</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.james</groupId>
       <artifactId>james-server-core-api</artifactId>
     </dependency>

Copied: james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractConfigurableAsyncServer.java (from r952106, james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractAsyncServer.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractConfigurableAsyncServer.java?p2=james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractConfigurableAsyncServer.java&p1=james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractAsyncServer.java&r1=952106&r2=952970&rev=952970&view=diff
==============================================================================
--- james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractAsyncServer.java (original)
+++ james/server/trunk/netty-socket/src/main/java/org/apache/james/socket/netty/AbstractConfigurableAsyncServer.java Wed Jun  9 12:01:49 2010
@@ -20,10 +20,8 @@ package org.apache.james.socket.netty;
 
 import java.io.FileInputStream;
 import java.net.InetAddress;
-import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.security.KeyStore;
-import java.util.concurrent.Executors;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
@@ -38,24 +36,16 @@ import org.apache.commons.logging.Log;
 import org.apache.james.api.dnsservice.DNSService;
 import org.apache.james.lifecycle.Configurable;
 import org.apache.james.lifecycle.LogEnabled;
+import org.apache.james.protocols.impl.AbstractAsyncServer;
 import org.apache.james.services.FileSystem;
 import org.apache.james.services.MailServer;
-import org.jboss.netty.bootstrap.ServerBootstrap;
-import org.jboss.netty.channel.Channel;
-import org.jboss.netty.channel.ChannelHandlerContext;
-import org.jboss.netty.channel.ChannelPipelineCoverage;
-import org.jboss.netty.channel.ChannelPipelineFactory;
-import org.jboss.netty.channel.ChannelStateEvent;
-import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
-import org.jboss.netty.channel.group.ChannelGroup;
-import org.jboss.netty.channel.group.DefaultChannelGroup;
-import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
+
 
 /**
- * Abstract base class for Servers which want to use async io
+ * Abstract base class for Servers for all James Servers
  *
  */
-public abstract class AbstractAsyncServer implements LogEnabled, Configurable{
+public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServer implements LogEnabled, Configurable{
     /**
      * The default value for the connection backlog.
      */
@@ -99,7 +89,6 @@ public abstract class AbstractAsyncServe
     private boolean useStartTLS;
     private boolean useSSL;
 
-
     protected int connectionLimit;
 
     private String helloName;
@@ -108,19 +97,8 @@ public abstract class AbstractAsyncServe
 
     private String secret;
     
-    private int backlog;
-    
-    private InetAddress bindTo;
-
-    private int port;
-
-    private int timeout;
-
     private SSLContext context;
 
-    private ServerBootstrap bootstrap;
-
-    private ChannelGroup channels = new DefaultChannelGroup();
     @Resource(name="dnsserver")
     public final void setDNSService(DNSService dns) {
         this.dns = dns;
@@ -159,15 +137,7 @@ public abstract class AbstractAsyncServe
           logger.info(getServiceType() + " disabled by configuration");
           return;
         }
-
-        
-        /*
-        boolean streamdump=handlerConfiguration.getChild("streamdump").getAttributeAsBoolean("enabled", false);
-        String streamdumpDir=streamdump ? handlerConfiguration.getChild("streamdump").getAttribute("directory", null) : null;
-        setStreamDumpDir(streamdumpDir);
-        */
-
-        port = config.getInt("port",getDefaultPort());
+        setPort(config.getInt("port", getDefaultPort()));
 
      
 
@@ -177,13 +147,14 @@ public abstract class AbstractAsyncServe
         try {
             final String bindAddress = config.getString("bind",null);
             if( null != bindAddress ) {
-                bindTo = InetAddress.getByName(bindAddress);
+                String bindTo = InetAddress.getByName(bindAddress).getHostName();
                 infoBuffer =
                     new StringBuilder(64)
                             .append(getServiceType())
                             .append(" bound to: ")
                             .append(bindTo);
                 logger.info(infoBuffer.toString());
+                setIP(bindTo);
             }
         }
         catch( final UnknownHostException unhe ) {
@@ -192,22 +163,22 @@ public abstract class AbstractAsyncServe
 
         configureHelloName(handlerConfiguration);
 
-        timeout = handlerConfiguration.getInt(TIMEOUT_NAME,DEFAULT_TIMEOUT);
+        setTimeout(handlerConfiguration.getInt(TIMEOUT_NAME,DEFAULT_TIMEOUT));
 
         infoBuffer =
             new StringBuilder(64)
                     .append(getServiceType())
                     .append(" handler connection timeout is: ")
-                    .append(timeout);
+                    .append(getTimeout());
         logger.info(infoBuffer.toString());
 
-        backlog = config.getInt(BACKLOG_NAME,DEFAULT_BACKLOG);
+        setBacklog(config.getInt(BACKLOG_NAME,DEFAULT_BACKLOG));
 
         infoBuffer =
                     new StringBuilder(64)
                     .append(getServiceType())
                     .append(" connection backlog is: ")
-                    .append(backlog);
+                    .append(getBacklog());
         logger.info(infoBuffer.toString());
 
         
@@ -276,28 +247,14 @@ public abstract class AbstractAsyncServe
             preInit();
             buildSSLContext();
 
-            bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(
-                                                   Executors.newCachedThreadPool(),
-                                           Executors.newCachedThreadPool()));
-            // Configure the pipeline factory.
-            ChannelPipelineFactory factory = createPipelineFactory();
-            factory.getPipeline().addFirst("channelGroupHandler", new ChannelGroupHandler());
-            bootstrap.setPipelineFactory(createPipelineFactory());
-         
-            // Bind and start to accept incoming connections.
-            bootstrap.setOption("backlog",backlog);
-            bootstrap.setOption("reuseAddress",true);
-
-            Channel serverChannel = bootstrap.bind(new InetSocketAddress(bindTo,port));
-            channels.add(serverChannel);
+            start();
         }
     }
 
     @PreDestroy
     public final void destroy() {
         getLogger().info("Dispose " + getServiceType());
-        channels.close().awaitUninterruptibly();
-        bootstrap.releaseExternalResources();
+        super.stop();
     }
     
     
@@ -378,16 +335,7 @@ public abstract class AbstractAsyncServe
                     .append(helloName);
         getLogger().info(infoBuffer.toString());
     }
-    
-    /**
-     * Return the port this server will listen on
-     * 
-     * @return port
-     */
-    public int getPort() {
-        return port;
-    }
-    
+
     /**
      * Return the logger
      * 
@@ -458,21 +406,6 @@ public abstract class AbstractAsyncServe
         }
     }
    
-    
-    
-    /**
-     * Createh IoHandler to use by this Server implementation
-     * 
-     * @return ioHandler
-     */
-    protected abstract ChannelPipelineFactory createPipelineFactory();
-    
-    /**
-     * Return the SslContextFactory which was created for this service. 
-     * 
-     * @return contextFactory
-     */
-    
     /**
      * Return the default port which will get used for this server if non is specify in the configuration
      * 
@@ -487,21 +420,35 @@ public abstract class AbstractAsyncServe
      */
     protected abstract String getServiceType();
     
-    protected int getTimeout() {
-        return timeout;
-    }
     
+    /**
+     * Return the SSLContext to use 
+     * 
+     * @return sslContext
+     */
     protected SSLContext getSSLContext() {
         return context;
     }
-    
-    @ChannelPipelineCoverage("all")
-    private final class ChannelGroupHandler extends SimpleChannelUpstreamHandler {
-        public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) {
-            // Add all open channels to the global group so that they are
-            // closed on shutdown.
-            channels.add(e.getChannel());
-        }
 
+    /**
+     * Return the socket type. The Socket type can be secure or plain
+     * @return
+     */
+    public String getSocketType() {
+        if (isSSLSocket()) {
+            return "secure";
+        }
+        return "plain";
     }
+    
+    /**
+     * Return the network interface on which server is bound. Default is to return
+     * unknown
+     * 
+     * @return interface
+     */
+    public String getNetworkInterface() {
+        return "unkown";
+    }
+    
 }

Modified: james/server/trunk/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/pom.xml?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/pom.xml (original)
+++ james/server/trunk/pom.xml Wed Jun  9 12:01:49 2010
@@ -322,6 +322,12 @@
       <version>${protocols.version}</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.james.protocols</groupId>
+      <artifactId>protocols-impl</artifactId>
+      <version>${protocols.version}</version>
+    </dependency>
+    
+    <dependency>
       <groupId>org.apache.james</groupId>
       <artifactId>james-server-core-api</artifactId>
       <type>test-jar</type>

Modified: james/server/trunk/pop3server/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/pom.xml?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/pop3server/pom.xml (original)
+++ james/server/trunk/pop3server/pom.xml Wed Jun  9 12:01:49 2010
@@ -32,12 +32,10 @@
       <groupId>${javax.mail.groupId}</groupId>
       <artifactId>${javax.mail.artifactId}</artifactId>
     </dependency>
-    <!-- 
     <dependency>
-      <groupId>org.apache.james</groupId>
-      <artifactId>apache-mailet</artifactId>
+      <groupId>org.apache.james.protocols</groupId>
+      <artifactId>protocols-impl</artifactId>
     </dependency>
-    -->
     <dependency>
       <groupId>org.apache.james</groupId>
       <artifactId>james-server-common-util</artifactId>

Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/NioPOP3Server.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/NioPOP3Server.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/NioPOP3Server.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/NioPOP3Server.java Wed Jun  9 12:01:49 2010
@@ -25,8 +25,8 @@ import org.apache.commons.configuration.
 import org.apache.james.pop3server.POP3HandlerConfigurationData;
 import org.apache.james.pop3server.POP3ServerMBean;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
-import org.apache.james.socket.netty.AbstractAsyncServer;
-import org.apache.james.socket.netty.AbstractSSLAwareChannelPipelineFactory;
+import org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory;
+import org.apache.james.socket.netty.AbstractConfigurableAsyncServer;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
@@ -36,7 +36,7 @@ import org.jboss.netty.handler.codec.one
  * 
  *
  */
-public class NioPOP3Server extends AbstractAsyncServer implements POP3ServerMBean{
+public class NioPOP3Server extends AbstractConfigurableAsyncServer implements POP3ServerMBean{
     /**
      * The number of bytes to read before resetting the connection timeout
      * timer. Defaults to 20 KB.
@@ -107,74 +107,40 @@ public class NioPOP3Server extends Abstr
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.apache.james.pop3server.POP3ServerMBean#getNetworkInterface()
-     */
-    public String getNetworkInterface() {
-        return "unkown";
+    @Override
+    protected ChannelPipelineFactory createPipelineFactory() {
+        return new POP3ChannelPipelineFactory(getTimeout(), connectionLimit, connPerIP);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.apache.james.pop3server.POP3ServerMBean#getSocketType()
-     */
-    public String getSocketType() {
-        if (isSSLSocket()) {
-            return "secure";
+    private final class POP3ChannelPipelineFactory extends AbstractSSLAwareChannelPipelineFactory {
+
+        public POP3ChannelPipelineFactory(int timeout, int maxConnections,
+                int maxConnectsPerIp) {
+            super(timeout, maxConnections, maxConnectsPerIp);
         }
-        return "plain";
-    }
 
-    
-    @Override
-    protected ChannelPipelineFactory createPipelineFactory() {
-        return new AbstractSSLAwareChannelPipelineFactory() {
-            
-            @Override
-            protected ChannelUpstreamHandler createHandler() {
-                return new POP3ChannelUpstreamHandler(NioPOP3Server.this.getProtocolHandlerChain(), getPOP3HandlerConfiguration(), getLogger(), getSSLContext());
-            }
-            
-            @Override
-            protected OneToOneEncoder createEncoder() {
-                return new POP3ResponseEncoder();
-            }
-            
-            @Override
-            protected int getTimeout() {
-                return NioPOP3Server.this.getTimeout();
-            }
+        @Override
+        protected SSLContext getSSLContext() {
+            return NioPOP3Server.this.getSSLContext();
 
-            @Override
-            protected SSLContext getSSLContext() {
-                return NioPOP3Server.this.getSSLContext();
-            }
+        }
 
-            @Override
-            protected boolean isSSLSocket() {
-                return NioPOP3Server.this.isSSLSocket();
-            }
+        @Override
+        protected boolean isSSLSocket() {
+            return NioPOP3Server.this.isSSLSocket();
+        }
 
-            @Override
-            protected int getMaxConnections() {
-                return NioPOP3Server.this.connectionLimit;
-            }
+        @Override
+        protected OneToOneEncoder createEncoder() {
+            return new POP3ResponseEncoder();
 
-            @Override
-            protected int getMaxConnectionsPerIP() {
-                return NioPOP3Server.this.connPerIP;
-            }
-        };
-    }
-    
-    protected final ProtocolHandlerChain getProtocolHandlerChain() {
-        return handlerChain;
-    }
-    
-    protected final POP3HandlerConfigurationData getPOP3HandlerConfiguration() {
-        return theConfigData;
+        }
+
+        @Override
+        protected ChannelUpstreamHandler createHandler() {
+            return new POP3ChannelUpstreamHandler(handlerChain, theConfigData, getLogger(), getSSLContext());
+
+        }
+        
     }
 }

Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java Wed Jun  9 12:01:49 2010
@@ -24,7 +24,7 @@ import org.apache.commons.logging.Log;
 import org.apache.james.pop3server.POP3HandlerConfigurationData;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
 import org.apache.james.protocols.api.ProtocolSession;
-import org.apache.james.socket.netty.AbstractChannelUpstreamHandler;
+import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 

Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3NettySession.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3NettySession.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3NettySession.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3NettySession.java Wed Jun  9 12:01:49 2010
@@ -27,14 +27,14 @@ import org.apache.commons.logging.Log;
 import org.apache.james.imap.mailbox.Mailbox;
 import org.apache.james.pop3server.POP3HandlerConfigurationData;
 import org.apache.james.pop3server.POP3Session;
-import org.apache.james.socket.netty.AbstractNettySession;
+import org.apache.james.protocols.impl.AbstractSession;
 import org.jboss.netty.channel.ChannelHandlerContext;
 
 /**
  * {@link POP3Session} implementation which use Netty
  *
  */
-public class POP3NettySession extends AbstractNettySession implements POP3Session {
+public class POP3NettySession extends AbstractSession implements POP3Session {
     private POP3HandlerConfigurationData configData;
 
     private Map<String, Object> state = new HashMap<String, Object>();

Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java Wed Jun  9 12:01:49 2010
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.james.pop3server.POP3Response;
-import org.apache.james.socket.netty.AbstractResponseEncoder;
+import org.apache.james.protocols.impl.AbstractResponseEncoder;
 
 /**
  * {@link AbstractResponseEncoder} implementation which handles {@link POP3Response} messages

Modified: james/server/trunk/remotemanager/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/pom.xml?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/remotemanager/pom.xml (original)
+++ james/server/trunk/remotemanager/pom.xml Wed Jun  9 12:01:49 2010
@@ -78,6 +78,10 @@
       <artifactId>protocols-api</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.james.protocols</groupId>
+      <artifactId>protocols-impl</artifactId>
+    </dependency>
+    <dependency>
       <groupId>javax.annotation</groupId>
       <artifactId>jsr250-api</artifactId>
     </dependency>

Modified: james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NettyRemoteManagerSession.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NettyRemoteManagerSession.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NettyRemoteManagerSession.java (original)
+++ james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NettyRemoteManagerSession.java Wed Jun  9 12:01:49 2010
@@ -27,9 +27,9 @@ import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.james.protocols.api.LineHandler;
 import org.apache.james.protocols.api.Response;
+import org.apache.james.protocols.impl.LineHandlerUpstreamHandler;
 import org.apache.james.remotemanager.RemoteManagerHandlerConfigurationData;
 import org.apache.james.remotemanager.RemoteManagerSession;
-import org.apache.james.socket.netty.LineHandlerUpstreamHandler;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.handler.stream.ChunkedStream;
 

Modified: james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NioRemoteManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NioRemoteManager.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NioRemoteManager.java (original)
+++ james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/NioRemoteManager.java Wed Jun  9 12:01:49 2010
@@ -26,10 +26,10 @@ import java.util.Map;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
+import org.apache.james.protocols.impl.AbstractChannelPipelineFactory;
 import org.apache.james.remotemanager.RemoteManagerHandlerConfigurationData;
 import org.apache.james.remotemanager.RemoteManagerMBean;
-import org.apache.james.socket.netty.AbstractAsyncServer;
-import org.apache.james.socket.netty.AbstractChannelPipelineFactory;
+import org.apache.james.socket.netty.AbstractConfigurableAsyncServer;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
@@ -39,7 +39,7 @@ import org.jboss.netty.handler.codec.one
  * NIO RemoteManager which use Netty
  *
  */
-public class NioRemoteManager extends AbstractAsyncServer implements RemoteManagerMBean{
+public class NioRemoteManager extends AbstractConfigurableAsyncServer implements RemoteManagerMBean{
 
 
     private Map<String,String> adminAccounts = new HashMap<String, String>();
@@ -73,23 +73,6 @@ public class NioRemoteManager extends Ab
         }
     }
 
-  
-    
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.remotemanager.RemoteManagerMBean#getNetworkInterface()
-     */
-    public String getNetworkInterface() {
-        return "unknown";
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.remotemanager.RemoteManagerMBean#getSocketType()
-     */
-    public String getSocketType() {
-        return "plain";
-    }
     
     /**
      * A class to provide RemoteManager handler configuration to the handlers
@@ -126,34 +109,24 @@ public class NioRemoteManager extends Ab
     
     @Override
     protected ChannelPipelineFactory createPipelineFactory() {
-        return new AbstractChannelPipelineFactory() {
-
-            @Override
-            protected OneToOneEncoder createEncoder() {
-                return new RemoteManagerResponseEncoder();
-            }
-
-            @Override
-            protected ChannelUpstreamHandler createHandler() {
-                return new RemoteManagerChannelUpstreamHandler(configData, handlerChain, getLogger());
-            }
-
-            @Override
-            protected int getTimeout() {
-                return NioRemoteManager.this.getTimeout();
-            }
+        return new RemoteManagerChannelPipelineFactory(getTimeout(), connectionLimit, connPerIP);
+    }
+    
+    private final class RemoteManagerChannelPipelineFactory extends AbstractChannelPipelineFactory {
 
-            @Override
-            protected int getMaxConnections() {
-                return NioRemoteManager.this.connectionLimit;
-            }
+        public RemoteManagerChannelPipelineFactory(int timeout,
+                int maxConnections, int maxConnectsPerIp) {
+            super(timeout, maxConnections, maxConnectsPerIp);
+        }
+        @Override
+        protected OneToOneEncoder createEncoder() {
+            return new RemoteManagerResponseEncoder();
+        }
 
-            @Override
-            protected int getMaxConnectionsPerIP() {
-                return NioRemoteManager.this.connPerIP;
-            }
-            
-        };
+        @Override
+        protected ChannelUpstreamHandler createHandler() {
+            return new RemoteManagerChannelUpstreamHandler(configData, handlerChain, getLogger());
+        }
+        
     }
-
 }

Modified: james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerChannelUpstreamHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerChannelUpstreamHandler.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerChannelUpstreamHandler.java (original)
+++ james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerChannelUpstreamHandler.java Wed Jun  9 12:01:49 2010
@@ -22,9 +22,9 @@ package org.apache.james.remotemanager.n
 import org.apache.commons.logging.Log;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
 import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler;
 import org.apache.james.remotemanager.RemoteManagerHandlerConfigurationData;
 import org.apache.james.remotemanager.RemoteManagerSession;
-import org.apache.james.socket.netty.AbstractChannelUpstreamHandler;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 

Modified: james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerResponseEncoder.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerResponseEncoder.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerResponseEncoder.java (original)
+++ james/server/trunk/remotemanager/src/main/java/org/apache/james/remotemanager/netty/RemoteManagerResponseEncoder.java Wed Jun  9 12:01:49 2010
@@ -22,8 +22,8 @@ package org.apache.james.remotemanager.n
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.james.protocols.impl.AbstractResponseEncoder;
 import org.apache.james.remotemanager.RemoteManagerResponse;
-import org.apache.james.socket.netty.AbstractResponseEncoder;
 
 /**
  * {@link AbstractResponseEncoder} implementation which encode {@link RemoteManagerResponse} objects

Modified: james/server/trunk/smtpserver/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/pom.xml?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/smtpserver/pom.xml (original)
+++ james/server/trunk/smtpserver/pom.xml Wed Jun  9 12:01:49 2010
@@ -104,6 +104,10 @@
     <dependency>
       <groupId>javax.annotation</groupId>
       <artifactId>jsr250-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.james.protocols</groupId>
+      <artifactId>protocols-impl</artifactId>
     </dependency>    
     <dependency>
       <artifactId>dnsjava</artifactId>

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java Wed Jun  9 12:01:49 2010
@@ -24,10 +24,10 @@ import org.apache.commons.configuration.
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.api.dnsservice.util.NetMatcher;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
+import org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPServerMBean;
-import org.apache.james.socket.netty.AbstractAsyncServer;
-import org.apache.james.socket.netty.AbstractSSLAwareChannelPipelineFactory;
+import org.apache.james.socket.netty.AbstractConfigurableAsyncServer;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
@@ -37,7 +37,7 @@ import org.jboss.netty.handler.codec.one
  * 
  *
  */
-public class NioSMTPServer extends AbstractAsyncServer implements SMTPServerMBean{
+public class NioSMTPServer extends AbstractConfigurableAsyncServer implements SMTPServerMBean{
 
     
     /**
@@ -88,8 +88,7 @@ public class NioSMTPServer extends Abstr
     /**
      * The configuration data to be passed to the handler
      */
-    private SMTPConfiguration theConfigData
-    = new SMTPHandlerConfigurationDataImpl();
+    private final SMTPConfiguration theConfigData = new SMTPHandlerConfigurationDataImpl();
 
     private boolean addressBracketsEnforcement = true;
 
@@ -175,7 +174,7 @@ public class NioSMTPServer extends Abstr
     }
 
     /**
-     * @see org.apache.james.socket.mina.AbstractAsyncServer#getDefaultPort()
+     * @see org.apache.james.socket.AbstractConfigurableAsyncServer.AbstractAsyncServer#getDefaultPort()
      */
     protected int getDefaultPort() {
         return 25;
@@ -273,69 +272,38 @@ public class NioSMTPServer extends Abstr
 
     }
     
-    /**
-     * (non-Javadoc)
-     * @see org.apache.james.protocols.smtp.SMTPServerMBean#getNetworkInterface()
-     */
-    public String getNetworkInterface() {
-        return "unkown";
-    }
-
-    /**
-     * (non-Javadoc)
-     * @see org.apache.james.protocols.smtp.SMTPServerMBean#getSocketType()
-     */
-    public String getSocketType() {
-        return "plain";
-    }
-
-    
     @Override
     protected ChannelPipelineFactory createPipelineFactory() {
-        return new AbstractSSLAwareChannelPipelineFactory() {
-            
-            @Override
-            protected ChannelUpstreamHandler createHandler() {
-                return new SMTPChannelUpstreamHandler(NioSMTPServer.this.getProtocolHandlerChain(), getSMTPConfiguration(),getLogger(), getSSLContext());
-            }
-            
-            @Override
-            protected OneToOneEncoder createEncoder() {
-                return new SMTPResponseEncoder();
-            }
+        return new SMTPChannelPipelineFactory(getTimeout(), connectionLimit, connPerIP);
+    }
+    
+    
+    private final class SMTPChannelPipelineFactory extends AbstractSSLAwareChannelPipelineFactory {
 
-            @Override
-            protected int getTimeout() {
-                return NioSMTPServer.this.getTimeout();
-            }
+        public SMTPChannelPipelineFactory(int timeout, int maxConnections,
+                int maxConnectsPerIp) {
+            super(timeout, maxConnections, maxConnectsPerIp);
+        }
 
-            @Override
-            protected SSLContext getSSLContext() {
-                return NioSMTPServer.this.getSSLContext();
-            }
+        @Override
+        protected SSLContext getSSLContext() {
+            return NioSMTPServer.this.getSSLContext();
+        }
 
-            @Override
-            protected boolean isSSLSocket() {
-                return NioSMTPServer.this.isSSLSocket();
-            }
+        @Override
+        protected boolean isSSLSocket() {
+            return  NioSMTPServer.this.isSSLSocket();
+        }
 
-            @Override
-            protected int getMaxConnections() {
-                return NioSMTPServer.this.connectionLimit;
-            }
+        @Override
+        protected OneToOneEncoder createEncoder() {
+            return new SMTPResponseEncoder();
+        }
 
-            @Override
-            protected int getMaxConnectionsPerIP() {
-                return NioSMTPServer.this.connPerIP;
-            }
-        };
-    }
-    
-    protected final ProtocolHandlerChain getProtocolHandlerChain() {
-        return handlerChain;
-    }
-    
-    protected final SMTPConfiguration getSMTPConfiguration() {
-        return theConfigData;
+        @Override
+        protected ChannelUpstreamHandler createHandler() {
+            return new SMTPChannelUpstreamHandler(handlerChain, theConfigData, getLogger(), getSSLContext());
+        }
+        
     }
 }

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java Wed Jun  9 12:01:49 2010
@@ -24,12 +24,12 @@ import org.apache.commons.logging.Log;
 import org.apache.james.lifecycle.LifecycleUtil;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
 import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.smtpserver.SMTPConstants;
-import org.apache.james.socket.netty.AbstractChannelUpstreamHandler;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelStateEvent;
@@ -97,7 +97,7 @@ public class SMTPChannelUpstreamHandler 
      * 
      * @param channel
      */
-    private void cleanup(Channel channel) {
+    protected void cleanup(Channel channel) {
         // Make sure we dispose everything on exit on session close
         SMTPSession smtpSession = (SMTPSession) attributes.get(channel);
         
@@ -106,6 +106,8 @@ public class SMTPChannelUpstreamHandler 
             LifecycleUtil.dispose(smtpSession.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE));
             LifecycleUtil.dispose(smtpSession.getState().get(SMTPConstants.DATA_MIMEMESSAGE_OUTPUTSTREAM));
         }
+        
+        super.cleanup(channel);
     }
     
 }

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java Wed Jun  9 12:01:49 2010
@@ -27,17 +27,17 @@ import javax.net.ssl.SSLEngine;
 
 import org.apache.commons.logging.Log;
 import org.apache.james.protocols.api.LineHandler;
+import org.apache.james.protocols.impl.AbstractSession;
+import org.apache.james.protocols.impl.LineHandlerUpstreamHandler;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.apache.james.socket.netty.AbstractNettySession;
-import org.apache.james.socket.netty.LineHandlerUpstreamHandler;
 import org.jboss.netty.channel.ChannelHandlerContext;
 
 /**
  * {@link SMTPSession} implementation for use with Netty
  *
  */
-public class SMTPNettySession extends AbstractNettySession implements SMTPSession{
+public class SMTPNettySession extends AbstractSession implements SMTPSession{
     public final static String SMTP_SESSION = "SMTP_SESSION";
     
     private static Random random = new Random();

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPResponseEncoder.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPResponseEncoder.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPResponseEncoder.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPResponseEncoder.java Wed Jun  9 12:01:49 2010
@@ -21,8 +21,8 @@ package org.apache.james.smtpserver.nett
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.james.protocols.impl.AbstractResponseEncoder;
 import org.apache.james.protocols.smtp.SMTPResponse;
-import org.apache.james.socket.netty.AbstractResponseEncoder;
 
 /**
  * {@link AbstractResponseEncoder} which encode {@link SMTPResponse} objects

Modified: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/NioSMTPServerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/NioSMTPServerTest.java?rev=952970&r1=952969&r2=952970&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/NioSMTPServerTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/NioSMTPServerTest.java Wed Jun  9 12:01:49 2010
@@ -21,8 +21,8 @@ package org.apache.james.smtpserver;
 
 import org.apache.commons.logging.impl.SimpleLog;
 import org.apache.commons.net.smtp.SMTPClient;
+import org.apache.james.protocols.impl.AbstractChannelPipelineFactory;
 import org.apache.james.smtpserver.netty.NioSMTPServer;
-import org.apache.james.socket.netty.AbstractChannelPipelineFactory;
 
 public class NioSMTPServerTest extends AbstractSMTPServerTest{
 



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