Author: norman
Date: Sat Sep 17 12:47:07 2011
New Revision: 1171969

URL: http://svn.apache.org/viewvc?rev=1171969&view=rev
Log:
Refactor smtpserver to for latest protocols refactoring

Modified:
    
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/SMTPServer.java

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=1171969&r1=1171968&r2=1171969&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
 Sat Sep 17 12:47:07 2011
@@ -19,53 +19,33 @@
 package org.apache.james.smtpserver.netty;
 
 import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLEngine;
 
 import org.apache.james.lifecycle.api.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.api.ProtocolSessionFactory;
+import org.apache.james.protocols.impl.BasicChannelUpstreamHandler;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.smtpserver.SMTPConstants;
-import org.jboss.netty.channel.Channel;
-import org.jboss.netty.channel.ChannelFutureListener;
+import org.jboss.netty.channel.ChannelHandler.Sharable;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
-import org.jboss.netty.channel.ExceptionEvent;
-import org.jboss.netty.channel.ChannelHandler.Sharable;
-import org.jboss.netty.handler.codec.frame.TooLongFrameException;
 import org.slf4j.Logger;
 
 /**
  * {@link ChannelUpstreamHandler} which is used by the SMTPServer
  */
 @Sharable
-public class SMTPChannelUpstreamHandler extends 
org.apache.james.protocols.smtp.netty.SMTPChannelUpstreamHandler {
+public class SMTPChannelUpstreamHandler extends BasicChannelUpstreamHandler {
 
 
-    public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger, SSLContext context, String[] 
enabledCipherSuites) {
-        super(chain, conf, logger, context, enabledCipherSuites);
-    }
-    public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger) {
-        super(chain, conf, logger);
+    public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger, SSLContext context, 
String[] enabledCipherSuites) {
+        super(chain, sessionFactory, logger, context, enabledCipherSuites);
     }
-    
-    
-    @Override
-    protected ProtocolSession createSession(ChannelHandlerContext ctx) throws 
Exception {
-        if (context != null) {
-            SSLEngine engine = context.createSSLEngine();
-            if (enabledCipherSuites != null && enabledCipherSuites.length > 0) 
{
-                engine.setEnabledCipherSuites(enabledCipherSuites);
-            }
-            return new SMTPNettySession(conf, logger, ctx.getChannel(), 
engine);
-        } else {
-            return new SMTPNettySession(conf, logger, ctx.getChannel());
-        }
+
+    public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger) {
+        super(chain, sessionFactory, logger);
     }
+
     /**
      * Cleanup temporary files
      * 

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=1171969&r1=1171968&r2=1171969&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
 Sat Sep 17 12:47:07 2011
@@ -18,35 +18,26 @@
  ****************************************************************/
 package org.apache.james.smtpserver.netty;
 
-import javax.net.ssl.SSLEngine;
-
+import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPSession;
 import 
org.apache.james.smtpserver.netty.SMTPServer.SMTPHandlerConfigurationDataImpl;
-import org.jboss.netty.channel.Channel;
 import org.slf4j.Logger;
 
 /**
  * {@link SMTPSession} implementation for use with Netty
  */
-public class SMTPNettySession extends 
org.apache.james.protocols.smtp.netty.SMTPNettySession {
+public class SMTPNettySession extends 
org.apache.james.protocols.smtp.SMTPSessionImpl {
    
     private SMTPConfiguration theConfigData;
 
 
-    public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, 
Channel channel, SSLEngine engine) {
-        super(theConfigData, logger, channel, engine);
-        this.theConfigData = theConfigData;
-    }
-
-
-    public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, 
Channel channel) {
-        super(theConfigData, logger, channel);
+    public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, 
ProtocolTransport transport) {
+        super(theConfigData, logger, transport);
         this.theConfigData = theConfigData;
     }
 
-
-    public boolean verifyIdentity() {
+       public boolean verifyIdentity() {
         if (theConfigData instanceof SMTPHandlerConfigurationDataImpl) {
             return ((SMTPHandlerConfigurationDataImpl) 
theConfigData).verifyIdentity();
         } else {

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java?rev=1171969&r1=1171968&r2=1171969&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
 Sat Sep 17 12:47:07 2011
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.james.smtpserver.netty;
 
+import java.nio.charset.Charset;
+
 import javax.annotation.Resource;
 
 import org.apache.commons.configuration.ConfigurationException;
@@ -25,9 +27,14 @@ import org.apache.commons.configuration.
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.library.netmatcher.NetMatcher;
 import org.apache.james.protocols.api.HandlersPackage;
+import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.api.ProtocolSessionFactory;
+import org.apache.james.protocols.api.ProtocolTransport;
+import org.apache.james.protocols.impl.ResponseEncoder;
 import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
-import org.apache.james.protocols.smtp.netty.SMTPResponseEncoder;
+import org.apache.james.protocols.smtp.SMTPProtocol;
+import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.smtpserver.CoreCmdHandlerLoader;
 import org.apache.james.smtpserver.jmx.JMXHandlersLoader;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
@@ -87,7 +94,7 @@ public class SMTPServer extends Abstract
     private DNSService dns;
     private String authorizedAddresses;
 
-    private final static SMTPResponseEncoder SMTP_RESPONSE_ENCODER = new 
SMTPResponseEncoder();
+    private final static ResponseEncoder SMTP_RESPONSE_ENCODER = new 
ResponseEncoder(SMTPResponse.class, Charset.forName("US-ASCII"));
     
     private SMTPChannelUpstreamHandler coreHandler;
 
@@ -108,7 +115,21 @@ public class SMTPServer extends Abstract
             }
             authorizedNetworks = new NetMatcher(networks, dns);
         }
-        coreHandler = new 
SMTPChannelUpstreamHandler(getProtocolHandlerChain(), theConfigData, 
getLogger(), getSSLContext(), getEnabledCipherSuites());
+        SMTPProtocol transport = new SMTPProtocol(getProtocolHandlerChain(), 
theConfigData) {
+
+            @Override
+            public ProtocolSessionFactory getProtocolSessionFactory() {
+                return new ProtocolSessionFactory() {
+                    
+                    @Override
+                    public ProtocolSession newSession(ProtocolTransport 
transport) {
+                        return new SMTPNettySession(theConfigData, 
getLogger(), transport);
+                    }
+                };
+            }
+            
+        };
+        coreHandler = new 
SMTPChannelUpstreamHandler(getProtocolHandlerChain(), 
transport.getProtocolSessionFactory(), getLogger(), getSSLContext(), 
getEnabledCipherSuites());
         
     }
 



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

Reply via email to