svn commit: r1171878 - in /james/protocols/trunk: impl/src/main/java/org/apache/james/protocols/impl/ smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/ smtp/src/main/java/org/apache/jame
Author: bago Date: Sat Sep 17 00:34:00 2011 New Revision: 1171878 URL: http://svn.apache.org/viewvc?rev=1171878&view=rev Log: Moved generic NettyServer to netty "impl" module. Moved SMTPProtocol to "smtp" module. Added: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java (contents, props changed) - copied, changed from r1171877, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java (contents, props changed) - copied, changed from r1171877, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPProtocol.java Removed: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPProtocol.java Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java Copied: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java (from r1171877, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java) URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java&p1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java&r1=1171877&r2=1171878&rev=1171878&view=diff == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java (original) +++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java Sat Sep 17 00:34:00 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * * under the License. * / -package org.apache.james.protocols.smtp.netty; +package org.apache.james.protocols.impl; import java.nio.charset.Charset; Propchange: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java -- svn:mime-type = text/plain 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=1171878&r1=1171877&r2=1171878&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 Sat Sep 17 00:34:00 2011 @@ -21,7 +21,9 @@ package org.apache.james.protocols.smtp. import javax.net.ssl.SSLContext; +import org.apache.james.protocols.impl.NettyServer; import org.apache.james.protocols.smtp.SMTPConfiguration; +import org.apache.james.protocols.smtp.SMTPProtocol; import org.apache.james.protocols.smtp.SMTPProtocolHandlerChain; import org.apache.james.protocols.smtp.SMTPServerMBean; Copied: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java (from r1171877, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPProtocol.java) URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java?p2=james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java&p1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPProtocol.java&r1=1171877&r2=1171878&rev=1171878&view=diff == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPProtocol.java (original) +++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java Sat Sep 17 00:34:00 2011 @@ -17,7 +17,7 @@ * under the License. * / -package org.apache.james.protocols.smtp.netty; +package org.apache.james.protocols.smtp; import org.apache.james.protocols.api.Protocol; import org.apache.james.protocols.api.ProtocolHandlerChain; Propchange: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
svn commit: r1171877 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/
Author: bago Date: Sat Sep 17 00:31:36 2011 New Revision: 1171877 URL: http://svn.apache.org/viewvc?rev=1171877&view=rev Log: Created a Protocol interface (maybe temporarily) and an SMTPProtocol definition. NettyServer now does not anymore depend on SMTP and simply takes SMTPProtocol as an argument to start a server implementing that protocol. Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java (with props) james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPProtocol.java (with props) Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.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/Protocol.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java?rev=1171877&view=auto == --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java (added) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java Sat Sep 17 00:31:36 2011 @@ -0,0 +1,35 @@ +/ + * 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; + +/** + * Define a protocol + */ +public interface Protocol { + +ProtocolHandlerChain getProtocolChain(); + +ProtocolSessionFactory getProtocolSessionFactory(); + +boolean isStartTLSSupported(); + +Class getResponseClass(); + +} Propchange: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java -- svn:mime-type = text/plain Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java?rev=1171877&r1=1171876&r2=1171877&view=diff == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java (original) +++ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java Sat Sep 17 00:31:36 2011 @@ -23,17 +23,11 @@ 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.api.Protocol; import org.apache.james.protocols.impl.AbstractAsyncServer; import org.apache.james.protocols.impl.AbstractResponseEncoder; import org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory; import org.apache.james.protocols.impl.BasicChannelUpstreamHandler; -import org.apache.james.protocols.smtp.SMTPConfiguration; -import org.apache.james.protocols.smtp.SMTPResponse; -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; @@ -48,7 +42,7 @@ import org.slf4j.LoggerFactory; */ public class NettyServer extends AbstractAsyncServer { -private ProtocolHandlerChain chain; +private Protocol protocol; private Logger logger = LoggerFactory.getLogger(NettyServer.class); @@ -56,25 +50,20 @@ public class NettyServer extends Abstr
svn commit: r1171871 - in /james/protocols/trunk: smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/ smtp/src/main/java/org/apache/james/protocols/smtp/
Author: bago Date: Sat Sep 17 00:16:40 2011 New Revision: 1171871 URL: http://svn.apache.org/viewvc?rev=1171871&view=rev Log: Use SMTPConfiguration to decide wether to enable starttls or not. Added: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java (with props) Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java Added: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java?rev=1171871&view=auto == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java (added) +++ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.java Sat Sep 17 00:16:40 2011 @@ -0,0 +1,141 @@ +/ + * 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.smtp.netty; + + +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; +import org.apache.james.protocols.impl.BasicChannelUpstreamHandler; +import org.apache.james.protocols.smtp.SMTPConfiguration; +import org.apache.james.protocols.smtp.SMTPResponse; +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; +import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; +import org.jboss.netty.handler.execution.ExecutionHandler; +import org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Generic NettyServer + */ +public class NettyServer extends AbstractAsyncServer { + +private ProtocolHandlerChain chain; + +private Logger logger = LoggerFactory.getLogger(NettyServer.class); + +protected SSLContext context; + +private ExecutionHandler eHandler; + + +/** + * The configuration data to be passed to the handler + */ +private final SMTPConfiguration theConfigData; + +private final static OneToOneEncoder SMTP_RESPONSE_ENCODER = new AbstractResponseEncoder(SMTPResponse.class, Charset.forName("US-ASCII")); +private ChannelUpstreamHandler coreHandler; + +public NettyServer(SMTPConfiguration theConfigData, ProtocolHandlerChain chain) { +this(theConfigData, chain, null); +} + + +public NettyServer(SMTPConfiguration theConfigData, ProtocolHandlerChain chain, SSLContext context) { +super(); +this.chain = chain; +this.context = context; +this.theConfigData = theConfigData; +} + +protected ExecutionHandler createExecutionHandler(int size) { +return new ExecutionHandler(new OrderedMemoryAwareThreadPoolExecutor(size, 0, 0)); +} + + +public void setUseExecutionHandler(boolean useHandler, int size) { +if (isBound()) throw new IllegalStateException("Server running already"); +if (useHandler) { +eHandl
svn commit: r1171856 - in /james/protocols/trunk: impl/src/main/java/org/apache/james/protocols/impl/ smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/ smtp/src/test/java/org/apache/jame
Author: bago Date: Fri Sep 16 23:37:11 2011 New Revision: 1171856 URL: http://svn.apache.org/viewvc?rev=1171856&view=rev Log: Move BasicChannelUpstreamHandler to the netty module ("impl"). Another step at removing the smtp-netty module. Added: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java (contents, props changed) - copied, changed from r1171855, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java Removed: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java Copied: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java (from r1171855, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java) URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java&p1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java&r1=1171855&r2=1171856&rev=1171856&view=diff == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java (original) +++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java Fri Sep 16 23:37:11 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * * under the License. * / -package org.apache.james.protocols.smtp.netty; +package org.apache.james.protocols.impl; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; Propchange: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java -- svn:mime-type = text/plain 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=1171856&r1=1171855&r2=1171856&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 23:37:11 2011 @@ -30,6 +30,7 @@ import org.apache.james.protocols.api.Pr import org.apache.james.protocols.impl.AbstractAsyncServer; import org.apache.james.protocols.impl.AbstractResponseEncoder; import org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory; +import org.apache.james.protocols.impl.BasicChannelUpstreamHandler; import org.apache.james.protocols.smtp.SMTPConfiguration; import org.apache.james.protocols.smtp.SMTPProtocolHandlerChain; import org.apache.james.protocols.smtp.SMTPResponse; Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java?rev=1171856&r1=1171855&r2=1171856&view=diff == --- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java (original) +++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java Fri Sep 16 23:37:11 2011 @@ -208,4 +208,12 @@ public class BaseFakeSMTPSession impleme throw new UnsupportedOperationException("Unimplemented Stub Method"); } +public Response newLineTooLongResponse() { +throw new UnsupportedOperationException("Unimplemented Stub Method"); +} + +public Response newFatalErrorResponse() { +throw new UnsupportedOperationException("Unimplemented Stub Method"); +} + } - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171855 - in /james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty: BasicChannelUpstreamHandler.java SMTPChannelUpstreamHandler.java SMTPServer.java
Author: bago Date: Fri Sep 16 23:35:16 2011 New Revision: 1171855 URL: http://svn.apache.org/viewvc?rev=1171855&view=rev Log: Rename SMTPChannelUpstreamHandler to BasicChannelUpstreamHandler. Added: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java (contents, props changed) - copied, changed from r1171854, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java Removed: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java Copied: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java (from r1171854, 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/BasicChannelUpstreamHandler.java?p2=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java&p1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java&r1=1171854&r2=1171855&rev=1171855&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/BasicChannelUpstreamHandler.java Fri Sep 16 23:35:16 2011 @@ -37,20 +37,20 @@ import org.jboss.netty.handler.codec.fra import org.slf4j.Logger; /** - * {@link ChannelUpstreamHandler} which is used by the SMTPServer + * {@link ChannelUpstreamHandler} which is used by the SMTPServer and other line based protocols */ @Sharable -public class SMTPChannelUpstreamHandler extends AbstractChannelUpstreamHandler { +public class BasicChannelUpstreamHandler extends AbstractChannelUpstreamHandler { protected final Logger logger; protected final SSLContext context; protected String[] enabledCipherSuites; protected ProtocolSessionFactory sessionFactory; -public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, ProtocolSessionFactory sessionFactory, Logger logger) { +public BasicChannelUpstreamHandler(ProtocolHandlerChain chain, ProtocolSessionFactory sessionFactory, Logger logger) { this(chain, sessionFactory, logger, null, null); } -public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, ProtocolSessionFactory sessionFactory, Logger logger, SSLContext context, String[] enabledCipherSuites) { +public BasicChannelUpstreamHandler(ProtocolHandlerChain chain, ProtocolSessionFactory sessionFactory, Logger logger, SSLContext context, String[] enabledCipherSuites) { super(chain); this.sessionFactory = sessionFactory; this.logger = logger; Propchange: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.java -- svn:mime-type = text/plain 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=1171855&r1=1171854&r2=1171855&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 23:35:16 2011 @@ -134,7 +134,7 @@ public class SMTPServer extends Abstract @Override public synchronized void bind() throws Exception { -coreHandler = new SMTPChannelUpstreamHandler(chain, new ProtocolSessionFactory() { +coreHandler = new BasicChannelUpstreamHandler(chain, new ProtocolSessionFactory() { public ProtocolSession newSession(ProtocolTransport transport) { return new SMTPSessionImpl(theConfigData, logger, transport); - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171854 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/ smtp/src/main/java/org/apache/james/
Author: bago Date: Fri Sep 16 23:33:39 2011 New Revision: 1171854 URL: http://svn.apache.org/viewvc?rev=1171854&view=rev Log: Added generic ways to declare how a protocol replies to "too long lines" and to "fatal errors". Not sure this is generic enough to correctly support pop3/lmtp/imap, but this may be a first attempt at making it generic. Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java?rev=1171854&r1=1171853&r2=1171854&view=diff == --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java (original) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java Fri Sep 16 23:33:39 2011 @@ -77,4 +77,17 @@ public interface ProtocolSession { * @return id */ String getSessionID(); + +/** + * Define a response object to be used as reply for a too long input line + * @return Response + */ +Response newLineTooLongResponse(); + +/** + * Define a response object to be used as reply during a fatal error. + * Connection will be closed after this response. + * @return Response + */ +Response newFatalErrorResponse(); } 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=1171854&r1=1171853&r2=1171854&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 23:33:39 2011 @@ -24,10 +24,9 @@ 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.api.Response; import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler; import org.apache.james.protocols.impl.NettyProtocolTransport; -import org.apache.james.protocols.smtp.SMTPResponse; -import org.apache.james.protocols.smtp.SMTPRetCode; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFutureListener; import org.jboss.netty.channel.ChannelHandler.Sharable; @@ -75,13 +74,19 @@ public class SMTPChannelUpstreamHandler @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { Channel channel = ctx.getChannel(); +ProtocolSession session = (ProtocolSession) ctx.getAttachment(); 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.")); +Response r = session.newLineTooLongResponse(); +if (r != null) ctx.getChannel().write(r); } else { if (channel.isConnected()) { -ctx.getChannel().write(new SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unable to process request")).addListener(ChannelFutureListener.CLOSE); +Response r = session.newFatalErrorResponse(); +if (r != null) { + ctx.getChannel().write(r).addListener(ChannelFutureListener.CLOSE); +} else { +ctx.getChannel().close(); +} } -ProtocolSession session = (ProtocolSession) ctx.getAttachment(); if (session != null) { session.getLogger().debug("Unable to process request", e.getCause()); } else { Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java?rev=1171854&r1=1171853&r2=1171854&view=diff == --- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java (original) +++ james/protocols/trunk/smtp/src/main/java/org/apache/j
svn commit: r1171835 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/
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(ProtocolHandl
svn commit: r1171693 - /james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java
Author: norman Date: Fri Sep 16 17:47:45 2011 New Revision: 1171693 URL: http://svn.apache.org/viewvc?rev=1171693&view=rev Log: Change MailboxListener removing from lazy to direct. This makes sure we don't leak MailboxListener's. See MAILBOX-134 Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java?rev=1171693&r1=1171692&r2=1171693&view=diff == --- james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java (original) +++ james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java Fri Sep 16 17:47:45 2011 @@ -59,10 +59,7 @@ public abstract class AbstractStressTest final MailboxPath path = new MailboxPath(MailboxConstants.USER_NAMESPACE, "username", "INBOX"); getMailboxManager().createMailbox(path, session); getMailboxManager().addListener(path, new MailboxListener() { - @Override - public boolean isClosed() { - return false; - } + @Override public void event(Event event) { - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171686 - in /james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor: IdleProcessor.java base/ImapStateAwareMailboxListener.java base/MailboxEventAnalyser.java base/Sele
Author: norman Date: Fri Sep 16 17:32:34 2011 New Revision: 1171686 URL: http://svn.apache.org/viewvc?rev=1171686&view=rev Log: Directly remove MailboxListener's on ImapSession.logout(). This is related to changes of MAILBOX-134 Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/ImapStateAwareMailboxListener.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/MailboxEventAnalyser.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/UidToMsnConverter.java Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java?rev=1171686&r1=1171685&r2=1171686&view=diff == --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java Fri Sep 16 17:32:34 2011 @@ -28,7 +28,6 @@ import java.util.Locale; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapSessionState; @@ -42,8 +41,8 @@ import org.apache.james.imap.api.process import org.apache.james.imap.api.process.SelectedMailbox; import org.apache.james.imap.message.request.IdleRequest; import org.apache.james.imap.message.response.ContinuationResponse; -import org.apache.james.imap.processor.base.ImapStateAwareMailboxListener; import org.apache.james.mailbox.MailboxException; +import org.apache.james.mailbox.MailboxListener; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -73,7 +72,6 @@ public class IdleProcessor extends Abstr } protected void doProcess(final IdleRequest message, final ImapSession session, final String tag, final ImapCommand command, final Responder responder) { -final AtomicBoolean closed = new AtomicBoolean(false); try { responder.respond(new ContinuationResponse(HumanReadableText.IDLING)); @@ -81,9 +79,13 @@ public class IdleProcessor extends Abstr final MailboxManager mailboxManager = getMailboxManager(); final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); -SelectedMailbox sm = session.getSelected(); +final SelectedMailbox sm = session.getSelected(); +final MailboxListener idleListener; if (sm != null) { -mailboxManager.addListener(sm.getPath(), new IdleMailboxListener(closed, session, responder), mailboxSession); +idleListener = new IdleMailboxListener(session, responder); +mailboxManager.addListener(sm.getPath(), idleListener , mailboxSession); +} else { +idleListener = null; } session.pushLineHandler(new ImapLineHandler() { @@ -103,7 +105,13 @@ public class IdleProcessor extends Abstr line = ""; } -closed.set(true); +if (idleListener != null) { +try { +mailboxManager.removeListener(sm.getPath(), idleListener, mailboxSession); +} catch (MailboxException e) { +session.getLog().info("Unable to remove idle listener from mailbox", e); +} +} session.popLineHandler(); if (!DONE.equals(line.toUpperCase(Locale.US))) { StatusResponse response = getStatusResponseFactory().taggedBad(tag, command, HumanReadableText.INVALID_COMMAND); @@ -122,7 +130,7 @@ public class IdleProcessor extends Abstr public void run() { // check if we need to cancel the Runnable // See IMAP-275 -if (session.getState() != ImapSessionState.LOGOUT && closed.get() == false) { +if (session.getState() != ImapSessionState.LOGOUT) { // Send a heartbeat to the client to make sure we // reset the idle timeout. This is kind of the same // workaround as dovecot use. @@ -142,7 +150,6 @@ public class IdleProcessor extends Abstr } } catch (
svn commit: r1171685 - in /james/mailbox/trunk: api/src/main/java/org/apache/james/mailbox/ store/src/main/java/org/apache/james/mailbox/store/
Author: norman Date: Fri Sep 16 17:30:15 2011 New Revision: 1171685 URL: http://svn.apache.org/viewvc?rev=1171685&view=rev Log: Change MailboxListener removing from lazy to direct. This makes sure we don't leak MailboxListener's. See MAILBOX-134 Modified: james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListenerSupport.java james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MailboxEventDispatcher.java james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java Modified: james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java?rev=1171685&r1=1171684&r2=1171685&view=diff == --- james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java (original) +++ james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java Fri Sep 16 17:30:15 2011 @@ -39,20 +39,6 @@ public interface MailboxListener { void event(final Event event); /** - * - * Is this listener closed? - * Closed listeners may be unsubscribed. - * - * - * Be aware that if the listener is marked as close it will not get any - * events passed anymore! - * - * - * @return true when closed, false when open - */ -boolean isClosed(); - -/** * A mailbox event. */ public class Event { Modified: james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListenerSupport.java URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListenerSupport.java?rev=1171685&r1=1171684&r2=1171685&view=diff == --- james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListenerSupport.java (original) +++ james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListenerSupport.java Fri Sep 16 17:30:15 2011 @@ -49,6 +49,16 @@ public interface MailboxListenerSupport void addListener(MailboxPath mailboxPath, MailboxListener listener, MailboxSession session) throws MailboxException; /** + * Remove the {@link MailboxListener} + * + * @param mailboxPath + * @param listner + * @param session + * @throws MailboxException + */ +void removeListener(MailboxPath mailboxPath, MailboxListener listner, MailboxSession session) throws MailboxException; + +/** * Add a {@link MailboxListener} which get fired for ever * {@link MailboxPath} * @@ -57,5 +67,16 @@ public interface MailboxListenerSupport * @throws MailboxException */ void addGlobalListener(MailboxListener listener, MailboxSession session) throws MailboxException; + + +/** + * Remove the {@link MailboxListener} + * + * @param listner + * @param session + * @throws MailboxException + */ +void removeGlobalListener(MailboxListener listner, MailboxSession session) throws MailboxException; + } Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java?rev=1171685&r1=1171684&r2=1171685&view=diff == --- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java (original) +++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/AbstractDelegatingMailboxListener.java Fri Sep 16 17:30:15 2011 @@ -45,16 +45,12 @@ public abstract class AbstractDelegating synchronized (listeners) { List mListeners = listeners.get(path); if (mListeners != null && mListeners.isEmpty() == false) { -List closedListener = new ArrayList(); int sz = mListeners.size(); for (int i = 0; i < sz; i++) { MailboxListener l = mListeners.get(i); -if (l.isClosed()) { -closedListener.add(l); -} else { -l.event(event); -} +l.event(event); + } if (event instanceof MailboxDeletion) { @@ -68,12 +64,7 @@ public abstract class AbstractDelegating li
[jira] [Resolved] (MAILBOX-134) MailboxListener may not removed even if MailboxListener.isClosed() is true
[ https://issues.apache.org/jira/browse/MAILBOX-134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Norman Maurer resolved MAILBOX-134. --- Resolution: Fixed > MailboxListener may not removed even if MailboxListener.isClosed() is true > -- > > Key: MAILBOX-134 > URL: https://issues.apache.org/jira/browse/MAILBOX-134 > Project: James Mailbox > Issue Type: Bug > Components: api, store >Affects Versions: 0.3 >Reporter: Norman Maurer >Assignee: Norman Maurer > Fix For: 0.4 > > > At the moment we check on every new even for a specific mailbox if an > listener was closed before and if so we remove it. This is error-phrone and > also may lead to "leaking" MailboxListeners as if no new event for a Mailbox > will submitted it will there forever. > We should better directly remove the MailboxListener and not relay on a lazy > removal. This also should be a way faster as we don't need to check all > MailboxListeners for a Mailbox on every event -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (MAILBOX-134) MailboxListener may not removed even if MailboxListener.isClosed() is true
MailboxListener may not removed even if MailboxListener.isClosed() is true -- Key: MAILBOX-134 URL: https://issues.apache.org/jira/browse/MAILBOX-134 Project: James Mailbox Issue Type: Bug Components: api, store Affects Versions: 0.3 Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 0.4 At the moment we check on every new even for a specific mailbox if an listener was closed before and if so we remove it. This is error-phrone and also may lead to "leaking" MailboxListeners as if no new event for a Mailbox will submitted it will there forever. We should better directly remove the MailboxListener and not relay on a lazy removal. This also should be a way faster as we don't need to check all MailboxListeners for a Mailbox on every event -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171635 - in /james/protocols/trunk: smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/ smtp/src/main/java/org/apache/james/protocols/smtp/
Author: bago Date: Fri Sep 16 15:46:11 2011 New Revision: 1171635 URL: http://svn.apache.org/viewvc?rev=1171635&view=rev Log: Move SMTPSessionImpl from "smtp-netty" to "smtp" module. Added: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java (contents, props changed) - copied, changed from r1171632, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java 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/SMTPSessionImpl.java 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=1171635&r1=1171634&r2=1171635&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 15:46:11 2011 @@ -28,6 +28,7 @@ import org.apache.james.protocols.impl.N 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; Copied: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java (from r1171632, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java) URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java?p2=james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java&p1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java&r1=1171632&r2=1171635&rev=1171635&view=diff == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java (original) +++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java Fri Sep 16 15:46:11 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * * under the License. * / -package org.apache.james.protocols.smtp.netty; +package org.apache.james.protocols.smtp; import java.util.Collection; import java.util.HashMap; Propchange: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java -- svn:mime-type = text/plain - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171632 - in /james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty: SMTPChannelUpstreamHandler.java SMTPNettySession.java SMTPSessionImpl.java
Author: bago Date: Fri Sep 16 15:44:36 2011 New Revision: 1171632 URL: http://svn.apache.org/viewvc?rev=1171632&view=rev Log: Rename SMTPNettySession to SMTPSessionImpl now that it doesn't depend on Netty anymore Added: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java (contents, props changed) - copied, changed from r1171630, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java 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/SMTPNettySession.java 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=1171632&r1=1171631&r2=1171632&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 15:44:36 2011 @@ -69,7 +69,7 @@ public class SMTPChannelUpstreamHandler } } -return new SMTPNettySession(conf, logger, new NettyProtocolTransport(ctx.getChannel(), engine)); +return new SMTPSessionImpl(conf, logger, new NettyProtocolTransport(ctx.getChannel(), engine)); } @Override Copied: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java (from r1171630, james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java) URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java?p2=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java&p1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java&r1=1171630&r2=1171632&rev=1171632&view=diff == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java (original) +++ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java Fri Sep 16 15:44:36 2011 @@ -30,9 +30,9 @@ import org.apache.james.protocols.smtp.S import org.slf4j.Logger; /** - * {@link SMTPSession} implementation for use with Netty + * {@link SMTPSession} implementation */ -public class SMTPNettySession extends AbstractSession implements SMTPSession { +public class SMTPSessionImpl extends AbstractSession implements SMTPSession { public final static String SMTP_SESSION = "SMTP_SESSION"; private boolean relayingAllowed; @@ -41,7 +41,7 @@ public class SMTPNettySession extends Ab private SMTPConfiguration theConfigData; -public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, ProtocolTransport transport) { +public SMTPSessionImpl(SMTPConfiguration theConfigData, Logger logger, ProtocolTransport transport) { super(logger, transport); this.theConfigData = theConfigData; connectionState = new HashMap(); @@ -177,9 +177,7 @@ public class SMTPNettySession extends Ab return theConfigData.useHeloEhloEnforcement(); } -/* - * (non-Javadoc) - * +/** * @see * org.apache.james.protocols.smtp.SMTPSession#getPushedLineHandlerCount() */ Propchange: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.java -- svn:mime-type = text/plain - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171630 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ impl/src/main/java/org/apache/james/protocols/impl/ smtp-netty/src/main/java/org/apache/james/protoc
Author: bago Date: Fri Sep 16 15:42:54 2011 New Revision: 1171630 URL: http://svn.apache.org/viewvc?rev=1171630&view=rev Log: Move SessionLog and AbstractSession to api so SMTPNettySession does not depend on netty anymore. Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java - copied, changed from r1171625, james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/SessionLog.java - copied, changed from r1171593, james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/SessionLog.java Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/SessionLog.java james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java Copied: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java (from r1171625, james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java) URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?p2=james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java&p1=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java&r1=1171625&r2=1171630&rev=1171630&view=diff == --- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java (original) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java Fri Sep 16 15:42:54 2011 @@ -17,7 +17,7 @@ * under the License. * / -package org.apache.james.protocols.impl; +package org.apache.james.protocols.api; import java.net.InetSocketAddress; Copied: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/SessionLog.java (from r1171593, james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/SessionLog.java) URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/SessionLog.java?p2=james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/SessionLog.java&p1=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/SessionLog.java&r1=1171593&r2=1171630&rev=1171630&view=diff == --- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/SessionLog.java (original) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/SessionLog.java Fri Sep 16 15:42:54 2011 @@ -17,7 +17,7 @@ * under the License. * / -package org.apache.james.protocols.impl; +package org.apache.james.protocols.api; import org.slf4j.Logger; import org.slf4j.Marker; Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java?rev=1171630&r1=1171629&r2=1171630&view=diff == --- james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java (original) +++ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java Fri Sep 16 15:42:54 2011 @@ -24,7 +24,7 @@ import java.util.Map; import org.apache.james.protocols.api.LineHandler; import org.apache.james.protocols.api.ProtocolTransport; -import org.apache.james.protocols.impl.AbstractSession; +import org.apache.james.protocols.api.AbstractSession; import org.apache.james.protocols.smtp.SMTPConfiguration; import org.apache.james.protocols.smtp.SMTPSession; import org.slf4j.Logger; - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171625 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ impl/src/main/java/org/apache/james/protocols/impl/ smtp-netty/src/main/java/org/apache/james/protoc
Author: bago Date: Fri Sep 16 15:32:17 2011 New Revision: 1171625 URL: http://svn.apache.org/viewvc?rev=1171625&view=rev Log: Introduce ProtocolTransport a service implemented by the transport implementation (e.g: netty) and used by generic Protocol sessions (e.g: SmtpSession). This way the session does need to depend on the transport implementation but depends on it at runtime. Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java (with props) james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyProtocolTransport.java (with props) Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java 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/SMTPNettySession.java Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java?rev=1171625&view=auto == --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java (added) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java Fri Sep 16 15:32:17 2011 @@ -0,0 +1,46 @@ +/ + * 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; + +import java.net.InetSocketAddress; + +/** + * ProtocolTransport is used by each ProtocolSession to communicate with the underlying transport. + * Transport implementations will provide their own implementation of the transport. + */ +public interface ProtocolTransport { + +InetSocketAddress getRemoteAddress(); + +String getId(); + +boolean isTLSStarted(); + +boolean isStartTLSSupported(); + +void writeResponse(Response response, ProtocolSession session); + +void popLineHandler(); + + void pushLineHandler(LineHandler overrideCommandHandler, T smtpNettySession); + +int getPushedLineHandlerCount(); + +} Propchange: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java -- svn:mime-type = text/plain Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java?rev=1171625&r1=1171624&r2=1171625&view=diff == --- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java (original) +++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java Fri Sep 16 15:32:17 2011 @@ -21,15 +21,9 @@ package org.apache.james.protocols.impl; import java.net.InetSocketAddress; -import javax.net.ssl.SSLEngine; - +import org.apache.james.protocols.api.ProtocolTransport; import org.apache.james.protocols.api.Response; -import org.apache.james.protocols.api.StartTlsResponse; import org.apache.james.protocols.api.TLSSupportedSession; -import org.jboss.netty.channel.Channel; -import org.jboss.netty.channel.ChannelFuture; -import org.jboss.netty.channel.ChannelFutureListener; -import org.jboss.netty.handler.ssl.SslHandler; import org.slf4j.Logger; /** @@ -38,27 +32,21 @@ import org.slf4j.
svn commit: r1171594 - /james/protocols/trunk/smtp-netty/
Author: bago Date: Fri Sep 16 14:36:09 2011 New Revision: 1171594 URL: http://svn.apache.org/viewvc?rev=1171594&view=rev Log: Add svn-ignores for smtp-netty Modified: james/protocols/trunk/smtp-netty/ (props changed) Propchange: james/protocols/trunk/smtp-netty/ -- --- svn:ignore (original) +++ svn:ignore Fri Sep 16 14:36:09 2011 @@ -1 +1,7 @@ target + +.settings + +.project + +.classpath - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171589 - in /james/protocols/trunk/smtp-netty: .classpath .project
Author: bago Date: Fri Sep 16 14:32:31 2011 New Revision: 1171589 URL: http://svn.apache.org/viewvc?rev=1171589&view=rev Log: Remove eclipse artifacts Modified: james/protocols/trunk/smtp-netty/.classpath james/protocols/trunk/smtp-netty/.project - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171588 - in /james/protocols/trunk: impl/src/main/java/org/apache/james/protocols/impl/ smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/ smtp/src/main/java/org/apache/jame
Author: bago Date: Fri Sep 16 14:31:17 2011 New Revision: 1171588 URL: http://svn.apache.org/viewvc?rev=1171588&view=rev Log: Remote SMTPResponseEncoder by moving RetCodeResponse encoding logic into the RetCodeResponse implementation (SMTPResponse) so that we can directly use AbstractResponseEncoder (that is not anymore abstract). Refactored fields to use generic interfaces when available. Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.java 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/SMTPNettySession.java james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPResponseEncoder.java james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.java?rev=1171588&r1=1171587&r2=1171588&view=diff == --- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.java (original) +++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.java Fri Sep 16 14:31:17 2011 @@ -18,12 +18,11 @@ / package org.apache.james.protocols.impl; -import static org.jboss.netty.buffer.ChannelBuffers.*; +import static org.jboss.netty.buffer.ChannelBuffers.copiedBuffer; import java.nio.charset.Charset; import java.util.List; - import org.apache.james.protocols.api.Response; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelHandlerContext; @@ -35,7 +34,7 @@ import org.jboss.netty.handler.codec.one * * @param */ -public abstract class AbstractResponseEncoder extends OneToOneEncoder{ +public class AbstractResponseEncoder extends OneToOneEncoder{ private Class classType; private Charset charset; @@ -45,13 +44,12 @@ public abstract class AbstractResponseEn this.charset = charset; } -@SuppressWarnings("unchecked") @Override protected Object encode(ChannelHandlerContext arg0, Channel arg1, Object obj) throws Exception { if (classType.isInstance(obj)) { StringBuilder builder = new StringBuilder(); -R response = (R) obj; -List lines = getResponse(response); +Response response = (Response) obj; +List lines = response.getLines(); for (int i = 0; i < lines.size(); i++) { builder.append(lines.get(i)); if (i < lines.size()) { @@ -62,9 +60,4 @@ public abstract class AbstractResponseEn } return obj; } - -/** - * Return a list which contains the response - */ -protected abstract List getResponse(R response); } 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=1171588&r1=1171587&r2=1171588&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 14:31:17 2011 @@ -27,13 +27,12 @@ import org.apache.james.protocols.impl.A 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.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; @@ -61,15 +60,14 @@ public class SMTPChannelUpstreamHandler @Override protected ProtocolSession createSession(ChannelHandlerContext ctx) throws Exception { +SSLEngine engine = null; if (context !=
svn commit: r1171587 - /james/protocols/trunk/pom.xml
Author: bago Date: Fri Sep 16 14:29:45 2011 New Revision: 1171587 URL: http://svn.apache.org/viewvc?rev=1171587&view=rev Log: add smtp-netty module to the parent pom. Modified: james/protocols/trunk/pom.xml Modified: james/protocols/trunk/pom.xml URL: http://svn.apache.org/viewvc/james/protocols/trunk/pom.xml?rev=1171587&r1=1171586&r2=1171587&view=diff == --- james/protocols/trunk/pom.xml (original) +++ james/protocols/trunk/pom.xml Fri Sep 16 14:29:45 2011 @@ -37,6 +37,7 @@ api smtp impl +smtp-netty hudson - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171513 - in /james/server/trunk: lmtpserver/pom.xml lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java protocols-library/src/main/java/org/apache/james/protocols/
Author: norman Date: Fri Sep 16 11:35:12 2011 New Revision: 1171513 URL: http://svn.apache.org/viewvc?rev=1171513&view=rev Log: Reuse protocols-smtp-netty jar Modified: james/server/trunk/lmtpserver/pom.xml james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java Modified: james/server/trunk/lmtpserver/pom.xml URL: http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/pom.xml?rev=1171513&r1=1171512&r2=1171513&view=diff == --- james/server/trunk/lmtpserver/pom.xml (original) +++ james/server/trunk/lmtpserver/pom.xml Fri Sep 16 11:35:12 2011 @@ -90,6 +90,10 @@ protocols-impl + org.apache.james.protocols + protocols-smtp-netty + + org.apache.james apache-james-mailbox-api Modified: james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java URL: http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java?rev=1171513&r1=1171512&r2=1171513&view=diff == --- james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java (original) +++ james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java Fri Sep 16 11:35:12 2011 @@ -27,8 +27,8 @@ import org.apache.james.lmtpserver.jmx.J 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.netty.SMTPChannelUpstreamHandler; -import org.apache.james.smtpserver.netty.SMTPResponseEncoder; import org.jboss.netty.channel.ChannelUpstreamHandler; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; 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=1171513&r1=1171512&r2=1171513&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:35:12 2011 @@ -378,8 +378,6 @@ public abstract class AbstractConfigurab */ private void buildSSLContext() throws Exception { -System.out.println(useStartTLS); - if (useStartTLS || useSSL) { FileInputStream fis = null; try { - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171510 - in /james/server/trunk: ./ protocols-library/src/main/java/org/apache/james/protocols/lib/netty/ smtpserver/ smtpserver/src/main/java/org/apache/james/smtpserver/netty/
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 @@ protocols-smtp ${protocols.version} - + + org.apache.james.protocols + protocols-smtp-netty + ${protocols.version} + org.apache.james 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
svn commit: r1171509 - /james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java
Author: norman Date: Fri Sep 16 11:27:01 2011 New Revision: 1171509 URL: http://svn.apache.org/viewvc?rev=1171509&view=rev Log: Mark some stuff protected Modified: james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java 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=1171509&r1=1171508&r2=1171509&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 11:27:01 2011 @@ -42,10 +42,10 @@ import org.slf4j.Logger; */ @Sharable public class SMTPChannelUpstreamHandler extends AbstractChannelUpstreamHandler { -private final Logger logger; -private final SMTPConfiguration conf; -private final SSLContext context; -private String[] enabledCipherSuites; +protected final Logger logger; +protected final SMTPConfiguration conf; +protected final SSLContext context; +protected String[] enabledCipherSuites; public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, SMTPConfiguration conf, Logger logger) { this(chain, conf, logger, null, null); - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1171502 - in /james/protocols/trunk: impl/src/main/java/org/apache/james/protocols/impl/ smtp/src/main/java/org/apache/james/protocols/smtp/ smtp/src/main/java/org/apache/james/protocols/
Author: norman Date: Fri Sep 16 10:58:43 2011 New Revision: 1171502 URL: http://svn.apache.org/viewvc?rev=1171502&view=rev Log: Add simple SMTPServer by using netty. See PROTOCOLS-31 Added: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfigurationImpl.java (with props) james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java (with props) Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfiguration.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java?rev=1171502&r1=1171501&r2=1171502&view=diff == --- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java (original) +++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java Fri Sep 16 10:58:43 2011 @@ -30,6 +30,7 @@ import org.jboss.netty.handler.codec.fra import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.connection.ConnectionLimitUpstreamHandler; import org.jboss.netty.handler.connection.ConnectionPerIpLimitUpstreamHandler; +import org.jboss.netty.handler.execution.ExecutionHandler; import org.jboss.netty.handler.stream.ChunkedWriteHandler; import org.jboss.netty.util.HashedWheelTimer; @@ -46,14 +47,22 @@ public abstract class AbstractChannelPip private final HashedWheelTimer timer = new HashedWheelTimer(); private ChannelGroupHandler groupHandler; private int timeout; +private ExecutionHandler eHandler; public AbstractChannelPipelineFactory(int timeout, int maxConnections, int maxConnectsPerIp, ChannelGroup channels) { +this(timeout, maxConnections, maxConnectsPerIp, channels, null); +} + +public AbstractChannelPipelineFactory(int timeout, int maxConnections, int maxConnectsPerIp, ChannelGroup channels, ExecutionHandler eHandler) { connectionLimitHandler = new ConnectionLimitUpstreamHandler(maxConnections); connectionPerIpLimitHandler = new ConnectionPerIpLimitUpstreamHandler(maxConnectsPerIp); groupHandler = new ChannelGroupHandler(channels); this.timeout = timeout; +this.eHandler = eHandler; } + + /* * (non-Javadoc) * @see org.jboss.netty.channel.ChannelPipelineFactory#getPipeline() @@ -77,6 +86,10 @@ public abstract class AbstractChannelPip pipeline.addLast("streamer", new ChunkedWriteHandler()); pipeline.addLast("timeoutHandler", new TimeoutHandler(timer, timeout)); +if (eHandler != null) { +pipeline.addLast("executionHandler", eHandler); +} + pipeline.addLast("coreHandler", createHandler()); Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java?rev=1171502&r1=1171501&r2=1171502&view=diff == --- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java (original) +++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java Fri Sep 16 10:58:43 2011 @@ -23,6 +23,7 @@ import javax.net.ssl.SSLEngine; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.group.ChannelGroup; +import org.jboss.netty.handler.execution.ExecutionHandler; import org.jboss.netty.handler.ssl.SslHandler; /** @@ -36,13 +37,13 @@ public abstract class AbstractSSLAwareCh private String[] enabledCipherSuites = null; public AbstractSSLAwareChannelPipelineFactory(int timeout, -int maxConnections, int maxConnectsPerIp, ChannelGroup group) { -super(timeout, maxConnections, maxConnectsPerIp, group); +int maxConnections, int maxConnectsPerIp, ChannelGroup group, ExecutionHandler eHandler) { +super(timeout, maxConnections, maxConnectsPerIp, group, eHandler); } public AbstractSSLAwareChannelPipelineFactory(int timeout, -int maxConnections, int maxConnect
svn commit: r1171501 - in /james/protocols/trunk/smtp-netty: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/james/ src/main/java/org/apache/jame
Author: norman Date: Fri Sep 16 10:57:30 2011 New Revision: 1171501 URL: http://svn.apache.org/viewvc?rev=1171501&view=rev Log: Add simple SMTPServer by using netty. See PROTOCOLS-31 Added: james/protocols/trunk/smtp-netty/ (with props) james/protocols/trunk/smtp-netty/.classpath (with props) james/protocols/trunk/smtp-netty/.project (with props) james/protocols/trunk/smtp-netty/pom.xml (with props) james/protocols/trunk/smtp-netty/src/ james/protocols/trunk/smtp-netty/src/main/ james/protocols/trunk/smtp-netty/src/main/java/ james/protocols/trunk/smtp-netty/src/main/java/org/ james/protocols/trunk/smtp-netty/src/main/java/org/apache/ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/ james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java (with props) james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.java (with props) james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPResponseEncoder.java (with props) james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPServer.java (with props) Propchange: james/protocols/trunk/smtp-netty/ -- --- svn:ignore (added) +++ svn:ignore Fri Sep 16 10:57:30 2011 @@ -0,0 +1 @@ +target Added: james/protocols/trunk/smtp-netty/.classpath URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/.classpath?rev=1171501&view=auto == --- james/protocols/trunk/smtp-netty/.classpath (added) +++ james/protocols/trunk/smtp-netty/.classpath Fri Sep 16 10:57:30 2011 @@ -0,0 +1,8 @@ + + + + + + + + Propchange: james/protocols/trunk/smtp-netty/.classpath -- svn:mime-type = text/plain Added: james/protocols/trunk/smtp-netty/.project URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/.project?rev=1171501&view=auto == --- james/protocols/trunk/smtp-netty/.project (added) +++ james/protocols/trunk/smtp-netty/.project Fri Sep 16 10:57:30 2011 @@ -0,0 +1,24 @@ + + + protocols-smtp-netty + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + Propchange: james/protocols/trunk/smtp-netty/.project -- svn:mime-type = text/plain Added: james/protocols/trunk/smtp-netty/pom.xml URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp-netty/pom.xml?rev=1171501&view=auto == --- james/protocols/trunk/smtp-netty/pom.xml (added) +++ james/protocols/trunk/smtp-netty/pom.xml Fri Sep 16 10:57:30 2011 @@ -0,0 +1,103 @@ + + +http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd";> + +protocols +org.apache.james +1.6-SNAPSHOT + + 4.0.0 + org.apache.james.protocols + protocols-smtp-netty + Apache James Protocols SMTP Implementation using netty + + + +org.apache.maven.plugins +maven-jar-plugin + + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + true + true + + + + + + + test-jar + + + + + +org.apache.felix +maven-bundle-plugin + + +bundle-manifest +process-classes + + manifest + + + +true + + +org.apache.james.protocols.impl.*, org.jboss.netty.handler.connection +*;scope=runtime + + + + + + + + org.apache.james.protocols + protocols-api +
svn commit: r1171500 - in /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server: StartTlsPop3Response.java core/StlsCmdHandler.java
Author: norman Date: Fri Sep 16 10:56:13 2011 New Revision: 1171500 URL: http://svn.apache.org/viewvc?rev=1171500&view=rev Log: Handle STARTTLS correctly. See PROTOCOLS-30 Added: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/StartTlsPop3Response.java (with props) Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/StlsCmdHandler.java Added: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/StartTlsPop3Response.java URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/StartTlsPop3Response.java?rev=1171500&view=auto == --- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/StartTlsPop3Response.java (added) +++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/StartTlsPop3Response.java Fri Sep 16 10:56:13 2011 @@ -0,0 +1,39 @@ +/ + * 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.pop3server; + +import org.apache.james.protocols.api.StartTlsResponse; + +/** + * Special sub-type of {@link POP3Response} which will trigger the start of TLS after the response was written to the client + * + * + */ +public class StartTlsPop3Response extends POP3Response implements StartTlsResponse{ + +public StartTlsPop3Response(String code, CharSequence description) { +super(code, description); +} + +public StartTlsPop3Response(String code) { +super(code); +} + +} Propchange: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/StartTlsPop3Response.java -- svn:mime-type = text/plain Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/StlsCmdHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/StlsCmdHandler.java?rev=1171500&r1=1171499&r2=1171500&view=diff == --- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/StlsCmdHandler.java (original) +++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/StlsCmdHandler.java Fri Sep 16 10:56:13 2011 @@ -19,13 +19,13 @@ package org.apache.james.pop3server.core; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.james.pop3server.POP3Response; import org.apache.james.pop3server.POP3Session; +import org.apache.james.pop3server.StartTlsPop3Response; import org.apache.james.protocols.api.CommandHandler; import org.apache.james.protocols.api.Request; import org.apache.james.protocols.api.Response; @@ -49,23 +49,13 @@ public class StlsCmdHandler implements C // check if starttls is supported, the state is the right one and it was // not started before if (session.isStartTLSSupported() && session.getHandlerState() == POP3Session.AUTHENTICATION_READY && session.isTLSStarted() == false) { -response = new POP3Response(POP3Response.OK_RESPONSE, "Begin TLS negotiation"); -session.writeResponse(response); -try { -session.startTLS(); -} catch (IOException e) { -session.getLogger().info("Error while trying to secure connection", e); - -// disconnect -response = new POP3Response(POP3Response.ERR_RESPONSE); -response.setEndSession(true); -return response; -} +response = new StartTlsPop3Response(POP3Response.OK_RESPONSE, "Be
svn commit: r1171499 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ impl/src/main/java/org/apache/james/protocols/impl/ smtp/src/main/java/org/apache/james/protocols/sm
Author: norman Date: Fri Sep 16 10:54:43 2011 New Revision: 1171499 URL: http://svn.apache.org/viewvc?rev=1171499&view=rev Log: Handle STARTTLS correctly by use an special interface for the SMTPStartTlsResponse. See PROTOCOLS-30 Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsResponse.java (with props) james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPStartTLSResponse.java (with props) Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/TLSSupportedSession.java james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/StartTlsCmdHandler.java Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsResponse.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsResponse.java?rev=1171499&view=auto == --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsResponse.java (added) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsResponse.java Fri Sep 16 10:54:43 2011 @@ -0,0 +1,30 @@ +/ + * 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; + +/** + * An special sub-type of {@link Response} which makes it possible to detect a response to a STARTTLS request. + * + * After writing this response its a MUST to enable STARTTLS before further processing + * + */ +public interface StartTlsResponse extends Response { + +} Propchange: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsResponse.java -- svn:mime-type = text/plain Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/TLSSupportedSession.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/TLSSupportedSession.java?rev=1171499&r1=1171498&r2=1171499&view=diff == --- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/TLSSupportedSession.java (original) +++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/TLSSupportedSession.java Fri Sep 16 10:54:43 2011 @@ -20,10 +20,12 @@ package org.apache.james.protocols.api; -import java.io.IOException; /** - * Session which supports TLS + * Session which supports STARTTLS. Implementations of this interface must take special + * care of handling {@link StartTlsResponse}'s. Once such a response was written to the client + * the server MUST take care of start the TLS encryption before do any futher processing + * * * */ @@ -58,11 +60,13 @@ public interface TLSSupportedSession ext */ boolean isTLSStarted(); + /** - * Start TLS encryption + * Write the response back to the client. Special care MUST be take to handle {@link StartTlsResponse} instances. + * * - * @throws IOException + * @param response */ -void startTLS() throws IOException; +void writeResponse(Response response); } Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java?rev=1171499&r1=1171498&r2=1171499&view=diff =
[jira] [Created] (PROTOCOLS-31) Add a simple netty bases SMTPServer implementation
Add a simple netty bases SMTPServer implementation -- Key: PROTOCOLS-31 URL: https://issues.apache.org/jira/browse/PROTOCOLS-31 Project: JAMES Protocols Issue Type: New Feature Components: smtp Affects Versions: 1.5 Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 1.6 At the moment we only ship the api for the SMTP-Server + some transport independent stuff. It would be nice if we could also include some simple SMTPServer which can be used in an easy way. Something like subetha-smtp or mailster. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (PROTOCOLS-30) STARTTLS handling is not correct and can cause touble execution of the STARTTLS handling
STARTTLS handling is not correct and can cause touble execution of the STARTTLS handling Key: PROTOCOLS-30 URL: https://issues.apache.org/jira/browse/PROTOCOLS-30 Project: JAMES Protocols Issue Type: Bug Components: api, smtp Affects Versions: 1.5 Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 1.6 When we handler STARTTLS we are current write the Response to the client via Session.write(...) , then trigger Session.startTLS() and then return null from the CommandHandler. The problem is that returning null tells the LineHandler to execute the next CommandHandler as it things we was not able to handle the Request. It would be better to return a special type of Response and let the linehandler/Session handle all the other parts -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
Re: [jira] [Commented] (JAMES-1310) Return value of File.[delete|mkdir] is ignored
Still not having an idea if the test case is wrong or of no IOException should be thrown in this case. Any hints are welcome. Thanks and regards Felix On 09/09/2011 01:10 PM, Felix Knecht (JIRA) wrote: [ https://issues.apache.org/jira/browse/JAMES-1310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13101120#comment-13101120 ] Felix Knecht commented on JAMES-1310: - I do have some problems to understand how it exactly should behave in case of a non existing file. I try to explain. Referencing the file org.apache.james.repository.file.AbstractFileRepository a) Method "File getFile(final String key)" [1] declares throwing an IOException. In fact no code inside the method will ever throw such an exception. Should this IOException indicate that the file doesn't exists? b) Method "void remove(final String key)" [2] throws a RuntimeException if any exception occurs. The only exception which could be thrown inside the try block is a NullPointerException, which is thrown in a) if the Method "encode(key)" [3] returns null. This is never the case (it contains at least 'File.separator'). The only thing what could happen is that [3] throws a NullPointerException (if 'key' is null). But a) declares only throwing IOException. Let b) throw an IOException when unable to delete the file (e.g. file does not exist) there's a failing test case [4]. This test case has comment "// removing an unexisting message does not throw/return errors". My questions: - Why does a) declares an IOException? IMO this makes only sense if a) makes a test for file existence. - Do we just ignore the delete failure in case of not existing file to delete or is the test case [4] wrong and should expect an IOException? [1] https://builds.apache.org/view/G-L/view/James/job/james-server-trunk-site/site/xref/org/apache/james/repository/file/AbstractFileRepository.html#233 [2] https://builds.apache.org/view/G-L/view/James/job/james-server-trunk-site/site/xref/org/apache/james/repository/file/AbstractFileRepository.html#277 [3] https://builds.apache.org/view/G-L/view/James/job/james-server-trunk-site/site/xref/org/apache/james/repository/file/AbstractFileRepository.html#332 [4] https://builds.apache.org/view/G-L/view/James/job/james-server-trunk-site/site/xref-test/org/apache/james/mailrepository/AbstractMailRepositoryTest.html#99 Return value of File.[delete|mkdir] is ignored -- Key: JAMES-1310 URL: https://issues.apache.org/jira/browse/JAMES-1310 Project: JAMES Server Issue Type: Bug Affects Versions: 3.0-beta3 Environment: All Reporter: Felix Knecht Assignee: Felix Knecht Fix For: 3.0-beta4 In various places we use java.io.File.[delete|mkdir] without respecting the return value. File.delete e.g. may just return false if the file/directory can't be deleted/created because of any other reason than a SecurityException [1]. In case the return value is false an IOException should be thrown -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org