Author: bago Date: Fri Sep 16 22:33:58 2011 New Revision: 1171835 URL: http://svn.apache.org/viewvc?rev=1171835&view=rev Log: Added a ProtocolSessionFactory interface to create ProtocolSession objects given a ProtocolTransport implementation.
Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java (with props) Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java?rev=1171835&view=auto ============================================================================== --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java (added) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java Fri Sep 16 22:33:58 2011 @@ -0,0 +1,26 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.protocols.api; + +public interface ProtocolSessionFactory { + + ProtocolSession newSession(ProtocolTransport transport); + +} Propchange: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java?rev=1171835&r1=1171834&r2=1171835&view=diff ============================================================================== --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java (original) +++ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java Fri Sep 16 22:33:58 2011 @@ -23,12 +23,11 @@ import javax.net.ssl.SSLEngine; import org.apache.james.protocols.api.ProtocolHandlerChain; import org.apache.james.protocols.api.ProtocolSession; +import org.apache.james.protocols.api.ProtocolSessionFactory; import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler; import org.apache.james.protocols.impl.NettyProtocolTransport; -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.SMTPSessionImpl; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFutureListener; import org.jboss.netty.channel.ChannelHandler.Sharable; @@ -44,17 +43,17 @@ import org.slf4j.Logger; @Sharable public class SMTPChannelUpstreamHandler extends AbstractChannelUpstreamHandler { protected final Logger logger; - protected final SMTPConfiguration conf; protected final SSLContext context; protected String[] enabledCipherSuites; + protected ProtocolSessionFactory sessionFactory; - public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, SMTPConfiguration conf, Logger logger) { - this(chain, conf, logger, null, null); + public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, ProtocolSessionFactory sessionFactory, Logger logger) { + this(chain, sessionFactory, logger, null, null); } - public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, SMTPConfiguration conf, Logger logger, SSLContext context, String[] enabledCipherSuites) { + public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, ProtocolSessionFactory sessionFactory, Logger logger, SSLContext context, String[] enabledCipherSuites) { super(chain); - this.conf = conf; + this.sessionFactory = sessionFactory; this.logger = logger; this.context = context; this.enabledCipherSuites = enabledCipherSuites; @@ -70,7 +69,7 @@ public class SMTPChannelUpstreamHandler } } - return new SMTPSessionImpl(conf, logger, new NettyProtocolTransport(ctx.getChannel(), engine)); + return sessionFactory.newSession(new NettyProtocolTransport(ctx.getChannel(), engine)); } @Override Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java?rev=1171835&r1=1171834&r2=1171835&view=diff ============================================================================== --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java (original) +++ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java Fri Sep 16 22:33:58 2011 @@ -24,6 +24,9 @@ import java.nio.charset.Charset; import javax.net.ssl.SSLContext; import org.apache.james.protocols.api.ProtocolHandlerChain; +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.AbstractAsyncServer; import org.apache.james.protocols.impl.AbstractResponseEncoder; import org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory; @@ -31,6 +34,7 @@ import org.apache.james.protocols.smtp.S import org.apache.james.protocols.smtp.SMTPProtocolHandlerChain; import org.apache.james.protocols.smtp.SMTPResponse; import org.apache.james.protocols.smtp.SMTPServerMBean; +import org.apache.james.protocols.smtp.SMTPSessionImpl; import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.ChannelUpstreamHandler; import org.jboss.netty.channel.group.ChannelGroup; @@ -130,7 +134,12 @@ public class SMTPServer extends Abstract @Override public synchronized void bind() throws Exception { - coreHandler = new SMTPChannelUpstreamHandler(chain, theConfigData, logger, context, null); + coreHandler = new SMTPChannelUpstreamHandler(chain, new ProtocolSessionFactory() { + + public ProtocolSession newSession(ProtocolTransport transport) { + return new SMTPSessionImpl(theConfigData, logger, transport); + } + }, logger, context, null); super.bind(); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org