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