Author: norman
Date: Fri Nov 18 12:55:53 2011
New Revision: 1203630

URL: http://svn.apache.org/viewvc?rev=1203630&view=rev
Log:
Create Mailbox for user if it not exist yet and handle pop before smtp. See 
PROTOCOL-2

Modified:
    
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/JamesPassCmdHandler.java
    
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mailbox/JamesMailboxFactory.java
    
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/JamesPassCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/JamesPassCmdHandler.java?rev=1203630&r1=1203629&r2=1203630&view=diff
==============================================================================
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/JamesPassCmdHandler.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/JamesPassCmdHandler.java
 Fri Nov 18 12:55:53 2011
@@ -20,13 +20,34 @@ package org.apache.james.pop3server.core
 
 import javax.annotation.Resource;
 
+import org.apache.james.protocols.api.Request;
+import org.apache.james.protocols.api.Response;
+import org.apache.james.protocols.lib.POP3BeforeSMTPHelper;
+import org.apache.james.protocols.pop3.POP3Response;
+import org.apache.james.protocols.pop3.POP3Session;
 import org.apache.james.protocols.pop3.core.PassCmdHandler;
 import org.apache.james.protocols.pop3.mailbox.MailboxFactory;
 
-public class JamesPassCmdHandler extends PassCmdHandler{
+/**
+ * {@link PassCmdHandler} which also handles POP3 Before SMTP
+ * 
+ *
+ */
+public class JamesPassCmdHandler extends PassCmdHandler {
 
     @Resource(name = "mailboxfactory")
     public void setMailboxFactory(MailboxFactory factory) {
         super.setMailboxFactory(factory);
     }
+
+    @Override
+    public Response onCommand(POP3Session session, Request request) {
+        Response response =  super.onCommand(session, request);
+        if (POP3Response.OK_RESPONSE.equals(response.getRetCode())) {
+            POP3BeforeSMTPHelper.addIPAddress(session.getRemoteIPAddress());
+        }
+        return response;
+    }
+    
+    
 }

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mailbox/JamesMailboxFactory.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mailbox/JamesMailboxFactory.java?rev=1203630&r1=1203629&r2=1203630&view=diff
==============================================================================
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mailbox/JamesMailboxFactory.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mailbox/JamesMailboxFactory.java
 Fri Nov 18 12:55:53 2011
@@ -47,6 +47,12 @@ public class JamesMailboxFactory impleme
         try {
             mSession = manager.login(session.getUser(), password, 
session.getLogger());
             manager.startProcessingRequest(mSession);
+            MailboxPath inbox = MailboxPath.inbox(mSession);
+            
+            // check if the mailbox exists, if not create it
+            if (!manager.mailboxExists(inbox, mSession)) {
+                manager.createMailbox(inbox, mSession);
+            }
             MessageManager mailbox = 
manager.getMailbox(MailboxPath.inbox(mSession), mSession);
             return new MailboxAdapter(manager, mailbox, mSession);
         } catch (BadCredentialsException e) {

Modified: 
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java?rev=1203630&r1=1203629&r2=1203630&view=diff
==============================================================================
--- 
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
 (original)
+++ 
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
 Fri Nov 18 12:55:53 2011
@@ -129,7 +129,7 @@ public class POP3ServerTest extends Test
         //chain.put("mailboxmanager", manager);
         JamesMailboxFactory mailboxFactory = new JamesMailboxFactory();
         mailboxFactory.setMailboxManager(manager);
-        chain.put("mailboxFactory", mailboxFactory);
+        chain.put("mailboxfactory", mailboxFactory);
 
         fSystem = new MockFileSystem();
         chain.put("filesystem", fSystem);
@@ -151,7 +151,7 @@ public class POP3ServerTest extends Test
         chain.dispose();
 
         m_pop3Server.destroy();
-        
+
         super.tearDown();
 
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to