Author: rdonkin
Date: Thu Dec  6 13:28:54 2007
New Revision: 601862

URL: http://svn.apache.org/viewvc?rev=601862&view=rev
Log:
Remove GeneralMailbox.

Added:
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
Removed:
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractGeneralMailbox.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/GeneralMailbox.java
Modified:
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
    
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
    
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
    
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
    
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
    
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
    
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java

Added: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java?rev=601862&view=auto
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
 (added)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
 Thu Dec  6 13:28:54 2007
@@ -0,0 +1,68 @@
+/****************************************************************
+ * 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.mailboxmanager.mailbox;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+
+import javax.mail.internet.MimeMessage;
+
+import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.MessageResult;
+import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
+import org.apache.james.mailboxmanager.util.AbstractLogFactoryAware;
+
+public abstract class AbstractImapMailbox extends AbstractLogFactoryAware 
implements ImapMailbox {
+    
+    public Collection list() throws MailboxManagerException {
+        final Iterator it = getMessages(GeneralMessageSetImpl.all(), 
MessageResult.KEY);
+        final Collection result = new ArrayList(100);
+        while (it.hasNext()) {
+            final MessageResult next = (MessageResult) it.next();
+            final String key = (next).getKey();
+            result.add(key);
+        }
+        return result;
+    }
+
+    public void remove(String key) throws MailboxManagerException {
+        remove(GeneralMessageSetImpl.oneKey(key));
+    }
+
+    public MimeMessage retrieve(final String key) throws 
MailboxManagerException {
+        final Iterator it = getMessages(GeneralMessageSetImpl.oneKey(key),
+                MessageResult.MIME_MESSAGE);
+        final MimeMessage result;
+        if (it.hasNext()) {
+            final MessageResult message = (MessageResult) it.next();
+            result = message.getMimeMessage();
+        } else {
+            result = null;
+        }
+        return result;
+    }
+
+    public String store(MimeMessage message) throws MailboxManagerException {
+        MessageResult result=appendMessage(message, new Date(), 
MessageResult.KEY);
+        return result.getKey();
+    }
+}

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
 Thu Dec  6 13:28:54 2007
@@ -19,9 +19,11 @@
 
 package org.apache.james.mailboxmanager.mailbox;
 
+import java.util.Date;
 import java.util.Iterator;
 
 import javax.mail.Flags;
+import javax.mail.internet.MimeMessage;
 
 import org.apache.james.mailboxmanager.GeneralMessageSet;
 import org.apache.james.mailboxmanager.MailboxManagerException;
@@ -34,7 +36,9 @@
 /**
  * Provides access to a single Folder.<br />
  */
