You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/11/18 11:44:47 UTC

svn commit: r1203578 - in /james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3: ./ core/ mailbox/

Author: norman
Date: Fri Nov 18 10:44:46 2011
New Revision: 1203578

URL: http://svn.apache.org/viewvc?rev=1203578&view=rev
Log:
move mailbox stuff to extra package. See PROTOCOLS-2

Added:
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MailboxFactory.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MessageMetaData.java
Removed:
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/Mailbox.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/MailboxFactory.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/MessageMetaData.java
Modified:
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Session.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/PassCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Session.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Session.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Session.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Session.java Fri Nov 18 10:44:46 2011
@@ -20,6 +20,7 @@
 package org.apache.james.protocols.pop3;
 
 import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.pop3.mailbox.Mailbox;
 
 /**
  * All the handlers access this interface to communicate with POP3Handler object
@@ -29,7 +30,6 @@ public interface POP3Session extends Pro
 
     final static String UID_LIST = "UID_LIST";
     final static String DELETED_UID_LIST = "DELETED_UID_LIST";
-    final static String MAILBOX_SESSION = "MAILBOX_SESSION";
 
     // Authentication states for the POP3 interaction
     /** Waiting for user id */

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java Fri Nov 18 10:44:46 2011
@@ -21,6 +21,7 @@ package org.apache.james.protocols.pop3;
 import org.apache.james.protocols.api.AbstractSession;
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.Response;
+import org.apache.james.protocols.pop3.mailbox.Mailbox;
 import org.slf4j.Logger;
 
 /**

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -26,9 +26,9 @@ import java.util.List;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.pop3.MessageMetaData;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
+import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
 
 /**
  * Handles DELE command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -26,9 +26,9 @@ import java.util.List;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.pop3.MessageMetaData;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
+import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
 
 /**
  * Handles LIST command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/PassCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/PassCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/PassCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/PassCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -27,10 +27,10 @@ import java.util.List;
 
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.pop3.Mailbox;
-import org.apache.james.protocols.pop3.MailboxFactory;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
+import org.apache.james.protocols.pop3.mailbox.Mailbox;
+import org.apache.james.protocols.pop3.mailbox.MailboxFactory;
 
 /**
  * Handles PASS command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -26,9 +26,9 @@ import java.util.List;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.pop3.Mailbox;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
+import org.apache.james.protocols.pop3.mailbox.Mailbox;
 
 /**
  * Handles QUIT command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -28,10 +28,10 @@ import java.util.List;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.pop3.MessageMetaData;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
 import org.apache.james.protocols.pop3.POP3StreamResponse;
+import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
 
 /**
  * Handles RETR command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -28,9 +28,9 @@ import java.util.List;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.pop3.MessageMetaData;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
+import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
 
 /**
  * Handles RSET command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -26,9 +26,9 @@ import java.util.List;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.pop3.MessageMetaData;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
+import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
 
 /**
  * Handles STAT command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -28,10 +28,10 @@ import java.util.NoSuchElementException;
 
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.pop3.MessageMetaData;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
 import org.apache.james.protocols.pop3.POP3StreamResponse;
+import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
 
 /**
  * Handles TOP command

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java?rev=1203578&r1=1203577&r2=1203578&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java Fri Nov 18 10:44:46 2011
@@ -28,9 +28,9 @@ import java.util.List;
 import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.pop3.MessageMetaData;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
+import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
 
 /**
  * Handles UIDL command

Added: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java?rev=1203578&view=auto
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java (added)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java Fri Nov 18 10:44:46 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.pop3.mailbox;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+
+/**
+ * A Mailbox which is used in POP3 to retrieve messages
+ * 
+ *
+ */
+public interface Mailbox {
+	
+	/**
+	 * Returns the message content as {@link InputStream} or <code>null</code> if no message can be found for the given <code>uid</code>
+	 * 
+	 * @param uid
+	 * @return content
+	 * @throws IOException
+	 */
+	InputStream getMessageContent(long uid) throws IOException;
+	
+	/**
+	 * Return a immutable {@link List} which holds the {@link MessageMetaData} for all messages in the {@link Mailbox}
+	 * 
+	 * @return messages
+	 * @throws IOException
+	 */
+	List<MessageMetaData> getMessages() throws IOException;;
+	
+	/**
+	 * Remove the messages with the given uids
+	 * 
+	 * @param uids
+	 */
+	void remove(long... uids) throws IOException;
+	
+	
+	/**
+	 * Return the identifier for the mailbox. This MUST not change 
+	 * 
+	 * @return identifer
+	 * @throws IOException
+	 */
+	String getIdentifier() throws IOException;
+
+}

Added: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MailboxFactory.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MailboxFactory.java?rev=1203578&view=auto
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MailboxFactory.java (added)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MailboxFactory.java Fri Nov 18 10:44:46 2011
@@ -0,0 +1,42 @@
+/****************************************************************
+ * 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.pop3.mailbox;
+
+import java.io.IOException;
+
+import org.apache.james.protocols.pop3.POP3Session;
+
+/**
+ * 
+ *
+ */
+public interface MailboxFactory {
+
+	/**
+	 * Returns the {@link Mailbox} for the {@link POP3Session}. If the user does not exist or the password is not valid it will return <code>null</code>
+	 * 
+	 * @param user
+	 * @param password
+	 * @return mailbox or null if not valid user or password was given
+	 * @throws IOException
+	 */
+	public Mailbox getMailbox(POP3Session session, String password) throws IOException;
+	
+}

Added: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MessageMetaData.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MessageMetaData.java?rev=1203578&view=auto
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MessageMetaData.java (added)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MessageMetaData.java Fri Nov 18 10:44:46 2011
@@ -0,0 +1,51 @@
+/****************************************************************
+ * 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.pop3.mailbox;
+
+/**
+ * Hold meta data for a message
+ */
+public final class MessageMetaData {
+
+    private long uid;
+    private long size;
+
+    public MessageMetaData(long uid, long size) {
+        this.uid = uid;
+        this.size = size;
+    }
+
+    /**
+     * Return the uid of the message
+     * 
+     * @return uid
+     */
+    public long getUid() {
+        return uid;
+    }
+
+    /**
+     * Return the size of a message
+     * 
+     * @return size
+     */
+    public long getSize() {
+        return size;
+    }
+}



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