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]