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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to