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