Author: norman
Date: Fri Sep 16 11:27:54 2011
New Revision: 1171510

URL: http://svn.apache.org/viewvc?rev=1171510&view=rev
Log:
Reuse protocols-smtp-netty jar

Modified:
    james/server/trunk/pom.xml
    
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
    
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java
    james/server/trunk/smtpserver/pom.xml
    
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/main/java/org/apache/james/smtpserver/netty/SMTPServer.java

Modified: james/server/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pom.xml?rev=1171510&r1=1171509&r2=1171510&view=diff
==============================================================================
--- james/server/trunk/pom.xml (original)
+++ james/server/trunk/pom.xml Fri Sep 16 11:27:54 2011
@@ -632,7 +632,11 @@
       <artifactId>protocols-smtp</artifactId>
       <version>${protocols.version}</version>
     </dependency>
-
+    <dependency>
+      <groupId>org.apache.james.protocols</groupId>
+      <artifactId>protocols-smtp-netty</artifactId>
+      <version>${protocols.version}</version>
+    </dependency>
 
     <dependency>
       <groupId>org.apache.james</groupId>

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java?rev=1171510&r1=1171509&r2=1171510&view=diff
==============================================================================
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
 Fri Sep 16 11:27:54 2011
@@ -239,8 +239,8 @@ public abstract class AbstractConfigurab
     @PostConstruct
     public final void init() throws Exception {
         if (isEnabled()) {
-            preInit();
             buildSSLContext();
+            preInit();
             executionHandler = createExecutionHander();
             bind();
             
@@ -378,6 +378,8 @@ public abstract class AbstractConfigurab
      */
 
     private void buildSSLContext() throws Exception {
+        System.out.println(useStartTLS);
+
         if (useStartTLS || useSSL) {
             FileInputStream fis = null;
             try {
@@ -575,7 +577,7 @@ public abstract class AbstractConfigurab
     
     @Override
     protected ChannelPipelineFactory createPipelineFactory(ChannelGroup group) 
{
-        return new AbstractExecutorAwareChannelPipelineFactory(getTimeout(), 
connectionLimit, connPerIP, group, enabledCipherSuites) {
+        return new AbstractExecutorAwareChannelPipelineFactory(getTimeout(), 
connectionLimit, connPerIP, group, enabledCipherSuites, getExecutionHandler()) {
             @Override
             protected SSLContext getSSLContext() {
                 return AbstractConfigurableAsyncServer.this.getSSLContext();
@@ -604,11 +606,6 @@ public abstract class AbstractConfigurab
                 return 
AbstractConfigurableAsyncServer.this.getConnectionCountHandler();
             }
 
-            @Override
-            protected ExecutionHandler getExecutionHandler() {
-                return 
AbstractConfigurableAsyncServer.this.getExecutionHandler();
-            }
-
         };
     }
     

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java?rev=1171510&r1=1171509&r2=1171510&view=diff
==============================================================================
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractExecutorAwareChannelPipelineFactory.java
 Fri Sep 16 11:27:54 2011
@@ -31,30 +31,20 @@ import org.jboss.netty.handler.execution
 public abstract class AbstractExecutorAwareChannelPipelineFactory extends 
AbstractSSLAwareChannelPipelineFactory{
 
 
-    public AbstractExecutorAwareChannelPipelineFactory(int timeout, int 
maxConnections, int maxConnectsPerIp, ChannelGroup group) {
-        super(timeout, maxConnections, maxConnectsPerIp, group);
+    public AbstractExecutorAwareChannelPipelineFactory(int timeout, int 
maxConnections, int maxConnectsPerIp, ChannelGroup group, ExecutionHandler 
eHandler) {
+        super(timeout, maxConnections, maxConnectsPerIp, group, eHandler);
     }
-    public AbstractExecutorAwareChannelPipelineFactory(int timeout, int 
maxConnections, int maxConnectsPerIp, ChannelGroup group, String[] 
enabledCipherSuites) {
-        super(timeout, maxConnections, maxConnectsPerIp, group, 
enabledCipherSuites);
+    public AbstractExecutorAwareChannelPipelineFactory(int timeout, int 
maxConnections, int maxConnectsPerIp, ChannelGroup group, String[] 
enabledCipherSuites, ExecutionHandler eHandler) {
+        super(timeout, maxConnections, maxConnectsPerIp, group, 
enabledCipherSuites, eHandler);
     }
     @Override
     public ChannelPipeline getPipeline() throws Exception {
         ChannelPipeline pipeLine = super.getPipeline();
         pipeLine.addBefore("coreHandler", "countHandler", 
getConnectionCountHandler());
-        ExecutionHandler ehandler = getExecutionHandler();
-        if (ehandler != null) {
-            pipeLine.addBefore("coreHandler", "executionHandler", ehandler);
-        }
+        
         return pipeLine;
     }
 
-    /**
-     * Return the {@link ExecutionHandler} to use or null if none
-     * should get used
-     * 
-     * @return eHandler
-     */
-    protected abstract ExecutionHandler getExecutionHandler();
     
     /**
      * REturn the {@link ConnectionCountHandler} to use

Modified: james/server/trunk/smtpserver/pom.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/pom.xml?rev=1171510&r1=1171509&r2=1171510&view=diff
==============================================================================
--- james/server/trunk/smtpserver/pom.xml (original)
+++ james/server/trunk/smtpserver/pom.xml Fri Sep 16 11:27:54 2011
@@ -89,7 +89,12 @@
     <dependency>
       <groupId>org.apache.james.protocols</groupId>
       <artifactId>protocols-impl</artifactId>
-    </dependency>   
+    </dependency>
+    <dependency>
+      <groupId>org.apache.james.protocols</groupId>
+      <artifactId>protocols-smtp-netty</artifactId>
+      <version>${protocols.version}</version>
+    </dependency>
     <dependency>
       <groupId>org.apache.james.jspf</groupId>
       <artifactId>apache-jspf-resolver</artifactId>

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=1171510&r1=1171509&r2=1171510&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
 Fri Sep 16 11:27:54 2011
@@ -43,24 +43,17 @@ import org.slf4j.Logger;
  * {@link ChannelUpstreamHandler} which is used by the SMTPServer
  */
 @Sharable
-public class SMTPChannelUpstreamHandler extends AbstractChannelUpstreamHandler 
{
-    private final Logger logger;
-    private final SMTPConfiguration conf;
-    private final SSLContext context;
-    private String[] enabledCipherSuites;
+public class SMTPChannelUpstreamHandler extends 
org.apache.james.protocols.smtp.netty.SMTPChannelUpstreamHandler {
 
-    public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger) {
-        this(chain, conf, logger, null, null);
-    }
 
     public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger, SSLContext context, String[] 
enabledCipherSuites) {
-        super(chain);
-        this.conf = conf;
-        this.logger = logger;
-        this.context = context;
-        this.enabledCipherSuites = enabledCipherSuites;
+        super(chain, conf, logger, context, enabledCipherSuites);
     }
-
+    public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger) {
+        super(chain, conf, logger);
+    }
+    
+    
     @Override
     protected ProtocolSession createSession(ChannelHandlerContext ctx) throws 
Exception {
         if (context != null) {
@@ -73,26 +66,6 @@ public class SMTPChannelUpstreamHandler 
             return new SMTPNettySession(conf, logger, ctx.getChannel());
         }
     }
-
-    @Override
-    public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) 
throws Exception {
-        Channel channel = ctx.getChannel();
-        if (e.getCause() instanceof TooLongFrameException) {
-            ctx.getChannel().write(new 
SMTPResponse(SMTPRetCode.SYNTAX_ERROR_COMMAND_UNRECOGNIZED, "Line length 
exceeded. See RFC 2821 #4.5.3.1."));
-        } else {
-            if (channel.isConnected()) {
-                ctx.getChannel().write(new 
SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unable to process 
request")).addListener(ChannelFutureListener.CLOSE);
-            }
-            SMTPSession smtpSession = (SMTPSession) ctx.getAttachment();
-            if (smtpSession != null) {
-                smtpSession.getLogger().debug("Unable to process request", 
e.getCause());
-            } else {
-                logger.debug("Unable to process request", e.getCause());
-            }
-            cleanup(ctx);            
-        }
-    }
-
     /**
      * 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=1171510&r1=1171509&r2=1171510&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
 Fri Sep 16 11:27:54 2011
@@ -18,15 +18,8 @@
  ****************************************************************/
 package org.apache.james.smtpserver.netty;
 
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
 import javax.net.ssl.SSLEngine;
 
-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.smtpserver.netty.SMTPServer.SMTPHandlerConfigurationDataImpl;
@@ -36,175 +29,22 @@ import org.slf4j.Logger;
 /**
  * {@link SMTPSession} implementation for use with Netty
  */
-public class SMTPNettySession extends AbstractSession implements SMTPSession {
-    public final static String SMTP_SESSION = "SMTP_SESSION";
-
-    private boolean relayingAllowed;
-
-    private Map<String, Object> connectionState;
-
+public class SMTPNettySession extends 
org.apache.james.protocols.smtp.netty.SMTPNettySession {
+   
     private SMTPConfiguration theConfigData;
 
-    private int lineHandlerCount = 0;
 
     public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, 
Channel channel, SSLEngine engine) {
-        super(logger, channel, engine);
+        super(theConfigData, logger, channel, engine);
         this.theConfigData = theConfigData;
-        connectionState = new HashMap<String, Object>();
-
-        relayingAllowed = 
theConfigData.isRelayingAllowed(getRemoteIPAddress());
-    }
-
-    public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, 
Channel channel) {
-        this(theConfigData, logger, channel, null);
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#getConnectionState()
-     */
-    public Map<String, Object> getConnectionState() {
-        return connectionState;
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#getState()
-     */
-    @SuppressWarnings("unchecked")
-    public Map<String, Object> getState() {
-        Map<String, Object> res = (Map<String, Object>) 
getConnectionState().get(SMTPSession.SESSION_STATE_MAP);
-        if (res == null) {
-            res = new HashMap<String, Object>();
-            getConnectionState().put(SMTPSession.SESSION_STATE_MAP, res);
-        }
-        return res;
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#isRelayingAllowed()
-     */
-    public boolean isRelayingAllowed() {
-        return relayingAllowed;
     }
 
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#resetState()
-     */
-    public void resetState() {
-        // remember the ehlo mode between resets
-        Object currentHeloMode = getState().get(CURRENT_HELO_MODE);
-
-        getState().clear();
-
-        // start again with the old helo mode
-        if (currentHeloMode != null) {
-            getState().put(CURRENT_HELO_MODE, currentHeloMode);
-        }
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#popLineHandler()
-     */
-    public void popLineHandler() {
-        if (lineHandlerCount > 0) {
-            getChannel().getPipeline().remove("lineHandler" + 
lineHandlerCount);
-            lineHandlerCount--;
-        }
-    }
-
-    /**
-     * @see 
org.apache.james.protocols.smtp.SMTPSession#pushLineHandler(org.apache.james.smtpserver.protocol.LineHandler)
-     */
-    public void pushLineHandler(LineHandler<SMTPSession> 
overrideCommandHandler) {
-        lineHandlerCount++;
-        // Add the linehandler in front of the coreHandler so we can be sure 
-        // it is executed with the same ExecutorHandler as the coreHandler (if 
one exist)
-        // 
-        // See JAMES-1277
-        getChannel().getPipeline().addBefore("coreHandler", "lineHandler" + 
lineHandlerCount, new LineHandlerUpstreamHandler<SMTPSession>(this, 
overrideCommandHandler));
-    }
 
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#getHelloName()
-     */
-    public String getHelloName() {
-        return theConfigData.getHelloName();
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#getMaxMessageSize()
-     */
-    public long getMaxMessageSize() {
-        return theConfigData.getMaxMessageSize();
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#getRcptCount()
-     */
-    @SuppressWarnings("unchecked")
-    public int getRcptCount() {
-        int count = 0;
-
-        // check if the key exists
-        if (getState().get(SMTPSession.RCPT_LIST) != null) {
-            count = ((Collection) 
getState().get(SMTPSession.RCPT_LIST)).size();
-        }
-
-        return count;
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#getSMTPGreeting()
-     */
-    public String getSMTPGreeting() {
-        return theConfigData.getSMTPGreeting();
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#isAuthSupported()
-     */
-    public boolean isAuthSupported() {
-        return 
theConfigData.isAuthRequired(socketAddress.getAddress().getHostAddress());
-    }
-
-    /**
-     * @see 
org.apache.james.protocols.smtp.SMTPSession#setRelayingAllowed(boolean)
-     */
-    public void setRelayingAllowed(boolean relayingAllowed) {
-        this.relayingAllowed = relayingAllowed;
-    }
-
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#sleep(long)
-     */
-    public void sleep(long ms) {
-        // session.getFilterChain().addAfter("connectionFilter",
-        // "tarpitFilter",new TarpitFilter(ms));
-    }
-
-    /**
-     * @see 
org.apache.james.protocols.smtp.SMTPSession#useAddressBracketsEnforcement()
-     */
-    public boolean useAddressBracketsEnforcement() {
-        return theConfigData.useAddressBracketsEnforcement();
-    }
-
-    /**
-     * @see 
org.apache.james.protocols.smtp.SMTPSession#useHeloEhloEnforcement()
-     */
-    public boolean useHeloEhloEnforcement() {
-        return theConfigData.useHeloEhloEnforcement();
+    public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, 
Channel channel) {
+        super(theConfigData, logger, channel);
+        this.theConfigData = theConfigData;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.james.protocols.smtp.SMTPSession#getPushedLineHandlerCount()
-     */
-    public int getPushedLineHandlerCount() {
-        return lineHandlerCount;
-    }
-    
 
     public boolean verifyIdentity() {
         if (theConfigData instanceof SMTPHandlerConfigurationDataImpl) {

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=1171510&r1=1171509&r2=1171510&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
 Fri Sep 16 11:27:54 2011
@@ -27,6 +27,7 @@ import org.apache.james.dnsservice.libra
 import org.apache.james.protocols.api.HandlersPackage;
 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.smtpserver.CoreCmdHandlerLoader;
 import org.apache.james.smtpserver.jmx.JMXHandlersLoader;
 import org.jboss.netty.channel.ChannelUpstreamHandler;



---------------------------------------------------------------------
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