svn commit: r1175769 - /james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java

2011-09-26 Thread norman
Author: norman
Date: Mon Sep 26 10:10:50 2011
New Revision: 1175769

URL: http://svn.apache.org/viewvc?rev=1175769view=rev
Log:
Fix management operations. See JAMES-1316

Modified:

james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java

Modified: 
james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java?rev=1175769r1=1175768r2=1175769view=diff
==
--- 
james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
 (original)
+++ 
james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
 Mon Sep 26 10:10:50 2011
@@ -28,6 +28,8 @@ import java.io.InputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.util.Iterator;
+import java.util.Map.Entry;
+import java.util.NoSuchElementException;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executors;
@@ -424,15 +426,31 @@ public class FileMailQueue implements Ma
 return i;
 }
 
-/**
- * TODO: implement me
- * 
- * @return
- * @throws MailQueueException
- */
 @Override
 public long clear() throws MailQueueException {
-throw new MailQueueException(Not supported yet);
+final IteratorEntryString, FileItem items = 
keyMappings.entrySet().iterator();
+long count = 0;
+while(items.hasNext()) {
+EntryString, FileItem entry = items.next();
+FileItem item = entry.getValue();
+String key = entry.getKey();
+File msgFile = new File(item.getMessageFile());
+File objectFile = new File(item.getObjectFile());
+if (objectFile.exists()) {
+if (!objectFile.delete()) {
+throw new MailQueueException(Unable to delete mail  + 
key);
+} 
+}
+keyMappings.remove(key);
+count++;
+if (msgFile.exists()) {
+if (!msgFile.delete()) {
+log.debug(Remove of msg file for mail  + key + failed);
+}
+
+}
+}
+return count;
 }
 
 /**
@@ -449,15 +467,78 @@ public class FileMailQueue implements Ma
 
 }
 
-/**
- * TODO: implement me
- * 
- * @return
- * @throws MailQueueException
- */
 @Override
 public MailQueueIterator browse() throws MailQueueException {
-throw new MailQueueException(Not supported yet);
+final IteratorFileItem items = keyMappings.values().iterator();
+return new MailQueueIterator() {
+private MailQueueItemView item = null;
+
+@Override
+public void remove() {
+throw new UnsupportedOperationException(Read-only);
+}
+
+@Override
+public MailQueueItemView next() {
+if (hasNext()) {
+MailQueueItemView vitem = item;
+item = null;
+return vitem;
+} else {
+
+throw new NoSuchElementException();
+}
+}
+
+@Override
+public boolean hasNext() {
+if (item == null) {
+while (items.hasNext()) {
+ObjectInputStream in = null;
+try {
+in = new ObjectInputStream(new 
FileInputStream(items.next().getObjectFile()));
+final Mail mail = (Mail) in.readObject();
+item = new MailQueueItemView() {
+
+@Override
+public long getNextDelivery() {
+return (Long) 
mail.getAttribute(NEXT_DELIVERY);
+}
+
+@Override
+public Mail getMail() {
+return mail;
+}
+};
+return true;
+} catch (FileNotFoundException e) {
+log.info(Unable to load mail, e);
+} catch (IOException e) {
+log.info(Unable to load mail, e);
+
+} catch (ClassNotFoundException e) {
+log.info(Unable to load mail, e);
+} finally {
+if (in != null) {
+try {
+in.close

svn commit: r1175811 - /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java

2011-09-26 Thread norman
Author: norman
Date: Mon Sep 26 11:52:44 2011
New Revision: 1175811

URL: http://svn.apache.org/viewvc?rev=1175811view=rev
Log:
Use extra hashmap to store state of session

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?rev=1175811r1=1175810r2=1175811view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 Mon Sep 26 11:52:44 2011
@@ -30,13 +30,11 @@ import org.apache.james.protocols.api.Re
 import org.slf4j.Logger;
 
 /**
- * Abstract implementation of TLSSupportedSession which use Netty
+ * Abstract implementation of {@link ProtocolSession}
  * 
  * 
  */
 public abstract class AbstractSession implements ProtocolSession {
-/** the Session state */
-final static String SESSION_STATE_MAP = SESSION_STATE_MAP;
 
 protected InetSocketAddress socketAddress;
 private Logger logger;
@@ -48,6 +46,7 @@ public abstract class AbstractSession im
 protected ProtocolTransport transport;
 
 private MapString, Object connectionState;
+private MapString, Object sessionState;
 
 
 public AbstractSession(Logger logger, ProtocolTransport transport) {
@@ -56,61 +55,69 @@ public abstract class AbstractSession im
 this.logger = logger;
 this.id = transport.getId();
 this.connectionState = new HashMapString, Object();
+this.sessionState = new HashMapString, Object();
+
 }
 
-/**
- * @see org.apache.james.api.protocol.TLSSupportedSession#getRemoteHost()
+/*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getRemoteHost()
  */
 public String getRemoteHost() {
 return socketAddress.getHostName();
 }
 
-/**
- * @see 
org.apache.james.api.protocol.TLSSupportedSession#getRemoteIPAddress()
+/*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getRemoteIPAddress()
  */
 public String getRemoteIPAddress() {
 return socketAddress.getAddress().getHostAddress();
 }
 
-/**
- * @see org.apache.james.api.protocol.TLSSupportedSession#getUser()
+/*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getUser()
  */
 public String getUser() {
 return user;
 }
 
-/**
- * @see 
org.apache.james.api.protocol.TLSSupportedSession#setUser(java.lang.String)
+/*
+ * (non-Javadoc)
+ * @see 
org.apache.james.protocols.api.ProtocolSession#setUser(java.lang.String)
  */
 public void setUser(String user) {
 this.user = user;
 }
 
-/**
- * Return underlying {@link ProtocolTransport}
+/*
  * 
- * @return session
  */
 public ProtocolTransport getProtocolTransport() {
 return transport;
 }
 
-/**
- * @see 
org.apache.james.api.protocol.TLSSupportedSession#isStartTLSSupported()
+/*
+ * (non-Javadoc)
+ * @see 
org.apache.james.protocols.api.ProtocolSession#isStartTLSSupported()
  */
 public boolean isStartTLSSupported() {
 return transport.isStartTLSSupported();
 }
 
-/**
- * @see org.apache.james.api.protocol.TLSSupportedSession#isTLSStarted()
+/*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#isTLSStarted()
  */
 public boolean isTLSStarted() {
 return transport.isTLSStarted();
 }
 
-/**
- * @see org.apache.james.api.protocol.ProtocolSession#getLogger()
+
+/*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getLogger()
  */
 public Logger getLogger() {
 if (pLog == null) {
@@ -146,24 +153,22 @@ public abstract class AbstractSession im
 }
 
 
-/**
- * @see org.apache.james.protocols.smtp.SMTPSession#getConnectionState()
+
+/*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getConnectionState()
  */
 public MapString, Object getConnectionState() {
 return connectionState;
 }
 
-/**
- * @see org.apache.james.protocols.smtp.SMTPSession#getState()
+/*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getState()
  */
 @SuppressWarnings(unchecked)
 public MapString, Object getState() {
-MapString, Object res = (MapString, Object) 
getConnectionState().get(SESSION_STATE_MAP);
-if (res == null) {
-res = new HashMapString, Object();
-getConnectionState().put(SESSION_STATE_MAP, res

svn commit: r1175825 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ impl/src/main/java/org/apache/james/protocols/impl/

2011-09-26 Thread norman
Author: norman
Date: Mon Sep 26 12:26:03 2011
New Revision: 1175825

URL: http://svn.apache.org/viewvc?rev=1175825view=rev
Log:
Remove ProtocolSession.writeResponse(...). See PROTOCOLS-35

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyProtocolTransport.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?rev=1175825r1=1175824r2=1175825view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 Mon Sep 26 12:26:03 2011
@@ -24,9 +24,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 
-import org.apache.james.protocols.api.FutureResponse.ResponseListener;
 import org.apache.james.protocols.api.ProtocolTransport;
-import org.apache.james.protocols.api.Response;
 import org.slf4j.Logger;
 
 /**
@@ -129,23 +127,6 @@ public abstract class AbstractSession im
 
 /*
  * (non-Javadoc)
- * @see 
org.apache.james.api.protocol.ProtocolSession#writeResponse(org.apache.james.api.protocol.Response)
- */
-public void writeResponse(final Response response) {
-if (response instanceof FutureResponse) {
-((FutureResponse) response).addListener(new ResponseListener() {
-
-public void onResponse(Response response) {
-transport.writeResponse(response, AbstractSession.this);
-}
-});
-} else {
-transport.writeResponse(response, this);
-}
-}
-
-/*
- * (non-Javadoc)
  * @see org.apache.james.protocols.api.ProtocolSession#getSessionID()
  */
 public String getSessionID() {

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=1175825r1=1175824r2=1175825view=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
 Mon Sep 26 12:26:03 2011
@@ -58,14 +58,6 @@ public interface ProtocolSession {
  */
 void resetState();
 
-/**
- * Write the response back to the client. Special care MUST be take to 
handle {@link StartTlsResponse} instances.
- * 
- * 
- * @param response
- */
-void writeResponse(Response response);
-
 
 /**
  * Returns host name of the client

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java?rev=1175825r1=1175824r2=1175825view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 Mon Sep 26 12:26:03 2011
@@ -24,6 +24,7 @@ import java.util.List;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLEngine;
 
+import org.apache.james.protocols.api.AbstractSession;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.ProtocolSessionFactory;
 import org.apache.james.protocols.api.Response;
@@ -102,7 +103,7 @@ public class BasicChannelUpstreamHandler
 resultHandlers.get(a).onResponse(session, executionTime, 
cHandler);
 }
 if (response != null) {
-session.writeResponse(response);
+
((AbstractSession)session).getProtocolTransport().writeResponse(response, 
session);
 }

 }
@@ -158,7 +159,7 @@ public class BasicChannelUpstreamHandler
 resultHandlers.get(i).onResponse(pSession, executionTime, 
lHandler);
 }
 if (response != null

svn commit: r1175826 - /james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java

2011-09-26 Thread norman
Author: norman
Date: Mon Sep 26 12:26:58 2011
New Revision: 1175826

URL: http://svn.apache.org/viewvc?rev=1175826view=rev
Log:
Remove ProtocolSession.writeResponse(...). See PROTOCOLS-35

Modified:

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java

Modified: 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java?rev=1175826r1=1175825r2=1175826view=diff
==
--- 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
 (original)
+++ 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
 Mon Sep 26 12:26:58 2011
@@ -103,7 +103,7 @@ public class DataLineLMTPMessageHookHand
 } catch (MessagingException e) {
 // TODO probably return a temporary problem
 session.getLogger().info(Unexpected error handling DATA 
stream, e);
-session.writeResponse(new 
SMTPResponse(SMTPRetCode.LOCAL_ERROR, Unexpected error handling DATA 
stream.));
+return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
Unexpected error handling DATA stream.);
 } finally {
 LifecycleUtil.dispose(mimeMessageCopyOnWriteProxy);
 LifecycleUtil.dispose(mmiss);



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Created] (PROTOCOLS-36) NettyProtocolSession.writeResponse(...) does not maintain order of written Responses if FutureResponse and Response is mixed

2011-09-26 Thread Norman Maurer (JIRA)
NettyProtocolSession.writeResponse(...) does not maintain order of written 
Responses if FutureResponse and Response is mixed


 Key: PROTOCOLS-36
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-36
 Project: JAMES Protocols
  Issue Type: Bug
Affects Versions: 1.6
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.6


If we mix FutureResponse and Response implementation we MUST ensure that the 
right order of responses is maintained. This basicly means that we need to put 
responses in a queue and dequeue them in the right order (respecting the 
FutureResponse async nature)

--
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: r1176210 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/handler/ impl/src/main/java/org/apache/james/protocols/impl/ impl/src/main/java/org/apache/james/prot

2011-09-26 Thread norman
Author: norman
Date: Tue Sep 27 05:54:29 2011
New Revision: 1176210

URL: http://svn.apache.org/viewvc?rev=1176210view=rev
Log:
Just use one interface for result handling

Added:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerResultHandler.java
  - copied, changed from r1175675, 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultHandler.java
Removed:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultHandler.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ConnectHandlerResultHandler.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/LineHandlerResultHandler.java
Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java?rev=1176210r1=1176209r2=1176210view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
 Tue Sep 27 05:54:29 2011
@@ -45,7 +45,7 @@ public abstract class AbstractCommandDis
  */
 private HashMapString, ListCommandHandlerSession commandHandlerMap = 
new HashMapString, ListCommandHandlerSession();
 
-private ListCommandHandlerResultHandlerResponse, Session rHandlers = 
new ArrayListCommandHandlerResultHandlerResponse, Session();
+private ListProtocolHandlerResultHandlerResponse, Session rHandlers = 
new ArrayListProtocolHandlerResultHandlerResponse, Session();
 
 private final Charset charset = Charset.forName(getLineDecodingCharset());
 
@@ -93,7 +93,7 @@ public abstract class AbstractCommandDis
  */
 @SuppressWarnings(unchecked)
 public void wireExtensions(Class interfaceName, List extension) throws 
WiringException {
-if (interfaceName.equals(CommandHandlerResultHandler.class)) {
+if (interfaceName.equals(ProtocolHandlerResultHandler.class)) {
 rHandlers.addAll(extension);
 }
 if (interfaceName.equals(CommandHandler.class)) {
@@ -149,6 +149,7 @@ public abstract class AbstractCommandDis
 
 BaseRequest request = new BaseRequest(curCommandName, 
curCommandArgument);
 IteratorCommandHandlerSession handlers = 
commandHandlers.iterator();
+
 while (handlers.hasNext()) {
 final long start = System.currentTimeMillis();
 CommandHandlerSession cHandler = handlers.next();
@@ -181,7 +182,7 @@ public abstract class AbstractCommandDis
 public ListClass? getMarkerInterfaces() {
 List res = new LinkedList();
 res.add(CommandHandler.class);
-res.add(CommandHandlerResultHandler.class);
+res.add(ProtocolHandlerResultHandler.class);
 return res;
 }
 

Copied: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerResultHandler.java
 (from r1175675, 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultHandler.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerResultHandler.java?p2=james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerResultHandler.javap1=james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultHandler.javar1=1175675r2=1176210rev=1176210view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultHandler.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerResultHandler.java
 Tue Sep 27 05:54:29 2011
@@ -22,15 +22,15 @@ package org.apache.james.protocols.api.h
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
 
-public interface CommandHandlerResultHandlerR extends Response, S extends 
ProtocolSession extends ProtocolHandler{
+public interface ProtocolHandlerResultHandlerR extends Response, S extends 
ProtocolSession extends ProtocolHandler

svn commit: r1176211 - in /james/server/trunk: pop3server/src/main/java/org/apache/james/pop3server/jmx/ protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ smtpserver/src/main/java/or

2011-09-26 Thread norman
Author: norman
Date: Tue Sep 27 05:55:31 2011
New Revision: 1176211

URL: http://svn.apache.org/viewvc?rev=1176211view=rev
Log:
Just use one interface for result handling

Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/ConnectHandlerResultJMXMonitor.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/LineHandlerResultJMXMonitor.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java?rev=1176211r1=1176210r2=1176211view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -18,10 +18,11 @@
  /
 package org.apache.james.pop3server.jmx;
 
+import org.apache.james.pop3server.POP3Response;
 import org.apache.james.pop3server.POP3Session;
 import 
org.apache.james.protocols.lib.jmx.AbstractConnectHandlerResultJMXMonitor;
 
-public class ConnectHandlerResultJMXMonitor extends 
AbstractConnectHandlerResultJMXMonitorPOP3Session {
+public class ConnectHandlerResultJMXMonitor extends 
AbstractConnectHandlerResultJMXMonitorPOP3Response, POP3Session {
 
 /*
  * (non-Javadoc)

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java?rev=1176211r1=1176210r2=1176211view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -18,10 +18,11 @@
  /
 package org.apache.james.pop3server.jmx;
 
+import org.apache.james.pop3server.POP3Response;
 import org.apache.james.pop3server.POP3Session;
 import org.apache.james.protocols.lib.jmx.AbstractLineHandlerResultJMXMonitor;
 
-public class LineHandlerResultJMXMonitor extends 
AbstractLineHandlerResultJMXMonitorPOP3Session {
+public class LineHandlerResultJMXMonitor extends 
AbstractLineHandlerResultJMXMonitorPOP3Response, POP3Session {
 
 /*
  * (non-Javadoc)

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java?rev=1176211r1=1176210r2=1176211view=diff
==
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -29,7 +29,8 @@ import org.apache.commons.configuration.
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.api.handler.CommandHandlerResultHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandlerResultHandler;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import

svn commit: r1175345 - /james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 09:23:17 2011
New Revision: 1175345

URL: http://svn.apache.org/viewvc?rev=1175345view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Modified:

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java

Modified: 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java?rev=1175345r1=1175344r2=1175345view=diff
==
--- 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
 (original)
+++ 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
 Sun Sep 25 09:23:17 2011
@@ -36,6 +36,7 @@ import org.apache.james.mailbox.MailboxE
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxPath;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -66,7 +67,7 @@ public class DataLineLMTPMessageHookHand
 }
 
 @SuppressWarnings(unchecked)
-public void onLine(SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
+public Response onLine(SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
 MimeMessageInputStreamSource mmiss = (MimeMessageInputStreamSource) 
session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
 
 try {
@@ -124,9 +125,11 @@ public class DataLineLMTPMessageHookHand
 SMTPResponse response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) +  Error 
processing message:  + e.getMessage());
 
 session.getLogger().error(Unknown error occurred while processing 
DATA., e);
-session.writeResponse(response);
-return;
+return response;
 }
+
+// TODO: Fix me as we should better return the response all the time
+return null;
 }
 
 /**



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175419 - in /james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver: DataLineLMTPMessageHookHandler.java LMTPMultiResponse.java netty/LMTPServer.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 16:06:40 2011
New Revision: 1175419

URL: http://svn.apache.org/viewvc?rev=1175419view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Added:

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java
   (with props)
Modified:

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java

Modified: 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java?rev=1175419r1=1175418r2=1175419view=diff
==
--- 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
 (original)
+++ 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/DataLineLMTPMessageHookHandler.java
 Sun Sep 25 16:06:40 2011
@@ -91,12 +91,14 @@ public class DataLineLMTPMessageHookHand
 mimeMessageCopyOnWriteProxy = new 
MimeMessageCopyOnWriteProxy(mmiss);
 mail.setMessage(mimeMessageCopyOnWriteProxy);
 
-deliverMail(session, mail);
+Response response = deliverMail(session, mail);
 
 session.popLineHandler();
 
 // do the clean up
 session.resetState();
+
+return response;
 
 } catch (MessagingException e) {
 // TODO probably return a temporary problem
@@ -128,7 +130,6 @@ public class DataLineLMTPMessageHookHand
 return response;
 }
 
-// TODO: Fix me as we should better return the response all the time
 return null;
 }
 
@@ -139,7 +140,9 @@ public class DataLineLMTPMessageHookHand
  * @param mail
  */
 @SuppressWarnings(unchecked)
-protected void deliverMail(SMTPSession session, Mail mail) {
+protected LMTPMultiResponse deliverMail(SMTPSession session, Mail mail) {
+LMTPMultiResponse mResponse = null;
+
 IteratorMailAddress recipients = mail.getRecipients().iterator();
 while (recipients.hasNext()) {
 MailAddress recipient = recipients.next();
@@ -177,8 +180,13 @@ public class DataLineLMTPMessageHookHand
 session.getLogger().info(Unexpected error handling DATA 
stream, e);
 response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) +  
Temporary error deliver message to  + recipient);
 }
-session.writeResponse(response);
+if (mResponse == null) {
+mResponse = new LMTPMultiResponse(response);
+} else {
+mResponse.addResponse(response);
+}
 }
+return mResponse;
 
 }
 

Added: 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java?rev=1175419view=auto
==
--- 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java
 (added)
+++ 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java
 Sun Sep 25 16:06:40 2011
@@ -0,0 +1,79 @@
+/
+ * 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

svn commit: r1175434 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java api/src/main/java/org/apache/james/protocols/api/Response.java impl/src/main/ja

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:28:54 2011
New Revision: 1175434

URL: http://svn.apache.org/viewvc?rev=1175434view=rev
Log:
Remove Response.getRawLine()

Added:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.java
   (with props)
Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java?rev=1175434r1=1175433r2=1175434view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 Sun Sep 25 17:28:54 2011
@@ -32,7 +32,6 @@ public abstract class AbstractResponse i
 
 private String retCode = null;
 protected final ListCharSequence lines = new LinkedListCharSequence();;
-protected String rawLine = null;
 private boolean endSession = false;
 
 protected AbstractResponse() {
@@ -50,7 +49,6 @@ public abstract class AbstractResponse i
 if (code == null) throw new IllegalArgumentException(code can not be 
null);
 this.setRetCode(code);
 this.appendLine(description);
-this.rawLine = code +   + description;
 }
 
 
@@ -84,15 +82,6 @@ public abstract class AbstractResponse i
 

 /**
- * Return the raw representation of the Stored SMTPResponse
- * 
- * @return rawLine the raw SMTPResponse
- */
-public String getRawLine() {
-return rawLine;
-}
-
-/**
  * Return true if the session is ended
  * 
  * @return true if session is ended

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java?rev=1175434r1=1175433r2=1175434view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 Sun Sep 25 17:28:54 2011
@@ -43,10 +43,6 @@ public interface Response {
 return Collections.EMPTY_LIST;
 }
 
-public String getRawLine() {
-return ;
-}
-
 public boolean isEndSession() {
 return true;
 }
@@ -69,12 +65,6 @@ public interface Response {
  */
 ListCharSequence getLines();
 
-/**
- * Return the raw representation of the stored Response
- * 
- * @return rawLine the raw Response
- */
-String getRawLine();
 
 /**
  * Return true if the session is ended

Added: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.java?rev=1175434view=auto
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.java
 (added)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.java
 Sun Sep 25 17:28:54 2011
@@ -0,0 +1,7 @@
+package org.apache.james.protocols.impl;
+
+public interface NettyConstants {
+
+   public final static String TRANSPORT = TRANSPORT;
+   public final static String SESSION = SESSION;
+}

Propchange: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.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: r1175435 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:31:13 2011
New Revision: 1175435

URL: http://svn.apache.org/viewvc?rev=1175435view=rev
Log:
Remove not needed castings

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java?rev=1175435r1=1175434r2=1175435view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
 Sun Sep 25 17:31:13 2011
@@ -22,9 +22,9 @@ package org.apache.james.protocols.smtp.
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.smtp.MailEnvelope;
-import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.DataLineFilter;
@@ -137,8 +137,8 @@ public class MailSizeEsmtpExtension impl
  * (non-Javadoc)
  * @see 
org.apache.james.smtpserver.protocol.core.DataLineFilter#onLine(org.apache.james.smtpserver.protocol.SMTPSession,
 byte[], org.apache.james.api.protocol.LineHandler)
  */
-public SMTPResponse onLine(SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
-SMTPResponse response = null;
+public Response onLine(SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
+Response response = null;
Boolean failed = (Boolean) session.getState().get(MESG_FAILED);
 // If we already defined we failed and sent a reply we should simply
 // wait for a CRLF.CRLF to be sent by the client.
@@ -146,7 +146,7 @@ public class MailSizeEsmtpExtension impl
 // TODO
 } else {
 if (line.length == 3  line[0] == 46) {
-response = (SMTPResponse) next.onLine(session, line);
+response = next.onLine(session, line);
 } else {
 Long currentSize = (Long) 
session.getState().get(CURRENT_SIZE);
 Long newSize;
@@ -164,9 +164,9 @@ public class MailSizeEsmtpExtension impl
 session.getState().put(MESG_FAILED, Boolean.TRUE);
 // then let the client know that the size
 // limit has been hit.
-response = (SMTPResponse) next.onLine(session, 
.\r\n.getBytes());
+response = next.onLine(session, .\r\n.getBytes());
 } else {
-response = (SMTPResponse) next.onLine(session, line);
+response = next.onLine(session, line);
 }
 
 session.getState().put(CURRENT_SIZE, newSize);



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175436 - /james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:32:12 2011
New Revision: 1175436

URL: http://svn.apache.org/viewvc?rev=1175436view=rev
Log:
Remove Response.getRawLine()

Modified:

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java

Modified: 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java?rev=1175436r1=1175435r2=1175436view=diff
==
--- 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java
 (original)
+++ 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/LMTPMultiResponse.java
 Sun Sep 25 17:32:12 2011
@@ -20,7 +20,6 @@
 package org.apache.james.lmtpserver;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.james.protocols.api.Response;
@@ -52,19 +51,6 @@ public class LMTPMultiResponse implement
 return lines;
 }
 
-@Override
-public String getRawLine() {
-StringBuilder sb = new StringBuilder();
-IteratorResponse rIt = responses.iterator();
-while(rIt.hasNext()) {
-Response response = rIt.next();
-sb.append(response.getRawLine());
-if (rIt.hasNext()) {
-sb.append(\r\n);
-}
-}
-return sb.toString();
-}
 
 @Override
 public boolean isEndSession() {



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175439 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ smtp/src/main/java/org/apache/james/protocols/smtp/

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:36:43 2011
New Revision: 1175439

URL: http://svn.apache.org/viewvc?rev=1175439view=rev
Log:
Move getConnectionState() to the ProtocolSession and add implementation to 
AbstractSession

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.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/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?rev=1175439r1=1175438r2=1175439view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 Sun Sep 25 17:36:43 2011
@@ -20,6 +20,8 @@
 package org.apache.james.protocols.api;
 
 import java.net.InetSocketAddress;
+import java.util.HashMap;
+import java.util.Map;
 
 
 import org.apache.james.protocols.api.FutureResponse.ResponseListener;
@@ -33,6 +35,9 @@ import org.slf4j.Logger;
  * 
  */
 public abstract class AbstractSession implements ProtocolSession {
+/** the Session state */
+final static String SESSION_STATE_MAP = SESSION_STATE_MAP;
+
 protected InetSocketAddress socketAddress;
 private Logger logger;
 private SessionLog pLog = null;
@@ -42,12 +47,15 @@ public abstract class AbstractSession im
 private String id;
 protected ProtocolTransport transport;
 
+private MapString, Object connectionState;
+
 
 public AbstractSession(Logger logger, ProtocolTransport transport) {
 this.transport = transport;
 this.socketAddress = transport.getRemoteAddress();
 this.logger = logger;
 this.id = transport.getId();
+this.connectionState = new HashMapString, Object();
 }
 
 /**
@@ -138,5 +146,24 @@ public abstract class AbstractSession im
 }
 
 
+/**
+ * @see org.apache.james.protocols.smtp.SMTPSession#getConnectionState()
+ */
+public MapString, Object getConnectionState() {
+return connectionState;
+}
+
+/**
+ * @see org.apache.james.protocols.smtp.SMTPSession#getState()
+ */
+@SuppressWarnings(unchecked)
+public MapString, Object getState() {
+MapString, Object res = (MapString, Object) 
getConnectionState().get(SESSION_STATE_MAP);
+if (res == null) {
+res = new HashMapString, Object();
+getConnectionState().put(SESSION_STATE_MAP, res);
+}
+return res;
+}
 
 }

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=1175439r1=1175438r2=1175439view=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
 Sun Sep 25 17:36:43 2011
@@ -44,6 +44,15 @@ public interface ProtocolSession {
  */
 MapString, Object getState();
 
+
+/**
+ * Returns Map that consists of the state of the {@link ProtocolSession} 
per connection
+ *
+ * @return map of the current {@link ProtocolSession} state per connection
+ */
+MapString,Object getConnectionState();
+
+
 /**
  * Reset the state
  */

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java?rev=1175439r1=1175438r2=1175439view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 Sun Sep 25 17:36:43 2011
@@ -19,8 +19,6 @@
 
 package org.apache.james.protocols.smtp;
 
-import java.util.Map;
-
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.handler.LineHandler;
 
@@ -39,8 +37,6 @@ public interface SMTPSession extends Pro
 /** HELO or EHLO */
 final static String CURRENT_HELO_MODE = CURRENT_HELO_MODE;
 final static String CURRENT_HELO_NAME = CURRENT_HELO_NAME;
-/** the Session state

svn commit: r1175441 - /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:38:32 2011
New Revision: 1175441

URL: http://svn.apache.org/viewvc?rev=1175441view=rev
Log: (empty)

Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java?rev=1175441r1=1175440r2=1175441view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java
 Sun Sep 25 17:38:32 2011
@@ -18,9 +18,6 @@
  /
 package org.apache.james.pop3server;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.protocols.api.AbstractSession;
 import org.apache.james.protocols.api.ProtocolTransport;
@@ -33,8 +30,6 @@ import org.slf4j.Logger;
 public class POP3SessionImpl extends AbstractSession implements POP3Session {
 private POP3HandlerConfiguration configData;
 
-private MapString, Object state = new HashMapString, Object();
-
 private int handlerState;
 
 private MessageManager mailbox;
@@ -63,14 +58,6 @@ public class POP3SessionImpl extends Abs
 return handlerState;
 }
 
-/*
- * (non-Javadoc)
- * 
- * @see org.apache.james.api.protocol.TLSSupportedSession#getState()
- */
-public MapString, Object getState() {
-return state;
-}
 
 /*
  * (non-Javadoc)
@@ -87,7 +74,7 @@ public class POP3SessionImpl extends Abs
  * @see org.apache.james.api.protocol.TLSSupportedSession#resetState()
  */
 public void resetState() {
-state.clear();
+getState().clear();
 
 setHandlerState(AUTHENTICATION_READY);
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175443 - in /james/protocols/trunk/smtp/src: main/java/org/apache/james/protocols/smtp/ main/java/org/apache/james/protocols/smtp/core/fastfail/ test/java/org/apache/james/protocols/smtp

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:42:51 2011
New Revision: 1175443

URL: http://svn.apache.org/viewvc?rev=1175443view=rev
Log:
Remove SMTPSession.sleep(...)

Removed:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/TarpitHandler.java

james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/TarpitHandlerTest.java
Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java?rev=1175443r1=1175442r2=1175443view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 Sun Sep 25 17:42:51 2011
@@ -120,12 +120,6 @@ public interface SMTPSession extends Pro
  */
 int getPushedLineHandlerCount();
 
-/**
- * Sleep for the given ms 
- * 
- * @param ms the time to sleep in milliseconds
- */
-void sleep(long ms);
 
 }
 

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=1175443r1=1175442r2=1175443view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
 Sun Sep 25 17:42:51 2011
@@ -133,14 +133,6 @@ public class SMTPSessionImpl extends Abs
 }
 
 /**
- * @see org.apache.james.protocols.smtp.SMTPSession#sleep(long)
- */
-public void sleep(long ms) {
-// session.getFilterChain().addAfter(connectionFilter,
-// tarpitFilter,new TarpitFilter(ms));
-}
-
-/**
  * @see 
org.apache.james.protocols.smtp.SMTPSession#useAddressBracketsEnforcement()
  */
 public boolean useAddressBracketsEnforcement() {



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175444 - /james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/TarpitHandler.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:43:07 2011
New Revision: 1175444

URL: http://svn.apache.org/viewvc?rev=1175444view=rev
Log:
Remove SMTPSession.sleep(...)

Removed:

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/fastfail/TarpitHandler.java


-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175445 - in /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api: BaseRequest.java ProtocolSession.java ProtocolSessionFactory.java ProtocolTransport.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 17:55:58 2011
New Revision: 1175445

URL: http://svn.apache.org/viewvc?rev=1175445view=rev
Log:
Add javadocs

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/BaseRequest.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/BaseRequest.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/BaseRequest.java?rev=1175445r1=1175444r2=1175445view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/BaseRequest.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/BaseRequest.java
 Sun Sep 25 17:55:58 2011
@@ -51,6 +51,7 @@ public class BaseRequest implements Requ
 }
 
 
+@Override
 public String toString() {
 if (argument == null) {
 return command;

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=1175445r1=1175444r2=1175445view=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
 Sun Sep 25 17:55:58 2011
@@ -90,14 +90,16 @@ public interface ProtocolSession {
 
 /**
  * Define a response object to be used as reply for a too long input line
- * @return Response
+ * 
+ * @return Response or null if no response should be written before 
closing the connection
  */
 Response newLineTooLongResponse();
 
 /**
  * Define a response object to be used as reply during a fatal error.
  * Connection will be closed after this response.
- * @return Response
+ * 
+ * @return Response or null if no response should be written before 
closing the connection
  */
 Response newFatalErrorResponse();
 

Modified: 
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=1175445r1=1175444r2=1175445view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionFactory.java
 Sun Sep 25 17:55:58 2011
@@ -19,8 +19,19 @@
 
 package org.apache.james.protocols.api;
 
+/**
+ * Factory which is responsible for creating new {@link ProtocolSession}'s 
+ * 
+ *
+ */
 public interface ProtocolSessionFactory {
 
+/**
+ * Create a new {@link ProtocolSession} for the given {@link 
ProtocolTransport} 
+ * 
+ * @param transport
+ * @return session
+ */
 ProtocolSession newSession(ProtocolTransport transport);
 
 }

Modified: 
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=1175445r1=1175444r2=1175445view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java
 Sun Sep 25 17:55:58 2011
@@ -29,20 +29,62 @@ import org.apache.james.protocols.api.ha
  */
 public interface ProtocolTransport {
 
+/**
+ * Return the {@link InetSocketAddress} of the remote peer
+ * 
+ * @return address
+ */
 InetSocketAddress getRemoteAddress();
 
+/**
+ * Return the unique id. The id MUST NOT be 100 % unique for ever. It just 
should just not have the same
+ * id when having concurrent connections
+ * 
+ * @return id
+ */
 String getId();
 
+/**
+ * Return codetrue/code if codeTLS/code encryption is active
+ * 
+ * @return tlsStarted
+ */
 boolean isTLSStarted();
 
+/**
+ * Return codetrue/code if codeSTARTTLS/code is supported by this 
{@link ProtocolTransport}
+ * 
+ * @return tlsSupprted
+ */
 boolean isStartTLSSupported

svn commit: r1175447 - /james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 18:00:33 2011
New Revision: 1175447

URL: http://svn.apache.org/viewvc?rev=1175447view=rev
Log:
Committed by mistake

Removed:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyConstants.java


-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175448 - /james/protocols/trunk/impl/src/main/java/org/jboss/

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 18:02:31 2011
New Revision: 1175448

URL: http://svn.apache.org/viewvc?rev=1175448view=rev
Log:
Remove empty package

Removed:
james/protocols/trunk/impl/src/main/java/org/jboss/


-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Resolved] (PROTOCOLS-32) Add a lower-level api which allows Handlers to return a Response in a async fashion

2011-09-25 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTOCOLS-32?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved PROTOCOLS-32.


   Resolution: Fixed
Fix Version/s: 1.6

 Add a lower-level api which allows Handlers to return a Response in a async 
 fashion
 ---

 Key: PROTOCOLS-32
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-32
 Project: JAMES Protocols
  Issue Type: New Feature
  Components: api, smtp
Affects Versions: 1.5
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.6


 At the moment we let our handlers return the response. This may not the best 
 thing todo as sometimes we could benefit from doing this in a async manner. 
 We should add some api for that but still support the old (and simple) way

--
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: r1175459 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java

2011-09-25 Thread norman
Author: norman
Date: Sun Sep 25 18:14:10 2011
New Revision: 1175459

URL: http://svn.apache.org/viewvc?rev=1175459view=rev
Log:
Make AUTH login more useful on FAIL. Thanks to Thomas UNG for the patch. See 
PROTOCOLS-26

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java?rev=1175459r1=1175458r2=1175459view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
 Sun Sep 25 18:14:10 2011
@@ -351,8 +351,7 @@ public class AuthCmdHandler
 }
 
 res = new SMTPResponse(SMTPRetCode.AUTH_FAILED, Authentication 
Failed);
-// TODO: Make this string a more useful error message
-session.getLogger().error(AUTH method +authType+ failed);
+session.getLogger().error(AUTH method +authType+ failed from  + 
user + @ + session.getRemoteIPAddress()); 
 return res;
 }
 



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Resolved] (PROTOCOLS-26) Make AUTH method failed string a more useful error message

2011-09-25 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTOCOLS-26?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved PROTOCOLS-26.


   Resolution: Fixed
Fix Version/s: (was: 1.5)
   1.6

Committed. Sorry for the delay and thanks for the patch!

 Make AUTH method failed string a more useful error message
 --

 Key: PROTOCOLS-26
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-26
 Project: JAMES Protocols
  Issue Type: Improvement
  Components: smtp
Affects Versions: 1.5
Reporter: Thomas UNG
Assignee: Norman Maurer
Priority: Minor
  Labels: patch
 Fix For: 1.6

 Attachments: AuthCmdHandler.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 Have security sensitive information in log when auth login has failed
 - // TODO: Make this string a more useful error message
 - session.getLogger().error(AUTH method +authType+ failed);
 + session.getLogger().error(AUTH method +authType+ failed from  + user + 
 @ + session.getRemoteIPAddress());

--
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] (PROTOCOLS-31) Add a simple netty bases SMTPServer implementation

2011-09-25 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTOCOLS-31?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved PROTOCOLS-31.


Resolution: Fixed

done

 Add a simple netty bases SMTPServer implementation
 --

 Key: PROTOCOLS-31
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-31
 Project: JAMES Protocols
  Issue Type: New Feature
  Components: smtp
Affects Versions: 1.5
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.6


 At the moment we only ship the api for the SMTP-Server + some transport 
 independent stuff. It would be nice if we could also include some simple 
 SMTPServer which can be used in an easy way. Something like subetha-smtp or 
 mailster.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Created] (PROTOCOLS-34) LineHandler/ConnectHandler should return a Response

2011-09-24 Thread Norman Maurer (JIRA)
LineHandler/ConnectHandler should return a Response
---

 Key: PROTOCOLS-34
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-34
 Project: JAMES Protocols
  Issue Type: Task
Reporter: Norman Maurer
Assignee: Norman Maurer


LineHandler and ConectHandler should return a Response object if they want to 
write a Msg back to the client and not use ProtocolSession.writeResponse(...). 
This will make the contract much more clear and also allows us to remove the 
writeResponse from it. this wilmguard us from strange side effects in the 
future..

--
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-35) Remove ProtocolSession.writeResponse(...)

2011-09-24 Thread Norman Maurer (JIRA)
Remove ProtocolSession.writeResponse(...) 
--

 Key: PROTOCOLS-35
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-35
 Project: JAMES Protocols
  Issue Type: Task
  Components: api
Affects Versions: 1.5
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.6


We should remove ProtocolSession.writeResponse(...) method and just use on 
ProtocolTransport.write(...) if needed.

--
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: r1175162 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ api/src/main/java/org/apache/james/protocols/api/handler/ impl/src/main/java/org/apache/james/protoc

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 12:02:47 2011
New Revision: 1175162

URL: http://svn.apache.org/viewvc?rev=1175162view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ConnectHandler.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/LineHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineFilter.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/WelcomeMessageHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java

james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java?rev=1175162r1=1175161r2=1175162view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 Sat Sep 24 12:02:47 2011
@@ -19,6 +19,7 @@
 
 package org.apache.james.protocols.api;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -27,6 +28,32 @@ import java.util.List;
  *
  */
 public interface Response {
+
+/**
+ * Special {@link Response} implementation which will just disconnect the 
client
+ */
+public static final Response DISCONNECT = new Response() {
+
+public String getRetCode() {
+return ;
+}
+
+@SuppressWarnings(unchecked)
+public ListCharSequence getLines() {
+return Collections.EMPTY_LIST;
+}
+
+public String getRawLine() {
+return ;
+}
+
+public boolean isEndSession() {
+return true;
+}
+
+};
+
+
 /**
  * Return return-code
  * @return

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java?rev=1175162r1=1175161r2=1175162view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
 Sat Sep 24 12:02:47 2011
@@ -19,7 +19,7 @@
 
 package org.apache.james.protocols.api.handler;
 
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -29,10 +29,7 @@ import java.util.List;
 import java.util.Locale;
 
 import org.apache.james.protocols.api.BaseRequest;
-import org.apache.james.protocols.api.FutureResponse;
-import org.apache.james.protocols.api.FutureResponse.ResponseListener;
 import org.apache.james.protocols.api.ProtocolSession;
-import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 
 
@@ -49,6 +46,9 @@ public abstract class AbstractCommandDis
 private HashMapString, ListCommandHandlerSession commandHandlerMap = 
new HashMapString, ListCommandHandlerSession();
 
 private ListCommandHandlerResultHandlerResponse, Session rHandlers = 
new ArrayListCommandHandlerResultHandlerResponse, Session();
+
+private final Charset charset = Charset.forName(getLineDecodingCharset());
+
 /**
  * Add it to map (key as command name, value is an array list of 
CommandHandlers)
  *
@@ -128,76 +128,48 @@ public abstract class AbstractCommandDis
  * (non

svn commit: r1175163 - in /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core: POP3CommandDispatcherLineHandler.java WelcomeMessageHandler.java

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 12:03:52 2011
New Revision: 1175163

URL: http://svn.apache.org/viewvc?rev=1175163view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/POP3CommandDispatcherLineHandler.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/POP3CommandDispatcherLineHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/POP3CommandDispatcherLineHandler.java?rev=1175163r1=1175162r2=1175163view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/POP3CommandDispatcherLineHandler.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/POP3CommandDispatcherLineHandler.java
 Sat Sep 24 12:03:52 2011
@@ -27,6 +27,7 @@ import javax.annotation.Resource;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.pop3server.POP3Session;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.AbstractCommandDispatcher;
 import org.apache.james.protocols.api.handler.CommandHandler;
 
@@ -66,18 +67,19 @@ public class POP3CommandDispatcherLineHa
 
 
 @Override
-public void onLine(POP3Session session, byte[] line) {
+public Response onLine(POP3Session session, byte[] line) {
 MailboxSession mSession = (MailboxSession) 
session.getState().get(POP3Session.MAILBOX_SESSION);
 
 // notify the mailboxmanager about the start of the processing
 manager.startProcessingRequest(mSession);
 
 // do the processing
-super.onLine(session, line);
+Response response = super.onLine(session, line);
 
 // notify the mailboxmanager about the end of the processing
 manager.endProcessingRequest(mSession);
 
+return response;
 }
 
 }

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java?rev=1175163r1=1175162r2=1175163view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java
 Sat Sep 24 12:03:52 2011
@@ -21,6 +21,7 @@ package org.apache.james.pop3server.core
 
 import org.apache.james.pop3server.POP3Response;
 import org.apache.james.pop3server.POP3Session;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ConnectHandler;
 
 public class WelcomeMessageHandler implements ConnectHandlerPOP3Session {
@@ -31,13 +32,13 @@ public class WelcomeMessageHandler imple
 /**
  * @see 
org.apache.james.pop3server.ConnectHandler#onConnect(org.apache.james.pop3server.POP3Session)
  */
-public void onConnect(POP3Session session) {
+public Response onConnect(POP3Session session) {
 StringBuilder responseBuffer = new StringBuilder();
 // Initially greet the connector
 // Format is: Sat, 24 Jan 1998 13:16:09 -0500
 
responseBuffer.append(session.getConfigurationData().getHelloName()).append( 
POP3 server ().append(softwaretype).append() ready );
 POP3Response response = new POP3Response(POP3Response.OK_RESPONSE, 
responseBuffer.toString());
-session.writeResponse(response);
+return response;
 }
 
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175165 - in /james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl: BasicChannelUpstreamHandler.java LineHandlerUpstreamHandler.java

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 12:23:18 2011
New Revision: 1175165

URL: http://svn.apache.org/viewvc?rev=1175165view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Modified:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java?rev=1175165r1=1175164r2=1175165view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 Sat Sep 24 12:23:18 2011
@@ -226,6 +226,7 @@ public class BasicChannelUpstreamHandler
 } else {
 logger.debug(Unable to process request, e.getCause());
 }
+e.getCause().printStackTrace();
 cleanup(ctx);
 }
 }

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java?rev=1175165r1=1175164r2=1175165view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java
 Sat Sep 24 12:23:18 2011
@@ -19,6 +19,7 @@
 package org.apache.james.protocols.impl;
 
 import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.channel.ChannelHandlerContext;
@@ -53,7 +54,10 @@ public class LineHandlerUpstreamHandler
 buf.getBytes(0, line);
 }
 
-handler.onLine(session, line);
+Response response = handler.onLine(session, line); 
+if (response != null) {
+session.writeResponse(response);
+}
 }
 
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175223 - in /james/protocols/trunk: impl/src/main/java/org/apache/james/protocols/impl/ smtp/src/main/java/org/apache/james/protocols/smtp/core/ smtp/src/main/java/org/apache/james/proto

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 19:10:11 2011
New Revision: 1175223

URL: http://svn.apache.org/viewvc?rev=1175223view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Modified:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java?rev=1175223r1=1175222r2=1175223view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 Sat Sep 24 19:10:11 2011
@@ -226,7 +226,6 @@ public class BasicChannelUpstreamHandler
 } else {
 logger.debug(Unable to process request, e.getCause());
 }
-e.getCause().printStackTrace();
 cleanup(ctx);
 }
 }

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java?rev=1175223r1=1175222r2=1175223view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
 Sat Sep 24 19:10:11 2011
@@ -18,19 +18,21 @@
  /
 package org.apache.james.protocols.smtp.core;
 
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.LineHandler;
-import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.mailet.base.RFC2822Headers;
 import org.apache.mailet.base.RFC822DateFormat;
 
 public class ReceivedDataLineFilter implements DataLineFilter {
 
+private final static Charset CHARSET = Charset.forName(US-ASCII);
+
 private final static String SOFTWARE_TYPE = JAMES SMTP Server ;
 
 // Replace this with something usefull
@@ -47,15 +49,21 @@ public class ReceivedDataLineFilter impl
  * (non-Javadoc)
  * @see 
org.apache.james.smtpserver.protocol.core.DataLineFilter#onLine(org.apache.james.smtpserver.protocol.SMTPSession,
 byte[], org.apache.james.api.protocol.LineHandler)
  */
-public SMTPResponse onLine(SMTPSession session,  byte[] line, 
LineHandlerSMTPSession next) {
+public Response onLine(SMTPSession session,  byte[] line, 
LineHandlerSMTPSession next) {
 if (session.getState().containsKey(HEADERS_WRITTEN) == false) {
-addNewReceivedMailHeaders(session, next);
+Response response = addNewReceivedMailHeaders(session, next);
+
 session.getState().put(HEADERS_WRITTEN, true);
+
+if (response != null) {
+return response;
+}
 }
-return (SMTPResponse) next.onLine(session, line);
+Response resp =  next.onLine(session, line);
+return resp;
 }
 
-private void addNewReceivedMailHeaders(SMTPSession session, 
LineHandlerSMTPSession next) {
+private Response addNewReceivedMailHeaders(SMTPSession session, 
LineHandlerSMTPSession next) {
 StringBuilder headerLineBuffer = new StringBuilder();
 
 String heloMode = (String) session.getConnectionState().get(
@@ -74,11 +82,10 @@ public class ReceivedDataLineFilter impl
 
 headerLineBuffer.append( ([).append(session.getRemoteIPAddress())
 .append(])).append(\r\n);
-try {
-next.onLine(session, 
headerLineBuffer.toString().getBytes(US-ASCII));
-} catch (UnsupportedEncodingException e1) {
-// should never happen
-e1.printStackTrace();
+
+Response response = next.onLine(session, 
headerLineBuffer.toString().getBytes(CHARSET));
+if (response != null) {
+return response;
 }
 headerLineBuffer.delete(0, headerLineBuffer.length());
 
@@ -104,38 +111,38 @@ public class

svn commit: r1175224 - in /james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver: DataLineJamesMessageHookHandler.java POP3BeforeSMTPHandler.java

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 19:11:43 2011
New Revision: 1175224

URL: http://svn.apache.org/viewvc?rev=1175224view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Modified:

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java?rev=1175224r1=1175223r2=1175224view=diff
==
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
 Sat Sep 24 19:11:43 2011
@@ -33,6 +33,7 @@ import org.apache.james.core.MailImpl;
 import org.apache.james.core.MimeMessageCopyOnWriteProxy;
 import org.apache.james.core.MimeMessageInputStreamSource;
 import org.apache.james.lifecycle.api.LifecycleUtil;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.api.handler.WiringException;
@@ -69,7 +70,7 @@ public final class DataLineJamesMessageH
  * .james.smtpserver.protocol.SMTPSession, byte[],
  * org.apache.james.api.protocol.LineHandler)
  */
-public void onLine(SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
+public Response onLine(SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
 MimeMessageInputStreamSource mmiss = (MimeMessageInputStreamSource) 
session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
 
 try {
@@ -93,15 +94,15 @@ public final class DataLineJamesMessageH
 mimeMessageCopyOnWriteProxy = new 
MimeMessageCopyOnWriteProxy(mmiss);
 mail.setMessage(mimeMessageCopyOnWriteProxy);
 
-processExtensions(session, mail);
+Response response = processExtensions(session, mail);
 
-session.popLineHandler();
-// next.onLine(session, line);
+session.popLineHandler();  
+return response;
 
 } catch (MessagingException e) {
 // TODO probably return a temporary problem
 session.getLogger().info(Unexpected error handling DATA 
stream, e);
-session.writeResponse(new 
SMTPResponse(SMTPRetCode.LOCAL_ERROR, Unexpected error handling DATA 
stream.));
+return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
Unexpected error handling DATA stream.);
 } finally {
 LifecycleUtil.dispose(mimeMessageCopyOnWriteProxy);
 LifecycleUtil.dispose(mmiss);
@@ -121,19 +122,19 @@ public final class DataLineJamesMessageH
 } catch (IOException e) {
 LifecycleUtil.dispose(mmiss);
 
-SMTPResponse response;
-response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) +  Error 
processing message:  + e.getMessage());
+SMTPResponse response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) +  Error 
processing message:  + e.getMessage());
 
 session.getLogger().error(Unknown error occurred while processing 
DATA., e);
-session.writeResponse(response);
-return;
+
+return response;
 }
+return null;
 }
 
 /**
  * @param session
  */
-private void processExtensions(SMTPSession session, Mail mail) {
+private Response processExtensions(SMTPSession session, Mail mail) {
 if (mail != null  messageHandlers != null) {
 try {
 MimeMessageInputStreamSource mmiss = 
(MimeMessageInputStreamSource) 
session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
@@ -164,8 +165,7 @@ public final class DataLineJamesMessageH
 // if the response is received, stop processing of command
 // handlers
 if (response != null) {
-session.writeResponse(response);
-return;
+return response;
 }
 }
 
@@ -189,8 +189,7 @@ public final class DataLineJamesMessageH
 // if the response is received, stop processing of command

[jira] [Resolved] (PROTOCOLS-34) LineHandler/ConnectHandler should return a Response

2011-09-24 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTOCOLS-34?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved PROTOCOLS-34.


   Resolution: Fixed
Fix Version/s: 1.6

done...

 LineHandler/ConnectHandler should return a Response
 ---

 Key: PROTOCOLS-34
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-34
 Project: JAMES Protocols
  Issue Type: Task
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.6


 LineHandler and ConectHandler should return a Response object if they want to 
 write a Msg back to the client and not use 
 ProtocolSession.writeResponse(...). This will make the contract much more 
 clear and also allows us to remove the writeResponse from it. this wilmguard 
 us from strange side effects in the future..

--
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: r1175228 - /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 19:53:49 2011
New Revision: 1175228

URL: http://svn.apache.org/viewvc?rev=1175228view=rev
Log:
Fix possible NPE

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java?rev=1175228r1=1175227r2=1175228view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 Sat Sep 24 19:53:49 2011
@@ -31,7 +31,7 @@ public abstract class AbstractResponse i
 
 
 private String retCode = null;
-protected ListCharSequence lines = null;
+protected ListCharSequence lines = new LinkedListCharSequence();;
 protected String rawLine = null;
 private boolean endSession = false;
 
@@ -61,9 +61,6 @@ public abstract class AbstractResponse i
  * @param line the responseLine to append
  */
 public void appendLine(CharSequence line) {
-if (lines == null) {
-lines = new LinkedListCharSequence();
-}
 lines.add(line);
 }
 



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175229 - /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 19:55:07 2011
New Revision: 1175229

URL: http://svn.apache.org/viewvc?rev=1175229view=rev
Log:
Mark final

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java?rev=1175229r1=1175228r2=1175229view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 Sat Sep 24 19:55:07 2011
@@ -31,7 +31,7 @@ public abstract class AbstractResponse i
 
 
 private String retCode = null;
-protected ListCharSequence lines = new LinkedListCharSequence();;
+protected final ListCharSequence lines = new LinkedListCharSequence();;
 protected String rawLine = null;
 private boolean endSession = false;
 



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1175230 - /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java

2011-09-24 Thread norman
Author: norman
Date: Sat Sep 24 19:56:52 2011
New Revision: 1175230

URL: http://svn.apache.org/viewvc?rev=1175230view=rev
Log:
Adjust javadocs

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java?rev=1175230r1=1175229r2=1175230view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 Sat Sep 24 19:56:52 2011
@@ -62,7 +62,8 @@ public interface Response {
 

 /**
- * Return a List of all response lines stored in this Response
+ * Return a List of all response lines stored in this Response. This 
should be used for encoding
+ * the {@link Response} before sending it to the client.
  * 
  * @return all responseLines
  */



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1174533 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java

2011-09-23 Thread norman
Author: norman
Date: Fri Sep 23 06:05:05 2011
New Revision: 1174533

URL: http://svn.apache.org/viewvc?rev=1174533view=rev
Log:
Allow to have a null constructor for sub-classes

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java?rev=1174533r1=1174532r2=1174533view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 Fri Sep 23 06:05:05 2011
@@ -35,6 +35,10 @@ public abstract class AbstractResponse i
 protected String rawLine = null;
 private boolean endSession = false;
 
+protected AbstractResponse() {
+
+}
+
 /**
  * Construct a new SMTPResponse. The given code and description can not be 
null, if null an IllegalArgumentException
  * get thrown

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java?rev=1174533r1=1174532r2=1174533view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
 Fri Sep 23 06:05:05 2011
@@ -29,6 +29,9 @@ import org.apache.james.protocols.api.Ab
  */
 public class SMTPResponse extends AbstractResponse {
 
+protected SMTPResponse() {
+
+}
 /**
  * Construct a new SMTPResponse. The given code and description can not be 
null, if null an IllegalArgumentException
  * get thrown



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1174606 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java

2011-09-23 Thread norman
Author: norman
Date: Fri Sep 23 09:24:36 2011
New Revision: 1174606

URL: http://svn.apache.org/viewvc?rev=1174606view=rev
Log:
Allow to extend this class

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java?rev=1174606r1=1174605r2=1174606view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
 Fri Sep 23 09:24:36 2011
@@ -44,7 +44,7 @@ import org.apache.james.protocols.smtp.h
  * error to the client to report the problem while trying to queue the message 
  *
  */
-public final class DataLineMessageHookHandler implements DataLineFilter, 
ExtensibleHandler {
+public class DataLineMessageHookHandler implements DataLineFilter, 
ExtensibleHandler {
 
 
 private List messageHandlers;
@@ -66,8 +66,7 @@ public final class DataLineMessageHookHa
 out.flush();
 out.close();
 
-processExtensions(session, env);
-session.popLineHandler();
+session.writeResponse(processExtensions(session, env));
 
 // DotStuffing.
 } else if (line[0] == 46  line[1] == 46) {
@@ -89,6 +88,9 @@ public final class DataLineMessageHookHa
 Unknown error occurred while processing DATA., e);
 session.writeResponse(response);
 return;
+} finally {
+// do the clean up
+session.resetState();
 }
 }
 
@@ -96,13 +98,13 @@ public final class DataLineMessageHookHa
 /**
  * @param session
  */
-private void processExtensions(SMTPSession session, MailEnvelopeImpl mail) 
{
-boolean match = false;
-if(mail != null  messageHandlers != null) {
-try {
+protected SMTPResponse processExtensions(SMTPSession session, 
MailEnvelopeImpl mail) {
+try {
+
+if (mail != null  messageHandlers != null) {
 int count = messageHandlers.size();
-for(int i =0; i  count; i++) {
-MessageHook rawHandler =  (MessageHook) 
messageHandlers.get(i);
+for (int i = 0; i  count; i++) {
+MessageHook rawHandler = (MessageHook) 
messageHandlers.get(i);
 session.getLogger().debug(executing message handler  + 
rawHandler);
 
 long start = System.currentTimeMillis();
@@ -113,34 +115,33 @@ public final class DataLineMessageHookHa
 for (int i2 = 0; i2  rHooks.size(); i2++) {
 Object rHook = rHooks.get(i2);
 session.getLogger().debug(executing hook  + 
rHook);
-
+
 hRes = ((HookResultHook) 
rHook).onHookResult(session, hRes, executionTime, rawHandler);
 }
 }
-
+
 SMTPResponse response = 
AbstractHookableCmdHandler.calcDefaultSMTPResponse(hRes);
-
-//if the response is received, stop processing of command 
handlers
-if(response != null) {
-session.writeResponse(response);
-match = true;
-break;
+
+// if the response is received, stop processing of command
+// handlers
+if (response != null) {
+return response;
 }
 }
-if (match == false) {
-// Not queue the message!
-SMTPResponse response = 
AbstractHookableCmdHandler.calcDefaultSMTPResponse(new 
HookResult(HookReturnCode.DENY));
-session.writeResponse(response);
-
-}
-} finally {
-   
-//do the clean up
-session.resetState();
+
+// Not queue the message!
+SMTPResponse response = 
AbstractHookableCmdHandler.calcDefaultSMTPResponse(new 
HookResult(HookReturnCode.DENY));
+return response;
+
+  
 }
+} finally {
+
+session.popLineHandler();
 }
+return null;
 }
-
+
 /**
  * @see 
org.apache.james.protocols.api.handler.ExtensibleHandler#wireExtensions(java.lang.Class,
 java.util.List

svn commit: r1174647 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java

2011-09-23 Thread norman
Author: norman
Date: Fri Sep 23 10:53:15 2011
New Revision: 1174647

URL: http://svn.apache.org/viewvc?rev=1174647view=rev
Log:
Allow to extend this class and handle FutureResponse

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java?rev=1174647r1=1174646r2=1174647view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
 Fri Sep 23 10:53:15 2011
@@ -26,6 +26,9 @@ import java.io.OutputStream;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.james.protocols.api.FutureResponse;
+import org.apache.james.protocols.api.FutureResponse.ResponseListener;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.api.handler.WiringException;
@@ -56,7 +59,7 @@ public class DataLineMessageHookHandler 
  * (non-Javadoc)
  * @see 
org.apache.james.smtpserver.protocol.core.DataLineFilter#onLine(org.apache.james.smtpserver.protocol.SMTPSession,
 byte[], org.apache.james.api.protocol.LineHandler)
  */
-public void onLine(SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
+public void onLine(final SMTPSession session, byte[] line, 
LineHandlerSMTPSession next) {
 MailEnvelopeImpl env = (MailEnvelopeImpl) 
session.getState().get(DataCmdHandler.MAILENV);
 OutputStream out = env.getMessageOutputStream();
 try {
@@ -66,7 +69,18 @@ public class DataLineMessageHookHandler 
 out.flush();
 out.close();
 
-session.writeResponse(processExtensions(session, env));
+SMTPResponse response = processExtensions(session, env);
+if (response instanceof FutureResponse) {
+((FutureResponse) response).addListener(new 
ResponseListener() {
+
+public void onResponse(Response response) {
+session.resetState();
+}
+});
+} else {
+session.resetState();
+}
+session.writeResponse(response);
 
 // DotStuffing.
 } else if (line[0] == 46  line[1] == 46) {
@@ -87,11 +101,8 @@ public class DataLineMessageHookHandler 
 session.getLogger().error(
 Unknown error occurred while processing DATA., e);
 session.writeResponse(response);
-return;
-} finally {
-// do the clean up
 session.resetState();
-}
+} 
 }
 
 



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1174670 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java

2011-09-23 Thread norman
Author: norman
Date: Fri Sep 23 11:32:55 2011
New Revision: 1174670

URL: http://svn.apache.org/viewvc?rev=1174670view=rev
Log:
Fix MailEnvelopeImpl outputstream creation

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java?rev=1174670r1=1174669r2=1174670view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java
 Fri Sep 23 11:32:55 2011
@@ -90,7 +90,9 @@ public class MailEnvelopeImpl implements
  * @see 
org.apache.james.smtpserver.protocol.MailEnvelope#getMessageOutputStream()
  */
 public OutputStream getMessageOutputStream() {
-this.outputStream = new ByteArrayOutputStream(10);
+if (outputStream == null) {
+this.outputStream = new ByteArrayOutputStream(10);
+}
 return outputStream;
 }
 



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1174671 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java

2011-09-23 Thread norman
Author: norman
Date: Fri Sep 23 11:36:28 2011
New Revision: 1174671

URL: http://svn.apache.org/viewvc?rev=1174671view=rev
Log:
Allow to overwrite MailEnvelope creation

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java?rev=1174671r1=1174670r2=1174671view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
 Fri Sep 23 11:36:28 2011
@@ -29,6 +29,7 @@ import org.apache.james.protocols.api.ha
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.api.handler.WiringException;
+import org.apache.james.protocols.smtp.MailEnvelope;
 import org.apache.james.protocols.smtp.MailEnvelopeImpl;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -107,15 +108,21 @@ public class DataCmdHandler implements C
  */
 @SuppressWarnings(unchecked)
 protected SMTPResponse doDATA(SMTPSession session, String argument) {
-MailEnvelopeImpl env = new MailEnvelopeImpl();
-env.setRecipients(new 
ArrayListMailAddress((Collection)session.getState().get(SMTPSession.RCPT_LIST)));
-env.setSender((MailAddress) 
session.getState().get(SMTPSession.SENDER));
+MailEnvelope env = createEnvelope(session, (MailAddress) 
session.getState().get(SMTPSession.SENDER), new 
ArrayListMailAddress((Collection)session.getState().get(SMTPSession.RCPT_LIST)));
 session.getState().put(MAILENV, env);
 session.pushLineHandler(lineHandler);
 
 return new SMTPResponse(SMTPRetCode.DATA_READY, Ok Send data ending 
with CRLF.CRLF);
 }
 
+protected MailEnvelope createEnvelope(SMTPSession session, MailAddress 
sender, ListMailAddress recipients) {
+MailEnvelopeImpl env = new MailEnvelopeImpl();
+env.setRecipients(recipients);
+env.setSender(sender);
+return env;
+}
+
+
 /**
  * @see 
org.apache.james.smtpserver.protocol.CommandHandler#getImplCommands()
  */



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1174093 - /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java

2011-09-22 Thread norman
Author: norman
Date: Thu Sep 22 12:38:47 2011
New Revision: 1174093

URL: http://svn.apache.org/viewvc?rev=1174093view=rev
Log:
Remove setters from the interface. The setters should only be present in the 
impls

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java?rev=1174093r1=1174092r2=1174093view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 Thu Sep 22 12:38:47 2011
@@ -33,20 +33,6 @@ public interface Response {
  */
 String getRetCode();
 
-
-/**
- * Set the return-code used for this response
- * 
- * @param retCode
- */
-void setRetCode(String retCode);
-
-/**
- * Append line to response
- * 
- * @param line 
- */
-void appendLine(CharSequence line);

 /**
  * Return a List of all response lines stored in this Response
@@ -68,11 +54,5 @@ public interface Response {
  * @return true if session is ended
  */
 boolean isEndSession();
-/**
- * Set to true to end the session
- * 
- * @param endSession
- */
-void setEndSession(boolean endSession);
 
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1174095 - /james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java

2011-09-22 Thread norman
Author: norman
Date: Thu Sep 22 12:40:33 2011
New Revision: 1174095

URL: http://svn.apache.org/viewvc?rev=1174095view=rev
Log:
Make sure the FileMailQueue also handles messages with delay the right way. See 
JAMES-1316 

Modified:

james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java

Modified: 
james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java?rev=1174095r1=1174094r2=1174095view=diff
==
--- 
james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
 (original)
+++ 
james/server/trunk/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
 Thu Sep 22 12:40:33 2011
@@ -34,6 +34,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
 
 import javax.mail.MessagingException;
 import javax.mail.util.SharedFileInputStream;
@@ -61,7 +62,7 @@ public class FileMailQueue implements Ma
 private ConcurrentHashMapString, FileItem keyMappings = new 
ConcurrentHashMapString, FileMailQueue.FileItem();
 private BlockingQueueString inmemoryQueue = new 
LinkedBlockingQueueString();
 private ScheduledExecutorService scheduler = 
Executors.newSingleThreadScheduledExecutor();
-
+private final static AtomicLong COUNTER = new AtomicLong();
 private final String queuename;
 private final File parentDir;
 private String queueDirName;
@@ -69,6 +70,7 @@ public class FileMailQueue implements Ma
 private boolean sync;
 private final static String MSG_EXTENSION = .msg;
 private final static String OBJECT_EXTENSION = .obj;
+private final static String NEXT_DELIVERY = FileQueueNextDelivery;
 
 public FileMailQueue(File parentDir, String queuename, boolean sync, 
Logger log) throws IOException {
 this.queuename = queuename;
@@ -91,26 +93,34 @@ public class FileMailQueue implements Ma
 
 @Override
 public boolean accept(File dir, String name) {
-if (name.endsWith(MSG_EXTENSION)) {
-if (new File(dir, name.substring(0, name.length() 
-MSG_EXTENSION.length()) + OBJECT_EXTENSION).exists()) {
-return true;
-}
+if (name.endsWith(OBJECT_EXTENSION)) {
+return true;
 }
 return false;
 }
 });
 for (int a = 0; a  files.length; a++) {
 final String name = files[a];
+ObjectInputStream oin = null;
 
-int i = name.indexOf(-);
-if ( i  -1) {
-final String objectFilename = name.substring(0, 
name.length() - MSG_EXTENSION.length()) + OBJECT_EXTENSION;
-long next = Long.parseLong(name.substring(0,i));
-final String key = name.substring(i +1, name.length() - 
MSG_EXTENSION.length());
-FileItem item = new FileItem(queueDirName + / + 
objectFilename, queueDirName + / + name);
+
+try {
+final String msgFileName = name.substring(0, name.length() 
- OBJECT_EXTENSION.length()) + MSG_EXTENSION;
+
+FileItem item = new FileItem(queueDirName + / + name, 
queueDirName + / + msgFileName);
+
+oin = new ObjectInputStream(new 
FileInputStream(item.getObjectFile()));
+Mail mail = (Mail) oin.readObject();
+Long next = (Long) mail.getAttribute(NEXT_DELIVERY);
+if (next == null) {
+next = 0L;
+}
+
+
+final String key = mail.getName();
 keyMappings.put(key, item);
 if (next = System.currentTimeMillis()) {
-
+
 try {
 inmemoryQueue.put(key);
 } catch (InterruptedException e) {
@@ -118,10 +128,11 @@ public class FileMailQueue implements Ma
 throw new RuntimeException(Unable to init, e);
 }
 } else {
-
-// Schedule a task which will put the mail in the 
queue for processing after a given delay
+
+// Schedule a task which will put the mail in the queue
+// for processing after a given delay
 scheduler.schedule(new Runnable

svn commit: r1174122 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ api/src/main/java/org/apache/james/protocols/api/handler/ impl/src/main/java/org/apache/james/protoc

2011-09-22 Thread norman
Author: norman
Date: Thu Sep 22 13:27:35 2011
New Revision: 1174122

URL: http://svn.apache.org/viewvc?rev=1174122view=rev
Log:
Remove return value from ConnectHandler/LineHandler as it makes no sense. Not 
sure why I thought it would make sense before.. Beside this I added special 
type of FutureResponse which allows to handle Responses in a async fashion. 
This is more for the skilled dev but there are use cases (stay tuned) 

Added:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponse.java
   (with props)
Removed:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/ConnectHandlerResultLogger.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/LineHandlerResultLogger.java
Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ConnectHandler.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ConnectHandlerResultHandler.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/LineHandler.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/LineHandlerResultHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/WelcomeMessageHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java

Added: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponse.java?rev=1174122view=auto
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponse.java
 (added)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponse.java
 Thu Sep 22 13:27:35 2011
@@ -0,0 +1,66 @@
+/
+ * 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 {@link Response} which allows to populate it in an async 
fashion. It also allows to register listeners which will get notified once the 
+ * {@link FutureResponse} is ready
+ * 
+ *
+ */
+public interface FutureResponse extends Response{
+
+/**
+ * Add a {@link ResponseListener} which will get notified once {@link 
#isReady()} is true
+ * 
+ * @param listener
+ */
+public void addListener(ResponseListener listener);
+
+/**
+ * Remote a {@link ResponseListener}
+ * 
+ * @param listener
+ */
+public void removeListener(ResponseListener listener);
+
+/**
+ * Return codetrue/code once the {@link FutureResponse} is ready and 
calling any of the get methods will not block any more.
+ * 
+ * @return ready
+ */
+public boolean isReady();
+
+
+/**
+ * Listener which will get notified once the {@link 
FutureResponse#isReady()} returns codetrue/code
+ * 
+ *
+ */
+public interface ResponseListener {
+
+/**
+ * The {@link Response} is ready for processing
+ * 
+ * @param response
+ */
+public

svn commit: r1174123 - in /james/server/trunk: lmtpserver/src/main/java/org/apache/james/lmtpserver/ pop3server/src/main/java/org/apache/james/pop3server/core/ protocols-library/src/main/java/org/apac

2011-09-22 Thread norman
Author: norman
Date: Thu Sep 22 13:28:58 2011
New Revision: 1174123

URL: http://svn.apache.org/viewvc?rev=1174123view=rev
Log:
Adjust for latest protocol changes

Modified:

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/CoreCmdHandlerLoader.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/POP3CommandDispatcherLineHandler.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/CoreCmdHandlerLoader.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java

Modified: 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/CoreCmdHandlerLoader.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/CoreCmdHandlerLoader.java?rev=1174123r1=1174122r2=1174123view=diff
==
--- 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/CoreCmdHandlerLoader.java
 (original)
+++ 
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/CoreCmdHandlerLoader.java
 Thu Sep 22 13:28:58 2011
@@ -23,8 +23,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import org.apache.james.protocols.api.handler.HandlersPackage;
-import org.apache.james.protocols.impl.log.ConnectHandlerResultLogger;
-import org.apache.james.protocols.impl.log.LineHandlerResultLogger;
 import org.apache.james.protocols.smtp.core.ExpnCmdHandler;
 import org.apache.james.protocols.smtp.core.log.HookResultLogger;
 import org.apache.james.protocols.smtp.core.NoopCmdHandler;
@@ -68,8 +66,6 @@ public class CoreCmdHandlerLoader implem
 
 // logging stuff
 private final String COMMANDHANDLERRESULTLOGGER = 
SMTPCommandHandlerResultLogger.class.getName();
-private final String CONNECTHANDLERRESULTLOGGER = 
ConnectHandlerResultLogger.class.getName();
-private final String LINEHANDLERRESULTLOGGER = 
LineHandlerResultLogger.class.getName();
 private final String HOOKRESULTLOGGER = HookResultLogger.class.getName();
 
 private final ListString commands = new LinkedListString();
@@ -96,8 +92,6 @@ public class CoreCmdHandlerLoader implem
 
 // Add logging stuff
 commands.add(COMMANDHANDLERRESULTLOGGER);
-commands.add(CONNECTHANDLERRESULTLOGGER);
-commands.add(LINEHANDLERRESULTLOGGER);
 commands.add(HOOKRESULTLOGGER);
 }
 

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java?rev=1174123r1=1174122r2=1174123view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java
 Thu Sep 22 13:28:58 2011
@@ -23,8 +23,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import org.apache.james.protocols.api.handler.HandlersPackage;
-import org.apache.james.protocols.impl.log.ConnectHandlerResultLogger;
-import org.apache.james.protocols.impl.log.LineHandlerResultLogger;
 
 public class CoreCmdHandlerLoader implements HandlersPackage {
 
@@ -48,8 +46,7 @@ public class CoreCmdHandlerLoader implem
 
 // logging stuff
 private final String COMMANDHANDLERRESULTLOGGER = 
POP3CommandHandlerResultLogger.class.getName();
-private final String CONNECTHANDLERRESULTLOGGER = 
ConnectHandlerResultLogger.class.getName();
-private final String LINEHANDLERRESULTLOGGER = 
LineHandlerResultLogger.class.getName();
+
 
 private final ListString commands = new LinkedListString();
 
@@ -75,8 +72,6 @@ public class CoreCmdHandlerLoader implem
 
 // Add logging stuff
 commands.add(COMMANDHANDLERRESULTLOGGER);
-commands.add(CONNECTHANDLERRESULTLOGGER);
-commands.add(LINEHANDLERRESULTLOGGER);
 }
 
 /*

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core

[jira] [Resolved] (JAMES-1316) Add a file based MailQueue implementation

2011-09-22 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1316.
--

Resolution: Fixed

FileMailQueue is in trunk now

 Add a file based MailQueue implementation
 -

 Key: JAMES-1316
 URL: https://issues.apache.org/jira/browse/JAMES-1316
 Project: JAMES Server
  Issue Type: New Feature
  Components: Queue
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 3.0-beta4


 We should switch back to a file based MailQueue implementation as default 
 as ActiveMQ just seems to be not stable enough for our needs.

--
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] (JAMES-1317) Mail spooled but not processed

2011-09-22 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1317.
--

   Resolution: Fixed
Fix Version/s: 3.0-beta4

I think its fixed by JAMES-1319. Could you try with latest snapshots ?

 Mail spooled but not processed
 --

 Key: JAMES-1317
 URL: https://issues.apache.org/jira/browse/JAMES-1317
 Project: JAMES Server
  Issue Type: Bug
  Components: SpoolManager  Processors
Affects Versions: 3.0-M1, 3.0-M2, 3.0-beta3
Reporter: Raju Buchi
Priority: Critical
 Fix For: 3.0-beta4

 Attachments: jstack.zip


 Mails sent to James server are spooled but they are not processed and sent 
 out.
 The issue is similar to the one faced by Zach.
 The server seems to be working fine for a few hours or few days, but some 
 time all the mails are spooled but they will not be processed and sent out. 
 Restarted the server several times and some time a few of the mails will be 
 processed and all the others are lost.
 As Norman suggested I have took a jstack trace. 
 Please let me how we can resolve this issue
 Thanks
 - Raju

--
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: r1174304 - /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java

2011-09-22 Thread norman
Author: norman
Date: Thu Sep 22 18:34:18 2011
New Revision: 1174304

URL: http://svn.apache.org/viewvc?rev=1174304view=rev
Log:
Correctly handle FutureResponse

Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?rev=1174304r1=1174303r2=1174304view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 Thu Sep 22 18:34:18 2011
@@ -22,6 +22,7 @@ package org.apache.james.protocols.api;
 import java.net.InetSocketAddress;
 
 
+import org.apache.james.protocols.api.FutureResponse.ResponseListener;
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.Response;
 import org.slf4j.Logger;
@@ -116,7 +117,16 @@ public abstract class AbstractSession im
  * @see 
org.apache.james.api.protocol.ProtocolSession#writeResponse(org.apache.james.api.protocol.Response)
  */
 public void writeResponse(final Response response) {
-transport.writeResponse(response, this);
+if (response instanceof FutureResponse) {
+((FutureResponse) response).addListener(new ResponseListener() {
+
+public void onResponse(Response response) {
+transport.writeResponse(response, AbstractSession.this);
+}
+});
+} else {
+transport.writeResponse(response, this);
+}
 }
 
 /*



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Commented] (JAMES-1317) Mail spooled but not processed

2011-09-22 Thread Norman Maurer (JIRA)

[ 
https://issues.apache.org/jira/browse/JAMES-1317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13112845#comment-13112845
 ] 

Norman Maurer commented on JAMES-1317:
--

Yes that should be right

 Mail spooled but not processed
 --

 Key: JAMES-1317
 URL: https://issues.apache.org/jira/browse/JAMES-1317
 Project: JAMES Server
  Issue Type: Bug
  Components: SpoolManager  Processors
Affects Versions: 3.0-M1, 3.0-M2, 3.0-beta3
Reporter: Raju Buchi
Priority: Critical
 Fix For: 3.0-beta4

 Attachments: jstack.zip


 Mails sent to James server are spooled but they are not processed and sent 
 out.
 The issue is similar to the one faced by Zach.
 The server seems to be working fine for a few hours or few days, but some 
 time all the mails are spooled but they will not be processed and sent out. 
 Restarted the server several times and some time a few of the mails will be 
 processed and all the others are lost.
 As Norman suggested I have took a jstack trace. 
 Please let me how we can resolve this issue
 Thanks
 - Raju

--
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: r1174512 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java

2011-09-22 Thread norman
Author: norman
Date: Fri Sep 23 04:04:06 2011
New Revision: 1174512

URL: http://svn.apache.org/viewvc?rev=1174512view=rev
Log:
Allow to only set the return code as this is valid in smtp

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java?rev=1174512r1=1174511r2=1174512view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
 Fri Sep 23 04:04:06 2011
@@ -38,8 +38,6 @@ public class SMTPResponse extends Abstra
  */
 public SMTPResponse(String code, CharSequence description) {
 super(code, description);
-if (code == null) throw new IllegalArgumentException(SMTPResponse 
code can not be null);
-if (description == null) throw new 
IllegalArgumentException(SMTPResponse description can not be null);
 }
 
 /**
@@ -55,7 +53,7 @@ public class SMTPResponse extends Abstra
  * @param rawLine the raw SMTPResponse
  */
 public SMTPResponse(String rawLine) {
-super(extractCode(rawLine), extractResponse(rawLine));
+this(extractCode(rawLine), extractResponse(rawLine));
 }
 
 
@@ -75,7 +73,7 @@ public class SMTPResponse extends Abstra
 return args[2];
 
 } else {
-throw new IllegalArgumentException(Invalid Response format. 
Format should be [Code Description]);
+return null;
 }
 }
 /*



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



Re: New app development based on James 3M3 database...

2011-09-21 Thread Norman Maurer
Hi there,

for what you want todo its not needed (mailbox-adapter).

About the FetchGroup:

public static final int MINIMAL = 0x00; - includes UID, SIZE, FLAGS,
etc of the message (the metadata)
public static final int MIME_DESCRIPTOR = 0x01; - Only interesting for IMAP
public static final int HEADERS = 0x100; -includes MINIMAL + message headers
public static final int FULL_CONTENT = 0x200; - includes MINIMAL and
the full message content
public static final int BODY_CONTENT = 0x400; - includes MINIMAL and
the message body
public static final int MIME_HEADERS = 0x800;- Only interesting for IMAP
public static final int MIME_CONTENT = 0x1000;- Only interesting for IMAP


I will add some javadocs...

Bye,
Norman

2011/9/21 Luc Saulière luc.sauli...@gmail.com:
 Thx for helping. The M2 dependency in my pom is the mailbox-adapter, the 
 version is the latest given by maven. Is this dependency still needed for 
 what I want to do? (use the messageManager)

 Ps: Could you explain me how the messageManager can get a message from a 
 mailbox? I use the getmessages() method but I cannot find any good 
 implementation (or explanation:) of the FetchGroup interface needed...

 Thx again

 Luc.

 Le 15 sept. 2011 à 18:52, Eric Charles eric.umg.char...@gmail.com a écrit :

 Hi Luc,
 The code seems good, but you are mixing M2 and beta3 dependencies in you pom.
 Thx.

 On 14/09/11 19:07, Luc Saulière wrote:
 and I forgot the dependancies...

 dependency

 groupIdorg.springframework/groupId

 artifactIdspring-orm/artifactId

 version3.0.6.RELEASE/version

 typejar/type

 scopecompile/scope

 /dependency

 dependency

 groupIdorg.apache.james/groupId

 artifactIdjames-server-mailbox-adapter/artifactId

 version3.0-M2/version

 typejar/type

 scopecompile/scope

 /dependency

 dependency

 groupIdorg.apache.james/groupId

 artifactIdjames-server-core/artifactId

 version3.0-beta3/version

 typejar/type

 scopecompile/scope

 /dependency

 dependency

 groupIdcommons-dbcp/groupId

 artifactIdcommons-dbcp/artifactId

 version20030825.184428/version

 typejar/type

 scopecompile/scope

 /dependency

 dependency

 groupIdorg.apache.james/groupId

 artifactIdapache-james-mailbox-jpa/artifactId

 version0.3/version

 typejar/type

 scopecompile/scope

 /dependency

 dependency

 groupIdorg.apache.james/groupId

 artifactIdapache-james-mailbox-store/artifactId

 version0.3/version

 typejar/type

 scopecompile/scope

 /dependency

 2011/9/15 Luc Saulièreluc.sauli...@gmail.com

 I think I've find a way...

 I load :

 bean id=*datasource* class=*org.apache.commons.dbcp.BasicDataSource*

 destroy-method=*close*

 property name=*driverClassName* value=*${database.driverClassName}*
 /

 property name=*url* value=*${database.url}* /

 property name=*username* value=*${database.username}* /

 property name=*password* value=*${database.password}* /

 /bean

 import resource=*file:///path-to/james-mailbox-jpa-context.xml* /


     bean id=*authenticator* class=*
 org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator*/


  bean id=*entityManagerFactory* class=*
 org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean*

         property name=*dataSource* ref=*datasource*/

         property name=*jpaVendorAdapter* ref=*vendorAdapter*/

         property name=*persistenceXmlLocation* value=*file:///path-to
 /META-INF/persistence.xml*/

     /bean

     bean id=*vendorAdapter* class=*
 org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter*

         property name=*database* value=*${vendorAdapter.database}*/

         !-- set this to true for debugging purposes --

         property name=*showSql* value=*false*/

     /bean


 and it works pretty well...

 Is it the easyest/fastest way to do so?


 Thx...for reading me ;)
 Luc.

 2011/9/14 Luc Saulièreluc.sauli...@gmail.com

 Let's use the beta3 then!

 We want to store message in a users's mailbox using methods :


 user  is the String name of my user,

  message  is my MimeMessage to be stored,

 mailboxManager  is a MailboxManager loaded in my context,

 logger  is a logger...


 *new *MailboxSession *mailboxSession* = mailboxManager
 .createSystemSession(user, logger);

 *new *MailboxPath mailboxPath = MailboxPath.*inbox*(*mailboxSession*);


 mailboxManager.startProcessingRequest(*mailboxSession*);

 *try* {

 mailboxManager.createMailbox(mailboxPath, *mailboxSession*);

 } *catch* (MailboxExistsException e) {

 logger.info(Mailbox already exists...);

 }

 mailboxManager.endProcessingRequest(*mailboxSession*);


 *new *MessageManager messageManager = 
 mailboxManager.getMailbox(mailboxPath,
 *mailboxSession*);


 MimeMessageInputStream mmis = *new *MimeMessageInputStream(message);

 Date date = *new* Date();

 messageManager.appendMessage(mmis, date, *mailboxSession*, 
 *true*,*new*Flags());

  It worked well for the M2 but I don't know which MailboxManager bean to
 load on my context for the M3...
 Is it still the same method to store mails?

 Thx
 Luc.



 2011

[jira] [Created] (PROTOCOLS-33) Encoder/Decoder should be generic

2011-09-21 Thread Norman Maurer (JIRA)
Encoder/Decoder should be generic
-

 Key: PROTOCOLS-33
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-33
 Project: JAMES Protocols
  Issue Type: Improvement
  Components: api
Affects Versions: 1.5
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.6


For Netty we have an Encoder and Decoder to convert stuff to a Request and from 
a Response. This kind of Encoder / Decoder should not depend on netty and are 
generic as we also need it when using other transport implementations. The best 
thing would be to decode from byte[] to Response and encode from Request to 
byte[]. This will make it reusable with any transport impl.

--
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: r1173013 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java

2011-09-20 Thread norman
Author: norman
Date: Tue Sep 20 07:44:16 2011
New Revision: 1173013

URL: http://svn.apache.org/viewvc?rev=1173013view=rev
Log:
Add Abstract implementation of Response

Added:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
   (with props)
Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java

Added: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java?rev=1173013view=auto
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 (added)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
 Tue Sep 20 07:44:16 2011
@@ -0,0 +1,119 @@
+/
+ * 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.util.LinkedList;
+import java.util.List;
+
+/**
+ * Abstract base implementation of {@link Response}
+ * 
+ *
+ */
+public abstract class AbstractResponse implements Response{
+
+
+private String retCode = null;
+protected ListCharSequence lines = null;
+protected String rawLine = null;
+private boolean endSession = false;
+
+/**
+ * Construct a new SMTPResponse. The given code and description can not be 
null, if null an IllegalArgumentException
+ * get thrown
+ * 
+ * @param code the returnCode
+ * @param description the description 
+ */
+public AbstractResponse(String code, CharSequence description) {
+if (code == null) throw new IllegalArgumentException(code can not be 
null);
+this.setRetCode(code);
+this.appendLine(description);
+this.rawLine = code +   + description;
+}
+
+
+
+/**
+ * Append the responseLine to the SMTPResponse
+ * 
+ * @param line the responseLine to append
+ */
+public void appendLine(CharSequence line) {
+if (lines == null) {
+lines = new LinkedListCharSequence();
+}
+lines.add(line);
+}
+
+/**
+ * Return the SMTPCode 
+ * 
+ * @return the SMTPCode
+ */
+public String getRetCode() {
+return retCode;
+}
+
+/**
+ * Set the SMTPCode
+ *  
+ * @param retCode the SMTPCode
+ */
+public void setRetCode(String retCode) {
+this.retCode = retCode;
+}
+
+   
+/**
+ * Return the raw representation of the Stored SMTPResponse
+ * 
+ * @return rawLine the raw SMTPResponse
+ */
+public String getRawLine() {
+return rawLine;
+}
+
+/**
+ * Return true if the session is ended
+ * 
+ * @return true if session is ended
+ */
+public boolean isEndSession() {
+return endSession;
+}
+
+/**
+ * Set to true to end the session
+ * 
+ * @param endSession
+ */
+public void setEndSession(boolean endSession) {
+this.endSession = endSession;
+}
+
+/**
+ * @see java.lang.Object#toString()
+ */
+public String toString() {
+return getLines().toString();
+}
+
+}

Propchange: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
--
svn:mime-type = text/plain

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java?rev=1173013r1=1173012r2=1173013view=diff

svn commit: r1173014 - /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java

2011-09-20 Thread norman
Author: norman
Date: Tue Sep 20 07:44:27 2011
New Revision: 1173014

URL: http://svn.apache.org/viewvc?rev=1173014view=rev
Log:
Add Abstract implementation of Response

Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java?rev=1173014r1=1173013r2=1173014view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java
 Tue Sep 20 07:44:27 2011
@@ -20,15 +20,14 @@
 package org.apache.james.pop3server;
 
 import java.util.ArrayList;
-import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.james.protocols.api.Response;
+import org.apache.james.protocols.api.AbstractResponse;
 
 /**
- * Contains an SMTP result
+ * Contains an POP3 result
  */
-public class POP3Response implements Response {
+public class POP3Response extends AbstractResponse {
 
 // POP3 response prefixes
 /** OK response. Requested content will follow */
@@ -40,11 +39,6 @@ public class POP3Response implements Res
  */
 public final static String ERR_RESPONSE = -ERR;
 
-private String retCode = null;
-private ListCharSequence lines = null;
-private String rawLine = null;
-private boolean endSession = false;
-
 /**
  * Construct a new POP3Response. The given code and description can not be
  * null, if null an IllegalArgumentException get thrown
@@ -55,43 +49,13 @@ public class POP3Response implements Res
  *the description
  */
 public POP3Response(String code, CharSequence description) {
-if (code == null)
-throw new IllegalArgumentException(POP3Response code can not be 
null);
-
-this.setRetCode(code);
-if (description == null) {
-description = ;
-}
-this.rawLine = code +   + description;
-
-this.appendLine(description);
-
+super(code, description);
 }
 
 public POP3Response(String code) {
 this(code, null);
 }
 
-/**
- * Append the responseLine to the SMTPResponse
- * 
- * @param line
- *the responseLine to append
- */
-public void appendLine(CharSequence line) {
-if (lines == null) {
-lines = new LinkedListCharSequence();
-}
-lines.add(line);
-}
-
-public String getRetCode() {
-return retCode;
-}
-
-public void setRetCode(String retCode) {
-this.retCode = retCode;
-}
 
 /**
  * Return a List of all responseLines stored in this POP3Response
@@ -110,37 +74,4 @@ public class POP3Response implements Res
 return responseList;
 }
 
-/**
- * Return the raw representation of the Stored POP3Response
- * 
- * @return rawLine the raw POP3Response
- */
-public String getRawLine() {
-return rawLine;
-}
-
-/**
- * Return true if the session is ended
- * 
- * @return true if session is ended
- */
-public boolean isEndSession() {
-return endSession;
-}
-
-/**
- * Set to true to end the session
- * 
- * @param endSession
- */
-public void setEndSession(boolean endSession) {
-this.endSession = endSession;
-}
-
-/**
- * @see java.lang.Object#toString()
- */
-public String toString() {
-return getRetCode() +   + getLines();
-}
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Resolved] (JAMES-1303) IMAPServer / SMTPServer / POP3Server MAY close the Channel before all messages are flushed out

2011-09-20 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1303.
--

Resolution: Fixed

was done...

 IMAPServer / SMTPServer / POP3Server MAY close the Channel before all 
 messages are flushed out
 --

 Key: JAMES-1303
 URL: https://issues.apache.org/jira/browse/JAMES-1303
 Project: JAMES Server
  Issue Type: Bug
  Components: IMAPServer, POP3Server, SMTPServer
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 3.0-beta4


 At the moment we call Channel.close(); to close the channel. This will close 
 the channel without make sure that all currently queued message are flushed 
 out to the client.
 This can lead to some strange side effects as we may not write all data for 
 the response out to the client before doing so.
 See:
 http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Flush-channel-before-close-td5634777.html
 http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Netty-behavior-when-disconnecting-a-channel-td5861795.html#a5862024

--
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] (JAMES-1302) SMTPNettySession.sleep(...) is not implemented

2011-09-20 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1302.
--

Resolution: Invalid

SMTPSession.sleep(..) was removed

 SMTPNettySession.sleep(...) is not implemented
 --

 Key: JAMES-1302
 URL: https://issues.apache.org/jira/browse/JAMES-1302
 Project: JAMES Server
  Issue Type: Bug
  Components: SMTPServer
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Priority: Minor
 Fix For: 3.0-beta4


 SMTPNettySession.sleep(..) is not implemented and so not usable. At the 
 moment it just do nothing.

--
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: r1173499 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java

2011-09-20 Thread norman
Author: norman
Date: Wed Sep 21 05:06:46 2011
New Revision: 1173499

URL: http://svn.apache.org/viewvc?rev=1173499view=rev
Log:
EhloCommandHandler should hook in its extensions also

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java?rev=1173499r1=1173498r2=1173499view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java
 Wed Sep 21 05:06:46 2011
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.james.protocols.api.handler.WiringException;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -34,7 +35,7 @@ import org.apache.james.protocols.smtp.h
 /**
  * Handles EHLO command
  */
-public class EhloCmdHandler extends AbstractHookableCmdHandlerHeloHook {
+public class EhloCmdHandler extends AbstractHookableCmdHandlerHeloHook 
implements EhloExtension{
 
 /**
  * The name of the command handled by the command handler
@@ -63,10 +64,7 @@ public class EhloCmdHandler extends Abst
 
 processExtensions(session, resp);
 
-resp.appendLine(PIPELINING);
-resp.appendLine(ENHANCEDSTATUSCODES);
-// see http://issues.apache.org/jira/browse/JAMES-419
-resp.appendLine(8BITMIME);
+
  
 return resp;
 
@@ -166,4 +164,19 @@ public class EhloCmdHandler extends Abst
 return rawHook.doHelo(session, parameters);
 }
 
+
+
+/*
+ * (non-Javadoc)
+ * @see 
org.apache.james.protocols.smtp.core.esmtp.EhloExtension#getImplementedEsmtpFeatures(org.apache.james.protocols.smtp.SMTPSession)
+ */
+public ListString getImplementedEsmtpFeatures(SMTPSession session) {
+ListString extensions = new ArrayListString();
+extensions.add(PIPELINING);
+extensions.add(ENHANCEDSTATUSCODES);
+// see http://issues.apache.org/jira/browse/JAMES-419
+extensions.add(8BITMIME);
+return extensions;
+}
+
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1173506 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java

2011-09-20 Thread norman
Author: norman
Date: Wed Sep 21 05:58:24 2011
New Revision: 1173506

URL: http://svn.apache.org/viewvc?rev=1173506view=rev
Log:
Allow to overwrite default handlers

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java?rev=1173506r1=1173505r2=1173506view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
 Wed Sep 21 05:58:24 2011
@@ -66,6 +66,14 @@ public class SMTPProtocolHandlerChain ex
 private boolean authHandler = false;
 
 public SMTPProtocolHandlerChain() throws WiringException {
+defaultHandlers.addAll(initDefaultHandlers());
+copy();
+
+wireExtensibleHandlers();
+}
+
+protected ListObject initDefaultHandlers() {
+ListObject defaultHandlers = new ArrayListObject();
 defaultHandlers.add(new SMTPCommandDispatcherLineHandler());
 defaultHandlers.add(new ExpnCmdHandler());
 defaultHandlers.add(new EhloCmdHandler());
@@ -84,10 +92,9 @@ public class SMTPProtocolHandlerChain ex
 defaultHandlers.add(new ReceivedDataLineFilter());
 defaultHandlers.add(new DataLineMessageHookHandler());
 defaultHandlers.add(new StartTlsCmdHandler());
-copy();
-
-wireExtensibleHandlers();
+return defaultHandlers;
 }
+
 
 /**
  * Add the hook to the chain



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172483 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ smtp/src/main/java/org/apache/james/protocols/smtp/

2011-09-19 Thread norman
Author: norman
Date: Mon Sep 19 06:44:49 2011
New Revision: 1172483

URL: http://svn.apache.org/viewvc?rev=1172483view=rev
Log:
Merge TLSSupportedSession with ProtocolSession

Removed:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/TLSSupportedSession.java
Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java?rev=1172483r1=1172482r2=1172483view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/AbstractSession.java
 Mon Sep 19 06:44:49 2011
@@ -21,9 +21,9 @@ package org.apache.james.protocols.api;
 
 import java.net.InetSocketAddress;
 
+
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.TLSSupportedSession;
 import org.slf4j.Logger;
 
 /**
@@ -31,7 +31,7 @@ import org.slf4j.Logger;
  * 
  * 
  */
-public abstract class AbstractSession implements TLSSupportedSession {
+public abstract class AbstractSession implements ProtocolSession {
 protected InetSocketAddress socketAddress;
 private Logger logger;
 private SessionLog pLog = null;

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=1172483r1=1172482r2=1172483view=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
 Mon Sep 19 06:44:49 2011
@@ -50,7 +50,8 @@ public interface ProtocolSession {
 void resetState();
 
 /**
- * Write the response back to the client
+ * Write the response back to the client. Special care MUST be take to 
handle {@link StartTlsResponse} instances.
+ * 
  * 
  * @param response
  */
@@ -90,4 +91,33 @@ public interface ProtocolSession {
  * @return Response
  */
 Response newFatalErrorResponse();
+
+/**
+ * Returns the user name associated with this interaction.
+ *
+ * @return the user name
+ */
+String getUser();
+
+/**
+ * Sets the user name associated with this interaction.
+ *
+ * @param user the user name
+ */
+void setUser(String user);
+
+/**
+ * Return true if StartTLS is supported by the configuration
+ * 
+ * @return supported
+ */
+boolean isStartTLSSupported();
+
+/**
+ * Return true if the starttls was started
+ * 
+ * @return true
+ */
+boolean isTLSStarted();
+
 }

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java?rev=1172483r1=1172482r2=1172483view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 Mon Sep 19 06:44:49 2011
@@ -22,14 +22,14 @@ package org.apache.james.protocols.smtp;
 import java.util.Map;
 
 import org.apache.james.protocols.api.LineHandler;
-import org.apache.james.protocols.api.TLSSupportedSession;
+import org.apache.james.protocols.api.ProtocolSession;
 
 /**
  * All the handlers access this interface to communicate with
  * SMTPHandler object
  */
 
-public interface SMTPSession extends TLSSupportedSession{
+public interface SMTPSession extends ProtocolSession{
 
 // Keys used to store/lookup data in the internal state hash map
 /** Sender's email address */



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172484 - /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java

2011-09-19 Thread norman
Author: norman
Date: Mon Sep 19 06:45:33 2011
New Revision: 1172484

URL: http://svn.apache.org/viewvc?rev=1172484view=rev
Log:
Merge TLSSupportedSession with ProtocolSession

Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java?rev=1172484r1=1172483r2=1172484view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java
 Mon Sep 19 06:45:33 2011
@@ -20,13 +20,13 @@
 package org.apache.james.pop3server;
 
 import org.apache.james.mailbox.MessageManager;
-import org.apache.james.protocols.api.TLSSupportedSession;
+import org.apache.james.protocols.api.ProtocolSession;
 
 /**
  * All the handlers access this interface to communicate with POP3Handler 
object
  */
 
-public interface POP3Session extends TLSSupportedSession {
+public interface POP3Session extends ProtocolSession {
 
 final static String UID_LIST = UID_LIST;
 final static String DELETED_UID_LIST = DELETED_UID_LIST;



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172488 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ api/src/main/java/org/apache/james/protocols/api/handler/ smtp/src/main/java/org/apache/james/protoc

2011-09-19 Thread norman
Author: norman
Date: Mon Sep 19 06:53:03 2011
New Revision: 1172488

URL: http://svn.apache.org/viewvc?rev=1172488view=rev
Log:
Move Handler stuff to extra package

Added:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/WiringException.java
  - copied, changed from r1172468, 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/WiringException.java
Removed:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/WiringException.java
Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ExtensibleHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java?rev=1172488r1=1172487r2=1172488view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractCommandDispatcher.java
 Mon Sep 19 06:53:03 2011
@@ -31,7 +31,6 @@ import java.util.Locale;
 import org.apache.james.protocols.api.BaseRequest;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.WiringException;
 
 
 

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java?rev=1172488r1=1172487r2=1172488view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
 Mon Sep 19 06:53:03 2011
@@ -22,7 +22,6 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.james.protocols.api.WiringException;
 
 /**
  * Abstract base class for {@link ProtocolHandlerChain} implementations

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ExtensibleHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ExtensibleHandler.java?rev=1172488r1=1172487r2=1172488view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ExtensibleHandler.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/ExtensibleHandler.java
 Mon Sep 19 06:53:03 2011
@@ -21,7 +21,6 @@ package org.apache.james.protocols.api.h
 
 import java.util.List;
 
-import org.apache.james.protocols.api.WiringException;
 
 
 

Copied: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/WiringException.java
 (from r1172468, 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/WiringException.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/WiringException.java?p2=james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/WiringException.javap1=james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/WiringException.javar1=1172468r2=1172488rev=1172488view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/WiringException.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/WiringException.java
 Mon Sep 19 06:53:03 2011
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations  *
  * under the License

svn commit: r1172489 - in /james/server/trunk: pop3server/src/main/java/org/apache/james/pop3server/core/ protocols-library/src/main/java/org/apache/james/protocols/lib/ protocols-library/src/main/jav

2011-09-19 Thread norman
Author: norman
Date: Mon Sep 19 06:53:39 2011
New Revision: 1172489

URL: http://svn.apache.org/viewvc?rev=1172489view=rev
Log:
Move Handler stuff to extra package

Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CapaCmdHandler.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/ProtocolHandlerChainImpl.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java

james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/HookResultJMXMonitor.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CapaCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CapaCmdHandler.java?rev=1172489r1=1172488r2=1172489view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CapaCmdHandler.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CapaCmdHandler.java
 Mon Sep 19 06:53:39 2011
@@ -27,9 +27,9 @@ import org.apache.james.pop3server.POP3R
 import org.apache.james.pop3server.POP3Session;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.WiringException;
 import org.apache.james.protocols.api.handler.CommandHandler;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
+import org.apache.james.protocols.api.handler.WiringException;
 
 /**
  * This handler is used to handle CAPA commands

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/ProtocolHandlerChainImpl.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/ProtocolHandlerChainImpl.java?rev=1172489r1=1172488r2=1172489view=diff
==
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/ProtocolHandlerChainImpl.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/ProtocolHandlerChainImpl.java
 Mon Sep 19 06:53:39 2011
@@ -28,12 +28,12 @@ import org.apache.commons.configuration.
 import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 
-import org.apache.james.protocols.api.WiringException;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.HandlersPackage;
 import org.apache.james.protocols.api.handler.LifecycleAwareProtocolHandler;
 import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
 import org.apache.james.protocols.api.handler.ProtocolHandlerLoader;
+import org.apache.james.protocols.api.handler.WiringException;
 
 public class ProtocolHandlerChainImpl implements ProtocolHandlerChain{
 

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java?rev=1172489r1=1172488r2=1172489view=diff
==
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
 Mon Sep 19 06:53:39 2011
@@ -28,11 +28,11 @@ import org.apache.commons.configuration.
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.WiringException;
 import org.apache.james.protocols.api.handler.CommandHandler;
 import org.apache.james.protocols.api.handler.CommandHandlerResultHandler;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LifecycleAwareProtocolHandler;
+import org.apache.james.protocols.api.handler.WiringException;
 
 /**
  * Expose JMX statistics for {@link CommandHandler}

Modified: 
james/server/trunk

svn commit: r1172981 - /james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java

2011-09-19 Thread norman
Author: norman
Date: Tue Sep 20 05:52:16 2011
New Revision: 1172981

URL: http://svn.apache.org/viewvc?rev=1172981view=rev
Log:
Move Handler stuff to extra package

Modified:

james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java

Modified: 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java?rev=1172981r1=1172980r2=1172981view=diff
==
--- 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java
 (original)
+++ 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java
 Tue Sep 20 05:52:16 2011
@@ -21,9 +21,9 @@ package org.apache.james.container.sprin
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.container.spring.bean.AbstractBeanFactory;
-import org.apache.james.protocols.api.LifecycleAwareProtocolHandler;
-import org.apache.james.protocols.api.ProtocolHandler;
-import org.apache.james.protocols.api.ProtocolHandlerLoader;
+import org.apache.james.protocols.api.handler.LifecycleAwareProtocolHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandlerLoader;
 import org.springframework.beans.BeansException;
 
 public class ProtocolHandlerLoaderBeanFactory extends AbstractBeanFactory 
implements ProtocolHandlerLoader{



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172253 - /james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java

2011-09-18 Thread norman
Author: norman
Date: Sun Sep 18 11:24:15 2011
New Revision: 1172253

URL: http://svn.apache.org/viewvc?rev=1172253view=rev
Log:
Make sure all bytes are written to the client before closing the channel

Modified:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java?rev=1172253r1=1172252r2=1172253view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/LineHandlerUpstreamHandler.java
 Sun Sep 18 11:24:15 2011
@@ -21,6 +21,8 @@ package org.apache.james.protocols.impl;
 import org.apache.james.protocols.api.LineHandler;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.jboss.netty.channel.ChannelFutureListener;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.channel.MessageEvent;
@@ -54,7 +56,7 @@ public class LineHandlerUpstreamHandler
 }
 
 boolean disconnect = handler.onLine(session, line);
-if (disconnect) ctx.getChannel().disconnect();
+if (disconnect) 
ctx.getChannel().write(ChannelBuffers.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
 
 }
 



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172255 - in /james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl: AbstractChannelUpstreamHandler.java BasicChannelUpstreamHandler.java

2011-09-18 Thread norman
Author: norman
Date: Sun Sep 18 11:27:27 2011
New Revision: 1172255

URL: http://svn.apache.org/viewvc?rev=1172255view=rev
Log:
Merge AbstractChannelUpstreamHandler with BasicChannelUpstreamHandler as there 
is no need to have both

Removed:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelUpstreamHandler.java
Modified:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java?rev=1172255r1=1172254r2=1172255view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 Sun Sep 18 11:27:27 2011
@@ -18,22 +18,33 @@
  /
 package org.apache.james.protocols.impl;
 
+import java.util.LinkedList;
+import java.util.List;
+
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLEngine;
 
+import org.apache.james.protocols.api.ConnectHandler;
+import org.apache.james.protocols.api.ConnectHandlerResultHandler;
+import org.apache.james.protocols.api.DisconnectHandler;
+import org.apache.james.protocols.api.LineHandler;
+import org.apache.james.protocols.api.LineHandlerResultHandler;
 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.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 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.ChannelStateEvent;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.channel.ExceptionEvent;
+import org.jboss.netty.channel.MessageEvent;
+import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
 import org.jboss.netty.handler.codec.frame.TooLongFrameException;
 import org.slf4j.Logger;
 
@@ -41,25 +52,145 @@ import org.slf4j.Logger;
  * {@link ChannelUpstreamHandler} which is used by the SMTPServer and other 
line based protocols
  */
 @Sharable
-public class BasicChannelUpstreamHandler extends 
AbstractChannelUpstreamHandler {
+public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
 protected final Logger logger;
 protected final SSLContext context;
 protected String[] enabledCipherSuites;
 protected ProtocolSessionFactory sessionFactory;
+protected ProtocolHandlerChain chain;
 
 public BasicChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger) {
 this(chain, sessionFactory, logger, null, null);
 }
 
 public BasicChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger, SSLContext context, 
String[] enabledCipherSuites) {
-super(chain);
+this.chain = chain;
 this.sessionFactory = sessionFactory;
 this.logger = logger;
 this.context = context;
 this.enabledCipherSuites = enabledCipherSuites;
 }
 
+
+@Override
+public void channelBound(ChannelHandlerContext ctx, ChannelStateEvent e) 
throws Exception {
+ctx.setAttachment(createSession(ctx));
+super.channelBound(ctx, e);
+}
+
+
+
+/**
+ * Call the {@link ConnectHandler} instances which are stored in the 
{@link ProtocolHandlerChain}
+ */
+@SuppressWarnings(unchecked)
+@Override
+public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent 
e) throws Exception {
+ListConnectHandler connectHandlers = 
chain.getHandlers(ConnectHandler.class);
+ListConnectHandlerResultHandler resultHandlers = 
chain.getHandlers(ConnectHandlerResultHandler.class);
+ProtocolSession session = (ProtocolSession) ctx.getAttachment();
+session.getLogger().info(Connection established from  + 
session.getRemoteHost() +  ( + session.getRemoteIPAddress()+ ));
+if (connectHandlers != null) {
+for (int i = 0; i  connectHandlers.size(); i++) {
+ConnectHandler cHandler = connectHandlers.get(i);
+
+long start = System.currentTimeMillis

svn commit: r1172256 - in /james/protocols/trunk/impl/src/main/java/org: apache/james/protocols/impl/ jboss/netty/handler/connection/

2011-09-18 Thread norman
Author: norman
Date: Sun Sep 18 11:28:56 2011
New Revision: 1172256

URL: http://svn.apache.org/viewvc?rev=1172256view=rev
Log:
Remove jboss package

Added:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionLimitUpstreamHandler.java
  - copied, changed from r1172017, 
james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionLimitUpstreamHandler.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionPerIpLimitUpstreamHandler.java
  - copied, changed from r1172017, 
james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionPerIpLimitUpstreamHandler.java
Removed:

james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionLimitUpstreamHandler.java

james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionPerIpLimitUpstreamHandler.java
Modified:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.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=1172256r1=1172255r2=1172256view=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
 Sun Sep 18 11:28:56 2011
@@ -28,8 +28,6 @@ import org.jboss.netty.channel.group.Cha
 import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
 import org.jboss.netty.handler.codec.frame.Delimiters;
 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;

Copied: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionLimitUpstreamHandler.java
 (from r1172017, 
james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionLimitUpstreamHandler.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionLimitUpstreamHandler.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionLimitUpstreamHandler.javap1=james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionLimitUpstreamHandler.javar1=1172017r2=1172256rev=1172256view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionLimitUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionLimitUpstreamHandler.java
 Sun Sep 18 11:28:56 2011
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations  *
  * under the License.   *
  /
-package org.jboss.netty.handler.connection;
+package org.apache.james.protocols.impl;
 
 import java.util.concurrent.atomic.AtomicInteger;
 

Copied: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionPerIpLimitUpstreamHandler.java
 (from r1172017, 
james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionPerIpLimitUpstreamHandler.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionPerIpLimitUpstreamHandler.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionPerIpLimitUpstreamHandler.javap1=james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionPerIpLimitUpstreamHandler.javar1=1172017r2=1172256rev=1172256view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/jboss/netty/handler/connection/ConnectionPerIpLimitUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ConnectionPerIpLimitUpstreamHandler.java
 Sun Sep 18 11:28:56 2011
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations  *
  * under the License.   *
  /
-package org.jboss.netty.handler.connection;
+package

svn commit: r1172257 - /james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java

2011-09-18 Thread norman
Author: norman
Date: Sun Sep 18 11:29:20 2011
New Revision: 1172257

URL: http://svn.apache.org/viewvc?rev=1172257view=rev
Log:
Adjust for latest protocol changes

Modified:

james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java?rev=1172257r1=1172256r2=1172257view=diff
==
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
 Sun Sep 18 11:29:20 2011
@@ -32,6 +32,8 @@ import org.apache.james.imap.api.process
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.encode.ImapEncoder;
 import org.apache.james.protocols.impl.ChannelGroupHandler;
+import org.apache.james.protocols.impl.ConnectionLimitUpstreamHandler;
+import org.apache.james.protocols.impl.ConnectionPerIpLimitUpstreamHandler;
 import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
 import org.jboss.netty.channel.ChannelPipeline;
 import org.jboss.netty.channel.ChannelPipelineFactory;
@@ -40,8 +42,6 @@ import org.jboss.netty.channel.group.Cha
 import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
 import org.jboss.netty.handler.codec.frame.Delimiters;
 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.ssl.SslHandler;
 import org.jboss.netty.handler.stream.ChunkedWriteHandler;



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172306 - /james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java

2011-09-18 Thread norman
Author: norman
Date: Sun Sep 18 17:35:16 2011
New Revision: 1172306

URL: http://svn.apache.org/viewvc?rev=1172306view=rev
Log:
Don't use parallel processing when splitting the Mail. See JAMES-1319

Modified:

james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java

Modified: 
james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java?rev=1172306r1=1172305r2=1172306view=diff
==
--- 
james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
 (original)
+++ 
james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
 Sun Sep 18 17:35:16 2011
@@ -169,7 +169,7 @@ public class CamelMailetProcessor extend
 processorDef.setProperty(MatcherSplitter.MATCHER_PROPERTY, 
constant(matcher)).setProperty(MatcherSplitter.ON_MATCH_EXCEPTION_PROPERTY, 
constant(onMatchException)).setProperty(MatcherSplitter.MAILETCONTAINER_PROPERTY,
 constant(CamelMailetProcessor.this))
 
 // do splitting of the mail based on the stored matcher
-
.split().method(MatcherSplitter.class).aggregationStrategy(aggr).parallelProcessing()
+
.split().method(MatcherSplitter.class).aggregationStrategy(aggr)
 
 .choice().when(new 
MatcherMatch()).process(mailetProccessor).end()
 



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Created] (JAMES-1319) CamelMailetProcessor MAY use more threads as expected and so has some side-effects

2011-09-18 Thread Norman Maurer (JIRA)
CamelMailetProcessor MAY use more threads as expected and so has some 
side-effects
--

 Key: JAMES-1319
 URL: https://issues.apache.org/jira/browse/JAMES-1319
 Project: JAMES Server
  Issue Type: Bug
  Components: SpoolManager  Processors
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 3.0-beta4


In CamelMailetProcessor we use parallel processing when splitting the mail 
because of Matcher's. This leads to spawn extra threads within camel which is 
not what most users expect. To mimic more the old behavoir and also make sure 
we don't run into issues we should remove the parallel processing.

--
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] (JAMES-1319) CamelMailetProcessor MAY use more threads as expected and so has some side-effects

2011-09-18 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1319.
--

Resolution: Fixed

 CamelMailetProcessor MAY use more threads as expected and so has some 
 side-effects
 --

 Key: JAMES-1319
 URL: https://issues.apache.org/jira/browse/JAMES-1319
 Project: JAMES Server
  Issue Type: Bug
  Components: SpoolManager  Processors
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 3.0-beta4


 In CamelMailetProcessor we use parallel processing when splitting the mail 
 because of Matcher's. This leads to spawn extra threads within camel which is 
 not what most users expect. To mimic more the old behavoir and also make sure 
 we don't run into issues we should remove the parallel processing.

--
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: r1172326 - /james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java

2011-09-18 Thread norman
Author: norman
Date: Sun Sep 18 19:30:33 2011
New Revision: 1172326

URL: http://svn.apache.org/viewvc?rev=1172326view=rev
Log:
Don't call saveChanges() if not needed. See JAMES-1320

Modified:

james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java

Modified: 
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java?rev=1172326r1=1172325r2=1172326view=diff
==
--- 
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java
 (original)
+++ 
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java
 Sun Sep 18 19:30:33 2011
@@ -291,9 +291,7 @@ public class MimeMessageWrapper extends 
 }
 
 public synchronized void writeTo(OutputStream headerOs, OutputStream 
bodyOs, String[] ignoreList, boolean preLoad) throws IOException, 
MessagingException {
-if (!saved)
-saveChanges();
-
+
 if (preLoad == false  source != null  !isBodyModified()) {
 // We do not want to instantiate the message... just read from
 // source
@@ -309,6 +307,10 @@ public class MimeMessageWrapper extends 
 if (isHeaderModified() == false) {
 myHeaders = parsedHeaders;
 } else {
+// The headers was modified so we need to call 
saveChanges() just to be sure
+// See JAMES-1320
+if (!saved)
+saveChanges();
 myHeaders = headers;
 }
 IOUtils.copy(new 
InternetHeadersInputStream(myHeaders.getNonMatchingHeaderLines(ignoreList)), 
headerOs);
@@ -317,6 +319,11 @@ public class MimeMessageWrapper extends 
 IOUtils.closeQuietly(in);
 }
 } else {
+// save the changes as the message was modified
+// See JAMES-1320
+if (!saved)
+saveChanges();
+
 // MimeMessageUtil.writeToInternal(this, headerOs, bodyOs,
 // ignoreList);
 if (headers == null) {



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Resolved] (JAMES-1320) MimeMessageWrapper.writeTo(...) calls saveChanges() even if not needed

2011-09-18 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1320.
--

Resolution: Fixed

done

 MimeMessageWrapper.writeTo(...) calls saveChanges() even if not needed
 --

 Key: JAMES-1320
 URL: https://issues.apache.org/jira/browse/JAMES-1320
 Project: JAMES Server
  Issue Type: Improvement
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 3.0-beta4


 When MimeMessageWrapper.writeTo(...) is called we call saveChanges() 
 everytime even when the messagewas not modified at all. This is not neeed and 
 also can throw exceptions on malformated messages.
 See the related stacktrace:
 org.apache.james.queue.api.MailQueue$MailQueueException: Unable to enqueue 
 mail;
   nested exception is:
 javax.mail.internet.ParseException: Expected ';', got windows-1250
 at 
 org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:193)
 at 
 org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:230)
 at 
 org.apache.james.smtpserver.SendMailHandler.onMessage(SendMailHandler.java:64)
 at 
 org.apache.james.smtpserver.DataLineJamesMessageHookHandler.processExtensions(DataLineJamesMessageHookHandler.java:178)
 at 
 org.apache.james.smtpserver.DataLineJamesMessageHookHandler.onLine(DataLineJamesMessageHookHandler.java:96)
 at 
 org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
 at 
 org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
 at 
 org.apache.james.protocols.smtp.core.ReceivedDataLineFilter.onLine(ReceivedDataLineFilter.java:54)
 at 
 org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
 at 
 org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
 at 
 org.apache.james.protocols.smtp.core.esmtp.MailSizeEsmtpExtension.onLine(MailSizeEsmtpExtension.java:147)
 at 
 org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
 at 
 org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
 at 
 org.apache.james.protocols.impl.LineHandlerUpstreamHandler.messageReceived(LineHandlerUpstreamHandler.java:57)
 at 
 org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
 at 
 org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
 at 
 org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
 at 
 org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:69)
 at 
 org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:316)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
 at java.lang.Thread.run(Thread.java:679)
 Caused by: javax.mail.internet.ParseException: Expected ';', got 
 windows-1250
 at javax.mail.internet.ParameterList.init(ParameterList.java:289)
 at javax.mail.internet.ContentType.init(ContentType.java:114)
 at 
 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1322)
 at 
 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
 at 
 javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
 at 
 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1345)
 at 
 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
 at 
 javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
 at 
 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1345)
 at 
 javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2106)
 at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2074)
 at 
 org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:295)
 at 
 org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:290)
 at 
 org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:286)
 at 
 org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:271)
 at 
 org.apache.james.core.MimeMessageCopyOnWriteProxy.writeTo

[jira] [Created] (JAMES-1320) MimeMessageWrapper.writeTo(...) calls saveChanges() even if not needed

2011-09-18 Thread Norman Maurer (JIRA)
MimeMessageWrapper.writeTo(...) calls saveChanges() even if not needed
--

 Key: JAMES-1320
 URL: https://issues.apache.org/jira/browse/JAMES-1320
 Project: JAMES Server
  Issue Type: Improvement
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 3.0-beta4


When MimeMessageWrapper.writeTo(...) is called we call saveChanges() everytime 
even when the messagewas not modified at all. This is not neeed and also can 
throw exceptions on malformated messages.

See the related stacktrace:
org.apache.james.queue.api.MailQueue$MailQueueException: Unable to enqueue mail;
  nested exception is:
javax.mail.internet.ParseException: Expected ';', got windows-1250
at 
org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:193)
at 
org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:230)
at 
org.apache.james.smtpserver.SendMailHandler.onMessage(SendMailHandler.java:64)
at 
org.apache.james.smtpserver.DataLineJamesMessageHookHandler.processExtensions(DataLineJamesMessageHookHandler.java:178)
at 
org.apache.james.smtpserver.DataLineJamesMessageHookHandler.onLine(DataLineJamesMessageHookHandler.java:96)
at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
at 
org.apache.james.protocols.smtp.core.ReceivedDataLineFilter.onLine(ReceivedDataLineFilter.java:54)
at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
at 
org.apache.james.protocols.smtp.core.esmtp.MailSizeEsmtpExtension.onLine(MailSizeEsmtpExtension.java:147)
at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
at 
org.apache.james.protocols.impl.LineHandlerUpstreamHandler.messageReceived(LineHandlerUpstreamHandler.java:57)
at 
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
at 
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
at 
org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:69)
at 
org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:316)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: javax.mail.internet.ParseException: Expected ';', got windows-1250
at javax.mail.internet.ParameterList.init(ParameterList.java:289)
at javax.mail.internet.ContentType.init(ContentType.java:114)
at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1322)
at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
at 
javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1345)
at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
at 
javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1345)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2106)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2074)
at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:295)
at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:290)
at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:286)
at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:271)
at 
org.apache.james.core.MimeMessageCopyOnWriteProxy.writeTo(MimeMessageCopyOnWriteProxy.java:184)
at 
org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:161)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

svn commit: r1171926 - in /james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl: AbstractResponseEncoder.java NettyServer.java ResponseEncoder.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 07:51:21 2011
New Revision: 1171926

URL: http://svn.apache.org/viewvc?rev=1171926view=rev
Log:
Rename AbstractResponseEncoder to ResponseEncoder

Added:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ResponseEncoder.java
  - copied, changed from r1171924, 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.java
Removed:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.java
Modified:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java?rev=1171926r1=1171925r2=1171926view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java
 Sat Sep 17 07:51:21 2011
@@ -25,7 +25,7 @@ import javax.net.ssl.SSLContext;
 
 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.ResponseEncoder;
 import org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory;
 import org.apache.james.protocols.impl.BasicChannelUpstreamHandler;
 import org.jboss.netty.channel.ChannelPipelineFactory;
@@ -63,7 +63,7 @@ public class NettyServer extends Abstrac
 super();
 this.protocol = protocol;
 this.context = context;
-this.responseEncoder = new 
AbstractResponseEncoder(protocol.getResponseClass(), 
Charset.forName(US-ASCII));
+this.responseEncoder = new 
ResponseEncoder(protocol.getResponseClass(), Charset.forName(US-ASCII));
 }
 
 protected ExecutionHandler createExecutionHandler(int size) {

Copied: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ResponseEncoder.java
 (from r1171924, 
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/ResponseEncoder.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ResponseEncoder.javap1=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractResponseEncoder.javar1=1171924r2=1171926rev=1171926view=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/ResponseEncoder.java
 Sat Sep 17 07:51:21 2011
@@ -34,12 +34,12 @@ import org.jboss.netty.handler.codec.one
  *
  * @param R
  */
-public class AbstractResponseEncoder extends OneToOneEncoder{
+public class ResponseEncoder extends OneToOneEncoder{
 
 private Class? extends Response classType;
 private Charset charset;
 
-public AbstractResponseEncoder(Class ? extends Response classType, 
Charset charset) {
+public ResponseEncoder(Class ? extends Response classType, Charset 
charset) {
 this.classType = classType;
 this.charset = charset;
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



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

2011-09-17 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTOCOLS-30?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved PROTOCOLS-30.


Resolution: Fixed

done

 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] [Resolved] (PROTOCOLS-28) Use zero-file-copy if possible in AbstractSession.writeStream(...)

2011-09-17 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTOCOLS-28?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved PROTOCOLS-28.


Resolution: Won't Fix

Writing a stream was removed from the abstract class

 Use zero-file-copy if possible in AbstractSession.writeStream(...)
 --

 Key: PROTOCOLS-28
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-28
 Project: JAMES Protocols
  Issue Type: Improvement
Affects Versions: 1.4.0
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.5


 We should make use of zero-file-copy if possible in 
 AbstractSession.writeStream(...)

--
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] (PROTOCOLS-3) Add some reusable implementation code

2011-09-17 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTOCOLS-3?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved PROTOCOLS-3.
---

   Resolution: Fixed
Fix Version/s: 1.6

I think this can get closed now

 Add some reusable implementation code
 -

 Key: PROTOCOLS-3
 URL: https://issues.apache.org/jira/browse/PROTOCOLS-3
 Project: JAMES Protocols
  Issue Type: Task
Reporter: Norman Maurer
Assignee: Norman Maurer
 Fix For: 1.6




--
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: r1171965 - /james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 12:36:57 2011
New Revision: 1171965

URL: http://svn.apache.org/viewvc?rev=1171965view=rev
Log:
Allow to pass in a ProtocolHandlerChain to make it more reusable. Maybe we 
should restrict somehow but not sure how yet

Modified:

james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java?rev=1171965r1=1171964r2=1171965view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
 Sat Sep 17 12:36:57 2011
@@ -26,7 +26,6 @@ import org.apache.james.protocols.api.Pr
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
-import org.apache.james.protocols.smtp.SMTPProtocolHandlerChain;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPSessionImpl;
 import org.slf4j.Logger;
@@ -34,12 +33,12 @@ import org.slf4j.LoggerFactory;
 
 public class SMTPProtocol implements Protocol {
 
-private SMTPProtocolHandlerChain chain;
+private ProtocolHandlerChain chain;
 private SMTPConfiguration config;
 private Logger logger = LoggerFactory.getLogger(SMTPProtocol.class);
 
 
-public SMTPProtocol(SMTPProtocolHandlerChain chain, SMTPConfiguration 
config) {
+public SMTPProtocol(ProtocolHandlerChain chain, SMTPConfiguration config) {
 this.chain = chain;
 this.config = config;
 }



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1171969 - in /james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty: SMTPChannelUpstreamHandler.java SMTPNettySession.java SMTPServer.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 12:47:07 2011
New Revision: 1171969

URL: http://svn.apache.org/viewvc?rev=1171969view=rev
Log:
Refactor smtpserver to for latest protocols refactoring

Modified:

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java?rev=1171969r1=1171968r2=1171969view=diff
==
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
 Sat Sep 17 12:47:07 2011
@@ -19,53 +19,33 @@
 package org.apache.james.smtpserver.netty;
 
 import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLEngine;
 
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
-import org.apache.james.protocols.api.ProtocolSession;
-import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler;
-import org.apache.james.protocols.smtp.SMTPConfiguration;
-import org.apache.james.protocols.smtp.SMTPResponse;
-import org.apache.james.protocols.smtp.SMTPRetCode;
+import org.apache.james.protocols.api.ProtocolSessionFactory;
+import org.apache.james.protocols.impl.BasicChannelUpstreamHandler;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.smtpserver.SMTPConstants;
-import org.jboss.netty.channel.Channel;
-import org.jboss.netty.channel.ChannelFutureListener;
+import org.jboss.netty.channel.ChannelHandler.Sharable;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
-import org.jboss.netty.channel.ExceptionEvent;
-import org.jboss.netty.channel.ChannelHandler.Sharable;
-import org.jboss.netty.handler.codec.frame.TooLongFrameException;
 import org.slf4j.Logger;
 
 /**
  * {@link ChannelUpstreamHandler} which is used by the SMTPServer
  */
 @Sharable
-public class SMTPChannelUpstreamHandler extends 
org.apache.james.protocols.smtp.netty.SMTPChannelUpstreamHandler {
+public class SMTPChannelUpstreamHandler extends BasicChannelUpstreamHandler {
 
 
-public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger, SSLContext context, String[] 
enabledCipherSuites) {
-super(chain, conf, logger, context, enabledCipherSuites);
-}
-public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
SMTPConfiguration conf, Logger logger) {
-super(chain, conf, logger);
+public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger, SSLContext context, 
String[] enabledCipherSuites) {
+super(chain, sessionFactory, logger, context, enabledCipherSuites);
 }
-
-
-@Override
-protected ProtocolSession createSession(ChannelHandlerContext ctx) throws 
Exception {
-if (context != null) {
-SSLEngine engine = context.createSSLEngine();
-if (enabledCipherSuites != null  enabledCipherSuites.length  0) 
{
-engine.setEnabledCipherSuites(enabledCipherSuites);
-}
-return new SMTPNettySession(conf, logger, ctx.getChannel(), 
engine);
-} else {
-return new SMTPNettySession(conf, logger, ctx.getChannel());
-}
+
+public SMTPChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger) {
+super(chain, sessionFactory, logger);
 }
+
 /**
  * Cleanup temporary files
  * 

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java?rev=1171969r1=1171968r2=1171969view=diff
==
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
 Sat Sep 17 12:47:07 2011
@@ -18,35 +18,26 @@
  /
 package org.apache.james.smtpserver.netty;
 
-import javax.net.ssl.SSLEngine;
-
+import org.apache.james.protocols.api.ProtocolTransport;
 import

svn commit: r1171971 - /james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 13:10:46 2011
New Revision: 1171971

URL: http://svn.apache.org/viewvc?rev=1171971view=rev
Log:
Refactor lmtpserver for latest protocols refactoring

Modified:

james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java

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=1171971r1=1171970r2=1171971view=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
 Sat Sep 17 13:10:46 2011
@@ -18,6 +18,8 @@
  /
 package org.apache.james.lmtpserver.netty;
 
+import java.nio.charset.Charset;
+
 import javax.net.ssl.SSLContext;
 
 import org.apache.commons.configuration.ConfigurationException;
@@ -25,16 +27,18 @@ import org.apache.commons.configuration.
 import org.apache.james.lmtpserver.CoreCmdHandlerLoader;
 import org.apache.james.lmtpserver.jmx.JMXHandlersLoader;
 import org.apache.james.protocols.api.HandlersPackage;
+import org.apache.james.protocols.impl.ResponseEncoder;
 import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
-import org.apache.james.protocols.smtp.netty.SMTPResponseEncoder;
+import org.apache.james.protocols.smtp.SMTPProtocol;
+import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.smtpserver.netty.SMTPChannelUpstreamHandler;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
 
 public class LMTPServer extends AbstractProtocolAsyncServer implements 
LMTPServerMBean {
 
-private final static SMTPResponseEncoder ENCODER =  new 
SMTPResponseEncoder();
+private final static ResponseEncoder ENCODER =  new 
ResponseEncoder(SMTPResponse.class, Charset.forName(US-ASCII));
 
 /**
  * The maximum message size allowed by this SMTP server. The default value,
@@ -195,7 +199,8 @@ public class LMTPServer extends Abstract
 
 @Override
 protected ChannelUpstreamHandler createCoreHandler() {
-return new SMTPChannelUpstreamHandler(getProtocolHandlerChain(), 
lmtpConfig, getLogger());
+SMTPProtocol protocol = new SMTPProtocol(getProtocolHandlerChain(), 
lmtpConfig);
+return new SMTPChannelUpstreamHandler(getProtocolHandlerChain(), 
protocol.getProtocolSessionFactory(), getLogger());
 }
 
 @Override



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1171984 - in /james/server/trunk/pop3server/src: main/java/org/apache/james/pop3server/ main/java/org/apache/james/pop3server/core/ main/java/org/apache/james/pop3server/netty/ test/java/

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 14:06:40 2011
New Revision: 1171984

URL: http://svn.apache.org/viewvc?rev=1171984view=rev
Log:
Refactor pop3server for latest protocols refactoring

Added:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java
   (with props)

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java
  - copied, changed from r1171924, 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3NettySession.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3StreamResponse.java
   (with props)
Removed:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3NettySession.java
Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/RetrCmdHandler.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/TopCmdHandler.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java

james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java

Added: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java?rev=1171984view=auto
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java
 (added)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java
 Sat Sep 17 14:06:40 2011
@@ -0,0 +1,67 @@
+/
+ * 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.Protocol;
+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.Response;
+import org.slf4j.Logger;
+
+public class POP3Protocol implements Protocol{
+
+private ProtocolHandlerChain chain;
+private POP3HandlerConfigurationData config;
+private Logger logger;
+
+public POP3Protocol(ProtocolHandlerChain chain, 
POP3HandlerConfigurationData config, Logger logger) {
+this.chain = chain;
+this.config = config;
+this.logger = logger;
+}
+@Override
+public ProtocolHandlerChain getProtocolChain() {
+return chain;
+}
+
+@Override
+public ProtocolSessionFactory getProtocolSessionFactory() {
+return new ProtocolSessionFactory() {
+
+@Override
+public ProtocolSession newSession(ProtocolTransport transport) {
+return new POP3SessionImpl(logger, transport, config);
+}
+};
+}
+
+@Override
+public boolean isStartTLSSupported() {
+return config.isStartTLSSupported();
+}
+
+@Override
+public Class? extends Response getResponseClass() {
+return POP3Response.class;
+}
+
+}

Propchange: 
james/server/trunk/pop3server/src/main/java

svn commit: r1171986 - /james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 14:08:52 2011
New Revision: 1171986

URL: http://svn.apache.org/viewvc?rev=1171986view=rev
Log:
make sure all buffers are written to the client before close the channel

Modified:

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java?rev=1171986r1=1171985r2=1171986view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/BasicChannelUpstreamHandler.java
 Sat Sep 17 14:08:52 2011
@@ -27,6 +27,7 @@ import org.apache.james.protocols.api.Pr
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.impl.AbstractChannelUpstreamHandler;
 import org.apache.james.protocols.impl.NettyProtocolTransport;
+import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelFutureListener;
 import org.jboss.netty.channel.ChannelHandler.Sharable;
@@ -84,7 +85,7 @@ public class BasicChannelUpstreamHandler
 if (r != null) {
 
ctx.getChannel().write(r).addListener(ChannelFutureListener.CLOSE);
 } else {
-ctx.getChannel().close();
+
ctx.getChannel().write(ChannelBuffers.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
 }
 }
 if (session != null) {



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172016 - in /james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver: ExtendedSMTPSession.java SenderAuthIdentifyVerificationRcptHook.java netty/SMTPNettySession.java net

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 16:54:03 2011
New Revision: 1172016

URL: http://svn.apache.org/viewvc?rev=1172016view=rev
Log:
Rename SMTPNettySession to ExtendedSMTPSession and move it out of the netty 
package

Added:

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
  - copied, changed from r1171969, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
Removed:

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
Modified:

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java

james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java

Copied: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
 (from r1171969, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java)
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java?p2=james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.javap1=james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.javar1=1171969r2=1172016rev=1172016view=diff
==
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPNettySession.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
 Sat Sep 17 16:54:03 2011
@@ -16,23 +16,24 @@
  * specific language governing permissions and limitations  *
  * under the License.   *
  /
-package org.apache.james.smtpserver.netty;
+package org.apache.james.smtpserver;
 
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPSession;
+import org.apache.james.smtpserver.netty.SMTPServer;
 import 
org.apache.james.smtpserver.netty.SMTPServer.SMTPHandlerConfigurationDataImpl;
 import org.slf4j.Logger;
 
 /**
  * {@link SMTPSession} implementation for use with Netty
  */
-public class SMTPNettySession extends 
org.apache.james.protocols.smtp.SMTPSessionImpl {
+public class ExtendedSMTPSession extends 
org.apache.james.protocols.smtp.SMTPSessionImpl {

 private SMTPConfiguration theConfigData;
 
 
-public SMTPNettySession(SMTPConfiguration theConfigData, Logger logger, 
ProtocolTransport transport) {
+public ExtendedSMTPSession(SMTPConfiguration theConfigData, Logger logger, 
ProtocolTransport transport) {
 super(theConfigData, logger, transport);
 this.theConfigData = theConfigData;
 }

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java?rev=1172016r1=1172015r2=1172016view=diff
==
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
 Sat Sep 17 16:54:03 2011
@@ -26,7 +26,6 @@ import org.apache.james.protocols.smtp.S
 import 
org.apache.james.protocols.smtp.core.AbstractSenderAuthIdentifyVerificationRcptHook;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
-import org.apache.james.smtpserver.netty.SMTPNettySession;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.mailet.MailAddress;
@@ -51,7 +50,7 @@ public class SenderAuthIdentifyVerificat
 
 @Override
 public HookResult doRcpt(SMTPSession session, MailAddress sender, 
MailAddress rcpt) {
-SMTPNettySession nSession = (SMTPNettySession) session;
+ExtendedSMTPSession nSession = (ExtendedSMTPSession) session;
 if (nSession.verifyIdentity()) {
 return super.doRcpt(session, sender, rcpt);
 } else {

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java?rev=1172016r1=1172015r2=1172016view=diff
==
--- 
james/server/trunk/smtpserver/src/main/java/org

svn commit: r1172017 - in /james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty: ImapChannelUpstreamHandler.java NettyImapSession.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 16:55:03 2011
New Revision: 1172017

URL: http://svn.apache.org/viewvc?rev=1172017view=rev
Log:
Fix imapserver for latest protocols refactoring

Modified:

james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java

james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java?rev=1172017r1=1172016r2=1172017view=diff
==
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
 Sat Sep 17 16:55:03 2011
@@ -32,7 +32,7 @@ import org.apache.james.imap.encode.Imap
 import org.apache.james.imap.encode.ImapResponseComposer;
 import org.apache.james.imap.encode.base.ImapResponseComposerImpl;
 import org.apache.james.imap.main.ResponseEncoder;
-import org.apache.james.protocols.impl.SessionLog;
+import org.apache.james.protocols.api.SessionLog;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelFutureListener;

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java?rev=1172017r1=1172016r2=1172017view=diff
==
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
 Sat Sep 17 16:55:03 2011
@@ -27,7 +27,7 @@ import org.apache.james.imap.api.ImapSes
 import org.apache.james.imap.api.process.ImapLineHandler;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.api.process.SelectedMailbox;
-import org.apache.james.protocols.impl.SessionLog;
+import org.apache.james.protocols.api.SessionLog;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.handler.codec.compression.ZlibDecoder;
 import org.jboss.netty.handler.codec.compression.ZlibEncoder;



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Resolved] (JAMES-1318) RemoteDelivery tries to modify the returned Collection of Mail.getRecipients() directly

2011-09-17 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1318.
--

Resolution: Fixed

 RemoteDelivery tries to modify the returned Collection of 
 Mail.getRecipients() directly
 ---

 Key: JAMES-1318
 URL: https://issues.apache.org/jira/browse/JAMES-1318
 Project: JAMES Server
  Issue Type: Bug
  Components: Matchers/Mailets (bundled)
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
Priority: Critical
 Fix For: 3.0-beta4


 In RemoteDelivery we try to modify the returned Collection of 
 Mail.getRecipients() directly. This may fail because a Collection can be 
 read-only as remove etc is an optional implementation. We need to copy it and 
 then set it via Mail.setRecipients(..) to be 100% sure.
 See this related stack trace:
 INFO  17:41:25,409 | james.mailetcontext | Exception caught in 
 RemoteDelivery.run()
 org.apache.james.queue.api.MailQueue$MailQueueException: Unable to perform 
 dequeue;
   nested exception is:
     java.lang.UnsupportedOperationException
     at 
 org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:768)
     at java.lang.Thread.run(Thread.java:679)
 Caused by: java.lang.UnsupportedOperationException
     at java.util.AbstractList.remove(AbstractList.java:161)
     at java.util.AbstractList$Itr.remove(AbstractList.java:375)
     at java.util.AbstractList.removeRange(AbstractList.java:572)
     at java.util.AbstractList.clear(AbstractList.java:234)
     at 
 org.apache.james.transport.mailets.RemoteDelivery.deliver(RemoteDelivery.java:1132)
     at 
 org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:718)
     ... 1 more

--
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: r1172032 - /james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 18:01:09 2011
New Revision: 1172032

URL: http://svn.apache.org/viewvc?rev=1172032view=rev
Log:
Copy the recipients collection before try to modify it. See JAMES-1318

Modified:

james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java

Modified: 
james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java?rev=1172032r1=1172031r2=1172032view=diff
==
--- 
james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
 (original)
+++ 
james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
 Sat Sep 17 18:01:09 2011
@@ -1067,7 +1067,8 @@ public class RemoteDelivery extends Gene
 } catch (SendFailedException sfe) {
 logSendFailedException(sfe);
 
-CollectionMailAddress recipients = mail.getRecipients();
+// Copy the recipients as direct modification may not be possible
+CollectionMailAddress recipients = new 
ArrayListMailAddress(mail.getRecipients());
 
 boolean deleteMessage = false;
 
@@ -1139,6 +1140,9 @@ public class RemoteDelivery extends Gene
 log(Can't parse invalid address:  + 
pe.getMessage());
 }
 }
+// Set the recipients for the mail
+mail.setRecipients(recipients);
+
 if (isDebug)
 log(Invalid recipients:  + recipients);
 deleteMessage = failMessage(mail, sfe, true);
@@ -1159,6 +1163,8 @@ public class RemoteDelivery extends Gene
 log(Can't parse unsent address:  + 
pe.getMessage());
 }
 }
+// Set the recipients for the mail
+mail.setRecipients(recipients);
 if (isDebug)
 log(Unsent recipients:  + recipients);
 if 
(sfe.getClass().getName().endsWith(.SMTPSendFailedException)) {
@@ -1169,7 +1175,8 @@ public class RemoteDelivery extends Gene
 }
 }
 }
-
+
+   
 return deleteMessage;
 } catch (MessagingException ex) {
 // We should do a better job checking this... if the failure is a



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Updated] (JAMES-1318) RemoteDelivery tries to modify the returned Collection of Mail.getRecipients() directly

2011-09-17 Thread Norman Maurer (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-1318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer updated JAMES-1318:
-

  Component/s: Matchers/Mailets (bundled)
Affects Version/s: 3.0-beta3
Fix Version/s: 3.0-beta4
 Assignee: Norman Maurer

 RemoteDelivery tries to modify the returned Collection of 
 Mail.getRecipients() directly
 ---

 Key: JAMES-1318
 URL: https://issues.apache.org/jira/browse/JAMES-1318
 Project: JAMES Server
  Issue Type: Bug
  Components: Matchers/Mailets (bundled)
Affects Versions: 3.0-beta3
Reporter: Norman Maurer
Assignee: Norman Maurer
Priority: Critical
 Fix For: 3.0-beta4


 In RemoteDelivery we try to modify the returned Collection of 
 Mail.getRecipients() directly. This may fail because a Collection can be 
 read-only as remove etc is an optional implementation. We need to copy it and 
 then set it via Mail.setRecipients(..) to be 100% sure.
 See this related stack trace:
 INFO  17:41:25,409 | james.mailetcontext | Exception caught in 
 RemoteDelivery.run()
 org.apache.james.queue.api.MailQueue$MailQueueException: Unable to perform 
 dequeue;
   nested exception is:
     java.lang.UnsupportedOperationException
     at 
 org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:768)
     at java.lang.Thread.run(Thread.java:679)
 Caused by: java.lang.UnsupportedOperationException
     at java.util.AbstractList.remove(AbstractList.java:161)
     at java.util.AbstractList$Itr.remove(AbstractList.java:375)
     at java.util.AbstractList.removeRange(AbstractList.java:572)
     at java.util.AbstractList.clear(AbstractList.java:234)
     at 
 org.apache.james.transport.mailets.RemoteDelivery.deliver(RemoteDelivery.java:1132)
     at 
 org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:718)
     ... 1 more

--
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] (JAMES-1318) RemoteDelivery tries to modify the returned Collection of Mail.getRecipients() directly

2011-09-17 Thread Norman Maurer (JIRA)
RemoteDelivery tries to modify the returned Collection of Mail.getRecipients() 
directly
---

 Key: JAMES-1318
 URL: https://issues.apache.org/jira/browse/JAMES-1318
 Project: JAMES Server
  Issue Type: Bug
Reporter: Norman Maurer
Priority: Critical


In RemoteDelivery we try to modify the returned Collection of 
Mail.getRecipients() directly. This may fail because a Collection can be 
read-only as remove etc is an optional implementation. We need to copy it and 
then set it via Mail.setRecipients(..) to be 100% sure.

See this related stack trace:

INFO  17:41:25,409 | james.mailetcontext | Exception caught in 
RemoteDelivery.run()
org.apache.james.queue.api.MailQueue$MailQueueException: Unable to perform 
dequeue;
  nested exception is:
    java.lang.UnsupportedOperationException
    at 
org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:768)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.UnsupportedOperationException
    at java.util.AbstractList.remove(AbstractList.java:161)
    at java.util.AbstractList$Itr.remove(AbstractList.java:375)
    at java.util.AbstractList.removeRange(AbstractList.java:572)
    at java.util.AbstractList.clear(AbstractList.java:234)
    at 
org.apache.james.transport.mailets.RemoteDelivery.deliver(RemoteDelivery.java:1132)
    at 
org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:718)
    ... 1 more

--
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: r1172041 - in /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty: POP3ChannelUpstreamHandler.java POP3ProtocolTransport.java POP3ResponseEncoder.java POP3Server

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 18:33:25 2011
New Revision: 1172041

URL: http://svn.apache.org/viewvc?rev=1172041view=rev
Log:
Fix race-condition in pop3server. Now it works again without deadlocking 

Added:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java
   (with props)

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ProtocolTransport.java
   (with props)
Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java

Added: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java?rev=1172041view=auto
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java
 (added)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java
 Sat Sep 17 18:33:25 2011
@@ -0,0 +1,60 @@
+/
+ * 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.netty;
+
+import javax.net.ssl.SSLContext;
+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.BasicChannelUpstreamHandler;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.slf4j.Logger;
+
+public class POP3ChannelUpstreamHandler extends BasicChannelUpstreamHandler{
+
+private boolean zeroCopy;
+
+public POP3ChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger, boolean zeroCopy) {
+super(chain, sessionFactory, logger);
+this.zeroCopy = zeroCopy;
+}
+
+public POP3ChannelUpstreamHandler(ProtocolHandlerChain chain, 
ProtocolSessionFactory sessionFactory, Logger logger, SSLContext context, 
String[] enabledCipherSuites, boolean zeroCopy) {
+super(chain, sessionFactory, logger, context, enabledCipherSuites);
+this.zeroCopy = zeroCopy;
+}
+
+@Override
+protected ProtocolSession createSession(ChannelHandlerContext ctx) throws 
Exception {
+SSLEngine engine = null;
+if (context != null) {
+engine = context.createSSLEngine();
+if (enabledCipherSuites != null  enabledCipherSuites.length  0) 
{
+engine.setEnabledCipherSuites(enabledCipherSuites);
+}
+}
+
+return sessionFactory.newSession(new 
POP3ProtocolTransport(ctx.getChannel(), engine, zeroCopy));
+}
+
+
+}

Propchange: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ChannelUpstreamHandler.java
--
svn:mime-type = text/plain

Added: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ProtocolTransport.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ProtocolTransport.java?rev=1172041view=auto
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ProtocolTransport.java
 (added)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ProtocolTransport.java
 Sat Sep 17

svn commit: r1172042 - /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 18:35:12 2011
New Revision: 1172042

URL: http://svn.apache.org/viewvc?rev=1172042view=rev
Log:
Not needed anymore

Removed:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3ResponseEncoder.java


-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



svn commit: r1172045 - in /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server: POP3HandlerConfiguration.java POP3HandlerConfigurationData.java POP3Protocol.java POP3Session.java P

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 18:44:33 2011
New Revision: 1172045

URL: http://svn.apache.org/viewvc?rev=1172045view=rev
Log:
Rename POP3HandlerConfigurationData to POP3HandlerConfiguration and remove one 
not needed method

Added:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.java
   (contents, props changed)
  - copied, changed from r1171924, 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java
Removed:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java
Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3SessionImpl.java

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java

Copied: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.java
 (from r1171924, 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java)
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.java?p2=james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.javap1=james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.javar1=1171924r2=1172045rev=1172045view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.java
 Sat Sep 17 18:44:33 2011
@@ -22,7 +22,7 @@ package org.apache.james.pop3server;
 /**
  * Provides a number of server-wide constant values to the POP3Handlers
  */
-public interface POP3HandlerConfigurationData {
+public interface POP3HandlerConfiguration {
 
 /**
  * Returns the service wide hello name
@@ -32,13 +32,6 @@ public interface POP3HandlerConfiguratio
 String getHelloName();
 
 /**
- * Returns the service wide reset length in bytes.
- * 
- * @return the reset length
- */
-int getResetLength();
-
-/**
  * Return if starttls is supported by the POP3Server
  * 
  * @return startTLSSupported

Propchange: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.java
--
cvs2svn:cvs-rev = 1.1.4.3

Propchange: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.java
--
svn:eol-style = native

Propchange: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3HandlerConfiguration.java
--
svn:keywords = Author Date Id Revision

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java?rev=1172045r1=1172044r2=1172045view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Protocol.java
 Sat Sep 17 18:44:33 2011
@@ -30,10 +30,10 @@ import org.slf4j.Logger;
 public class POP3Protocol implements Protocol{
 
 private ProtocolHandlerChain chain;
-private POP3HandlerConfigurationData config;
+private POP3HandlerConfiguration config;
 private Logger logger;
 
-public POP3Protocol(ProtocolHandlerChain chain, 
POP3HandlerConfigurationData config, Logger logger) {
+public POP3Protocol(ProtocolHandlerChain chain, POP3HandlerConfiguration 
config, Logger logger) {
 this.chain = chain;
 this.config = config;
 this.logger = logger;

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java?rev=1172045r1=1172044r2=1172045view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Session.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server

svn commit: r1172046 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/ impl/src/main/java/org/apache/james/protocols/impl/log/ smtp/src/main/java/org/apache/james/protocol

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 18:47:43 2011
New Revision: 1172046

URL: http://svn.apache.org/viewvc?rev=1172046view=rev
Log:
Merge RetCodeResponse with Response interface

Removed:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/RetCodeResponse.java
Modified:

james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java

james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.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/MailCmdHandler.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java?rev=1172046r1=1172045r2=1172046view=diff
==
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Response.java
 Sat Sep 17 18:47:43 2011
@@ -27,7 +27,19 @@ import java.util.List;
  *
  */
 public interface Response {
+/**
+ * Return return-code
+ * @return
+ */
+String getRetCode();
+
 
+/**
+ * Set the return-code used for this response
+ * 
+ * @param retCode
+ */
+void setRetCode(String retCode);
 
 /**
  * Append line to response

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java?rev=1172046r1=1172045r2=1172046view=diff
==
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java
 Sat Sep 17 18:47:43 2011
@@ -22,14 +22,13 @@ import org.apache.james.protocols.api.Co
 import org.apache.james.protocols.api.CommandHandlerResultHandler;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.RetCodeResponse;
 
 /**
  * 
  * 
  *
  */
-public abstract class AbstractCommandHandlerResultLoggerR extends 
RetCodeResponse, S extends ProtocolSession implements 
CommandHandlerResultHandlerR, S {
+public abstract class AbstractCommandHandlerResultLoggerR extends Response, S 
extends ProtocolSession implements CommandHandlerResultHandlerR, S {
 
 
 

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java?rev=1172046r1=1172045r2=1172046view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
 Sat Sep 17 18:47:43 2011
@@ -23,12 +23,12 @@ import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.james.protocols.api.RetCodeResponse;
+import org.apache.james.protocols.api.Response;
 
 /**
  * Contains an SMTP result
  */
-public class SMTPResponse implements RetCodeResponse {
+public class SMTPResponse implements Response {
 
 private String retCode = null;
 private ListCharSequence lines = null;

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java?rev=1172046r1=1172045r2=1172046view=diff
==
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
 Sat Sep 17 18:47:43 2011
@@ -30,7 +30,6 @@ import java.util.StringTokenizer;
 
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.RetCodeResponse;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -61,7 +60,7 @@ public class MailCmdHandler extends Abst
 public Response

svn commit: r1172047 - /james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java

2011-09-17 Thread norman
Author: norman
Date: Sat Sep 17 18:48:10 2011
New Revision: 1172047

URL: http://svn.apache.org/viewvc?rev=1172047view=rev
Log:
Merge RetCodeResponse with Response interface

Modified:

james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java?rev=1172047r1=1172046r2=1172047view=diff
==
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/POP3Response.java
 Sat Sep 17 18:48:10 2011
@@ -23,12 +23,12 @@ import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.james.protocols.api.RetCodeResponse;
+import org.apache.james.protocols.api.Response;
 
 /**
  * Contains an SMTP result
  */
-public class POP3Response implements RetCodeResponse {
+public class POP3Response implements Response {
 
 // POP3 response prefixes
 /** OK response. Requested content will follow */



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Commented] (IMAP-340) James don't preserve UID order when copying messages

2011-09-17 Thread Norman Maurer (JIRA)

[ 
https://issues.apache.org/jira/browse/IMAP-340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13107213#comment-13107213
 ] 

Norman Maurer commented on IMAP-340:


I think this should be moved to MAILBOX.

 James don't preserve UID order when copying messages
 

 Key: IMAP-340
 URL: https://issues.apache.org/jira/browse/IMAP-340
 Project: JAMES Imap
  Issue Type: Bug
  Components: Mailbox
Affects Versions: 0.2.1
Reporter: Wojtek Strzalka
Assignee: Wojtek Strzalka
 Fix For: 0.2.1


 When copying messages in bulks, mailbox implementation don't preserve UID's 
 order by usage of HashMap which don't guarantee elements order.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



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

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

<    4   5   6   7   8   9   10   11   12   13   >