Re: [jira] [Commented] (JAMES-1310) Return value of File.[delete|mkdir] is ignored

2011-09-16 Thread Felix Knecht
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-tabpanelfocusedCommentId=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



[jira] [Created] (PROTOCOLS-30) STARTTLS handling is not correct and can cause touble execution of the STARTTLS handling

2011-09-16 Thread Norman Maurer (JIRA)
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



[jira] [Created] (PROTOCOLS-31) Add a simple netty bases SMTPServer implementation

2011-09-16 Thread Norman Maurer (JIRA)
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



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

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 10:54:43 2011
New Revision: 1171499

URL: http://svn.apache.org/viewvc?rev=1171499view=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=1171499view=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=1171499r1=1171498r2=1171499view=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=1171499r1=1171498r2=1171499view=diff

svn commit: r1171500 - in /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server: StartTlsPop3Response.java core/StlsCmdHandler.java

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 10:56:13 2011
New Revision: 1171500

URL: http://svn.apache.org/viewvc?rev=1171500view=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=1171500view=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=1171500r1=1171499r2=1171500view=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, 
Begin TLS 

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

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 10:57:30 2011
New Revision: 1171501

URL: http://svn.apache.org/viewvc?rev=1171501view=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=1171501view=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 @@
+?xml version=1.0 encoding=UTF-8?
+classpath
+   classpathentry kind=src path=src/main/java/
+   classpathentry kind=src path=src/test/java/
+   classpathentry kind=con 
path=org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5/
+   classpathentry kind=con 
path=org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER/
+   classpathentry kind=output path=target/classes/
+/classpath

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=1171501view=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 @@
+?xml version=1.0 encoding=UTF-8?
+projectDescription
+   nameprotocols-smtp-netty/name
+   comment/comment
+   projects
+   /projects
+   buildSpec
+   buildCommand
+   nameorg.eclipse.jdt.core.javabuilder/name
+   arguments
+   /arguments
+   /buildCommand
+   buildCommand
+   nameorg.eclipse.m2e.core.maven2Builder/name
+   arguments
+   /arguments
+   /buildCommand
+   /buildSpec
+   natures
+   natureorg.eclipse.pde.PluginNature/nature
+   natureorg.eclipse.jdt.core.javanature/nature
+   natureorg.eclipse.m2e.core.maven2Nature/nature
+   /natures
+/projectDescription

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=1171501view=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 @@
+?xml version=1.0 encoding=ISO-8859-15?
+!--
+  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 

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/

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 10:58:43 2011
New Revision: 1171502

URL: http://svn.apache.org/viewvc?rev=1171502view=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=1171502r1=1171501r2=1171502view=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=1171502r1=1171501r2=1171502view=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 maxConnectsPerIp, 

svn commit: r1171509 - /james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 11:27:01 2011
New Revision: 1171509

URL: http://svn.apache.org/viewvc?rev=1171509view=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=1171509r1=1171508r2=1171509view=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: 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/

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 11:27:54 2011
New Revision: 1171510

URL: http://svn.apache.org/viewvc?rev=1171510view=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=1171510r1=1171509r2=1171510view=diff
==
--- james/server/trunk/pom.xml (original)
+++ james/server/trunk/pom.xml Fri Sep 16 11:27:54 2011
@@ -632,7 +632,11 @@
   artifactIdprotocols-smtp/artifactId
   version${protocols.version}/version
 /dependency
-
+dependency
+  groupIdorg.apache.james.protocols/groupId
+  artifactIdprotocols-smtp-netty/artifactId
+  version${protocols.version}/version
+/dependency
 
 dependency
   groupIdorg.apache.james/groupId

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java?rev=1171510r1=1171509r2=1171510view=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=1171510r1=1171509r2=1171510view=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 

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/

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 11:35:12 2011
New Revision: 1171513

URL: http://svn.apache.org/viewvc?rev=1171513view=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=1171513r1=1171512r2=1171513view=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 @@
   artifactIdprotocols-impl/artifactId
 /dependency   
 dependency