-public interface ImapMailbox extends GeneralMailbox {
+public interface ImapMailbox extends Mailbox, EventTriggerMailbox  {
+    
+    public static final long ANONYMOUS_SESSION = 0;
     
     /**
      * @param result
@@ -119,4 +123,44 @@
      */
     Iterator setFlags(Flags flags, boolean value, boolean replace, 
             GeneralMessageSet set, int result) throws MailboxManagerException;
+    
+    
+    
+    public long getSessionId(); 
+
+    /**
+     * @param internalDate
+     *            <p>IMAP defines this as the time when the message has 
arrived to
+     *            this server (by smtp). Clients are also allowed to set the
+     *            internalDate on apppend.</p><p>Is this Mail.getLastUpdates() 
for 
+     *            James delivery? Should we use MimeMessage.getReceivedDate()?
+     * @param result
+     *            which fields to be returned in MessageResult
+     * @return MessageResult with the fields defined by <b>result</b>
+     *         <ul>
+     *         <li> IMAP, Javamail Folder: nothing required </li>
+     *         <li> UIDPlusFolder: requires to return appended Message or 
uid</li>
+     *         <li> UIDPLUS: requires to return appended uid</li>
+     *         </ul>
+     * @throws MailboxManagerException
+     *             if anything went wrong
+     */
+    MessageResult appendMessage(MimeMessage message, Date internalDate,
+            int result) throws MailboxManagerException;
+    
+    /**
+     * 
+     * @param set
+     * @return MessageResult with the fields defined by <b>result</b>
+     *         <ul>
+     *         <li> IMAP: a set of msn, uid, Flags, header lines, content, mime
+     *         parts...</li>
+     *         <li> Javamail Folder: Message[]</li>
+     *         </ul>
+     * @throws MailboxManagerException 
+     */
+
+    Iterator getMessages(GeneralMessageSet set, int result) throws 
MailboxManagerException;
+    
+    void remove(GeneralMessageSet set) throws MailboxManagerException;
 }

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
 Thu Dec  6 13:28:54 2007
@@ -22,10 +22,8 @@
 import org.apache.james.mailboxmanager.GeneralMessageSet;
 import org.apache.james.mailboxmanager.ListResult;
 import org.apache.james.mailboxmanager.MailboxManagerException;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
+import org.apache.james.mailboxmanager.MailboxNotFoundException;
 import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
-import org.apache.james.mailboxmanager.mailbox.Mailbox;
-import org.apache.james.services.User;
 
 
 /**
@@ -89,13 +87,13 @@
      * this is done by the MailboxRepository because maybe this operation could
      * be optimized in the corresponding store.
      * 
-     * @param from
+     * @param from name of the source mailbox
      * @param set
      *            messages to copy
      * @param to
      *            name of the destination mailbox
      */
-    void copyMessages(GeneralMailbox from, GeneralMessageSet set, String to) 
throws MailboxManagerException;
+    void copyMessages(GeneralMessageSet set, String from, String to) throws 
MailboxManagerException;
 
     /**
      * TODO: Expression requires parsing. Probably easier for the caller to 

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
 Thu Dec  6 13:28:54 2007
@@ -35,10 +35,9 @@
 import org.apache.james.mailboxmanager.MailboxListener;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MessageResult;
-import org.apache.james.mailboxmanager.MessageResultUtils;
 import org.apache.james.mailboxmanager.impl.MailboxEventDispatcher;
 import org.apache.james.mailboxmanager.impl.MessageFlags;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 public class UidChangeTracker implements Constants {
     
@@ -137,7 +136,7 @@
                 if (expectedSet.contains(uidLong)) {
                     expectedSet.remove(uidLong);
                     updatedFlags(uid, flags, uidLong, 
-                            GeneralMailbox.ANONYMOUS_SESSION);
+                            ImapMailbox.ANONYMOUS_SESSION);
                 } else {
                     cache.put(uidLong, flags);
                     if (uid > lastUidAtStart) {

Modified: 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
 (original)
+++ 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
 Thu Dec  6 13:28:54 2007
@@ -99,7 +99,7 @@
                     lowVal = 
session.getSelected().uid((int)idSet[i].getLowVal());
                 }
                 GeneralMessageSet messageSet = 
GeneralMessageSetImpl.uidRange(lowVal, highVal);
-                mailboxManager.copyMessages(currentMailbox, messageSet,
+                mailboxManager.copyMessages(messageSet, 
currentMailbox.getName(), 
                         fullMailboxName);
             }
         } catch (MailboxManagerException e) {

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
 Thu Dec  6 13:28:54 2007
@@ -80,7 +80,7 @@
                 }
                 GeneralMessageSet messageSet
                     = GeneralMessageSetImpl.uidRange(lowVal,highVal);
-                
session.getMailboxManager().copyMessages(currentMailbox,messageSet,mailboxName);
+                
session.getMailboxManager().copyMessages(messageSet,currentMailbox.getName(), 
mailboxName);
             }
         } catch (MailboxManagerException e) {
             throw new MailboxException(e);

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
 Thu Dec  6 13:28:54 2007
@@ -53,7 +53,6 @@
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
 import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 import org.apache.james.mailboxmanager.manager.MailboxExpression;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
@@ -94,7 +93,7 @@
     }
     
     public void appendMessagesClosed(String folder,MimeMessage[] msgs) throws 
MailboxManagerException, MessagingException {
-        GeneralMailbox mailbox=getImapMailbox(folder);
+        ImapMailbox mailbox=getImapMailbox(folder);
         for (int i = 0; i < msgs.length; i++) {
             msgs[i].setFlags(new Flags(Flags.Flag.RECENT), true);
             mailbox.appendMessage(msgs[i],new Date(),MessageResult.MINIMAL);
@@ -103,7 +102,7 @@
     }
 
     public long[] addUIDMessagesOpen(String folder,MimeMessage[] msgs) throws 
MailboxManagerException, MessagingException {
-        GeneralMailbox mailbox=getImapMailbox(folder);
+        ImapMailbox mailbox=getImapMailbox(folder);
         long[] uids=new long[msgs.length];
         for (int i = 0; i < msgs.length; i++) {
             msgs[i].setFlags(new Flags(Flags.Flag.RECENT), false);
@@ -125,7 +124,7 @@
     }
     
     public MimeMessage[] getMessages(String folder) throws 
MailboxManagerException {
-        GeneralMailbox mailbox=getImapMailbox(folder);
+        ImapMailbox mailbox=getImapMailbox(folder);
         Iterator iterator 
=mailbox.getMessages(GeneralMessageSetImpl.all(),MessageResult.MIME_MESSAGE);
         List messages = IteratorUtils.toList(iterator);
         MimeMessage[] mms=new MimeMessage[messages.size()];
@@ -136,7 +135,7 @@
     }
     
     public long[] getUids(String folder) throws MailboxManagerException {
-        GeneralMailbox mailbox=getImapMailbox(folder);
+        ImapMailbox mailbox=getImapMailbox(folder);
         Iterator iterator = 
mailbox.getMessages(GeneralMessageSetImpl.all(),MessageResult.MINIMAL);
         List messages = IteratorUtils.toList(iterator);
         long[] uids=new long[messages.size()];

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
 Thu Dec  6 13:28:54 2007
@@ -36,7 +36,7 @@
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 import 
org.apache.james.mailboxmanager.mock.TorqueMailboxManagerProviderSingleton;
 import 
org.apache.james.mailboxmanager.redundant.AbstractMailRepositoryNativeTestCase;
@@ -46,7 +46,7 @@
         AbstractMailRepositoryNativeTestCase {
 
     private static final String TUSER_INBOX = "#mail.tuser.INBOX";
-    GeneralMailbox shadowMailbox = null;
+    ImapMailbox shadowMailbox = null;
 
     protected void configureRepository() throws Exception {
         TorqueMailboxManagerProviderSingleton.reset();
@@ -129,7 +129,7 @@
 
     }
 
-    protected GeneralMailbox getShadowMailbox() {
+    protected ImapMailbox getShadowMailbox() {
         if (shadowMailbox == null) {
             try {
                 MailboxManager mailboxManager= 
TorqueMailboxManagerProviderSingleton

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
 Thu Dec  6 13:28:54 2007
@@ -43,7 +43,7 @@
 import org.apache.james.mailboxmanager.SearchParameters;
 import org.apache.james.mailboxmanager.UnsupportedCriteriaException;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
-import org.apache.james.mailboxmanager.mailbox.AbstractGeneralMailbox;
+import org.apache.james.mailboxmanager.mailbox.AbstractImapMailbox;
 import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 import org.apache.james.mailboxmanager.torque.om.MailboxRow;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
@@ -68,7 +68,7 @@
 import com.sun.mail.util.CRLFOutputStream;
 import com.workingdogs.village.DataSetException;
 
-public class TorqueMailbox extends AbstractGeneralMailbox implements 
ImapMailbox {
+public class TorqueMailbox extends AbstractImapMailbox implements ImapMailbox {
 
     private boolean open = true;
 

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 Thu Dec  6 13:28:54 2007
@@ -37,14 +37,12 @@
 import org.apache.james.mailboxmanager.MailboxNotFoundException;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.impl.ListResultImpl;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
 import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 import org.apache.james.mailboxmanager.mailbox.Mailbox;
 import org.apache.james.mailboxmanager.manager.MailboxExpression;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.torque.om.MailboxRow;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
-import org.apache.james.services.User;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.CountHelper;
 import org.apache.torque.util.Criteria;
@@ -176,10 +174,10 @@
 
     }
 
-    public void copyMessages(GeneralMailbox from, GeneralMessageSet set, 
String to) throws MailboxManagerException {
-        GeneralMailbox toMailbox= getImapMailbox(to, false);
-        
-        Iterator it = from.getMessages(set, MessageResult.MIME_MESSAGE | 
MessageResult.INTERNAL_DATE);
+    public void copyMessages(GeneralMessageSet set, String from, String to) 
throws MailboxManagerException {
+        ImapMailbox toMailbox= getImapMailbox(to, false);
+        ImapMailbox fromMailbox = getImapMailbox(from, false);
+        Iterator it = fromMailbox.getMessages(set, MessageResult.MIME_MESSAGE 
| MessageResult.INTERNAL_DATE);
         while (it.hasNext()) {
             final MessageResult result = (MessageResult) it.next();
             final MimeMessage mimeMessage = result.getMimeMessage();



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to