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: [email protected]
For additional commands, e-mail: [email protected]