+  groupIdorg.apache.james.protocols/groupId
+  artifactIdprotocols-smtp-netty/artifactId
+/dependency 
+dependency
   groupIdorg.apache.james/groupId
   artifactIdapache-james-mailbox-api/artifactId
 /dependency

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=1171513r1=1171512r2=1171513view=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=1171513r1=1171512r2=1171513view=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: r1171587 - /james/protocols/trunk/pom.xml

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 14:29:45 2011
New Revision: 1171587

URL: http://svn.apache.org/viewvc?rev=1171587view=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=1171587r1=1171586r2=1171587view=diff
==
--- james/protocols/trunk/pom.xml (original)
+++ james/protocols/trunk/pom.xml Fri Sep 16 14:29:45 2011
@@ -37,6 +37,7 @@
 moduleapi/module
 modulesmtp/module
 moduleimpl/module
+modulesmtp-netty/module
   /modules
   ciManagement
 systemhudson/system



-
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

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 14:31:17 2011
New Revision: 1171588

URL: http://svn.apache.org/viewvc?rev=1171588view=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=1171588r1=1171587r2=1171588view=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 R
  */
-public abstract class AbstractResponseEncoderR extends Response extends 
OneToOneEncoder{
+public class AbstractResponseEncoder extends OneToOneEncoder{
 
 private Class? extends Response 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;
-ListString lines = getResponse(response);
+Response response = (Response) obj;
+ListCharSequence 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 ListString 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=1171588r1=1171587r2=1171588view=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 {
+  

svn commit: r1171589 - in /james/protocols/trunk/smtp-netty: .classpath .project

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 14:32:31 2011
New Revision: 1171589

URL: http://svn.apache.org/viewvc?rev=1171589view=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: r1171594 - /james/protocols/trunk/smtp-netty/

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 14:36:09 2011
New Revision: 1171594

URL: http://svn.apache.org/viewvc?rev=1171594view=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: 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

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 15:32:17 2011
New Revision: 1171625

URL: http://svn.apache.org/viewvc?rev=1171625view=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=1171625view=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();
+
+T extends ProtocolSession void pushLineHandler(LineHandlerT 
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=1171625r1=1171624r2=1171625view=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 @@ 

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

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 15:42:54 2011
New Revision: 1171630

URL: http://svn.apache.org/viewvc?rev=1171630view=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.javap1=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.javar1=1171625r2=1171630rev=1171630view=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.javap1=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/SessionLog.javar1=1171593r2=1171630rev=1171630view=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=1171630r1=1171629r2=1171630view=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: r1171632 - in /james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty: SMTPChannelUpstreamHandler.java SMTPNettySession.java SMTPSessionImpl.java

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 15:44:36 2011
New Revision: 1171632

URL: http://svn.apache.org/viewvc?rev=1171632view=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=1171632r1=1171631r2=1171632view=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.javap1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPNettySession.javar1=1171630r2=1171632rev=1171632view=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 HashMapString, Object();
@@ -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: 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/

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 15:46:11 2011
New Revision: 1171635

URL: http://svn.apache.org/viewvc?rev=1171635view=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=1171635r1=1171634r2=1171635view=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.javap1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPSessionImpl.javar1=1171632r2=1171635rev=1171635view=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



[jira] [Created] (MAILBOX-134) MailboxListener may not removed even if MailboxListener.isClosed() is true

2011-09-16 Thread Norman Maurer (JIRA)
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] [Resolved] (MAILBOX-134) MailboxListener may not removed even if MailboxListener.isClosed() is true

2011-09-16 Thread Norman Maurer (JIRA)

 [ 
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



svn commit: r1171685 - in /james/mailbox/trunk: api/src/main/java/org/apache/james/mailbox/ store/src/main/java/org/apache/james/mailbox/store/

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 17:30:15 2011
New Revision: 1171685

URL: http://svn.apache.org/viewvc?rev=1171685view=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=1171685r1=1171684r2=1171685view=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);
 
 /**
- * p
- * Is this listener closed?br
- * Closed listeners may be unsubscribed.
- * /p
- * p
- * Be aware that if the listener is marked as close it will not get any
- * events passed anymore!
- * /p
- * 
- * @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=1171685r1=1171684r2=1171685view=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=1171685r1=1171684r2=1171685view=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) {
 ListMailboxListener mListeners = listeners.get(path);
 if (mListeners != null  mListeners.isEmpty() == false) {
-ListMailboxListener closedListener = new 
ArrayListMailboxListener();
 
 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 

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

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 17:32:34 2011
New Revision: 1171686

URL: http://svn.apache.org/viewvc?rev=1171686view=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=1171686r1=1171685r2=1171686view=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: r1171693 - /james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java

2011-09-16 Thread norman
Author: norman
Date: Fri Sep 16 17:47:45 2011
New Revision: 1171693

URL: http://svn.apache.org/viewvc?rev=1171693view=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=1171693r1=1171692r2=1171693view=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: 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/

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 22:33:58 2011
New Revision: 1171835

URL: http://svn.apache.org/viewvc?rev=1171835view=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=1171835view=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=1171835r1=1171834r2=1171835view=diff
==
--- 
james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.java
 Fri Sep 16 22:33:58 2011
@@ -23,12 +23,11 @@ import javax.net.ssl.SSLEngine;
 
 import org.apache.james.protocols.api.ProtocolHandlerChain;
 import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.api.ProtocolSessionFactory;
 import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler;
 import org.apache.james.protocols.impl.NettyProtocolTransport;
-import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
-import org.apache.james.protocols.smtp.SMTPSessionImpl;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelFutureListener;
 import org.jboss.netty.channel.ChannelHandler.Sharable;
@@ -44,17 +43,17 @@ import org.slf4j.Logger;
 @Sharable
 public class SMTPChannelUpstreamHandler extends AbstractChannelUpstreamHandler 
{
 protected final Logger logger;
-protected final SMTPConfiguration conf;
 protected final SSLContext context;
 protected String[] enabledCipherSuites;
+protected ProtocolSessionFactory sessionFactory;
 
-public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger) {
-this(chain, conf, logger, null, null);
+public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger) {
+this(chain, sessionFactory, logger, null, null);
 }
 
-public SMTPChannelUpstreamHandler(ProtocolHandlerChain 

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/

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 23:33:39 2011
New Revision: 1171854

URL: http://svn.apache.org/viewvc?rev=1171854view=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=1171854r1=1171853r2=1171854view=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=1171854r1=1171853r2=1171854view=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=1171854r1=1171853r2=1171854view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
 (original)
+++ 

svn commit: r1171855 - in /james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty: BasicChannelUpstreamHandler.java SMTPChannelUpstreamHandler.java SMTPServer.java

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 23:35:16 2011
New Revision: 1171855

URL: http://svn.apache.org/viewvc?rev=1171855view=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.javap1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPChannelUpstreamHandler.javar1=1171854r2=1171855rev=1171855view=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=1171855r1=1171854r2=1171855view=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: 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

2011-09-16 Thread bago
Author: bago
Date: Fri Sep 16 23:37:11 2011
New Revision: 1171856

URL: http://svn.apache.org/viewvc?rev=1171856view=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.javap1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/BasicChannelUpstreamHandler.javar1=1171855r2=1171856rev=1171856view=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=1171856r1=1171855r2=1171856view=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=1171856r1=1171855r2=1171856view=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: 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/

2011-09-16 Thread bago
Author: bago
Date: Sat Sep 17 00:16:40 2011
New Revision: 1171871

URL: http://svn.apache.org/viewvc?rev=1171871view=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=1171871view=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) {
+eHandler 

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/

2011-09-16 Thread bago
Author: bago
Date: Sat Sep 17 00:31:36 2011
New Revision: 1171877

URL: http://svn.apache.org/viewvc?rev=1171877view=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=1171877view=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? extends Response 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=1171877r1=1171876r2=1171877view=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 

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

2011-09-16 Thread bago
Author: bago
Date: Sat Sep 17 00:34:00 2011
New Revision: 1171878

URL: http://svn.apache.org/viewvc?rev=1171878view=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.javap1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/NettyServer.javar1=1171877r2=1171878rev=1171878view=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=1171878r1=1171877r2=1171878view=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.javap1=james/protocols/trunk/smtp-netty/src/main/java/org/apache/james/protocols/smtp/netty/SMTPProtocol.javar1=1171877r2=1171878rev=1171878view=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