Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/SelectedMailboxSession.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/SelectedMailboxSession.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/SelectedMailboxSession.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/SelectedMailboxSession.java
 Thu Dec  6 03:05:19 2007
@@ -20,6 +20,7 @@
 package org.apache.james.imapserver;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
@@ -29,26 +30,29 @@
 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.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
+import org.apache.james.mailboxmanager.tracking.UidToMsnConverter;
 import org.apache.james.mailboxmanager.util.MailboxEventAnalyser;
 
 //TODO: manage mailbox deletion
 public class SelectedMailboxSession extends AbstractLogEnabled {
     
-    private ImapMailboxSession mailbox;
-    
     private final MailboxEventAnalyser events;
 
-    public SelectedMailboxSession(ImapMailboxSession mailbox) throws 
MailboxManagerException {
+    private final ImapMailbox mailbox;
+    private final UidToMsnConverter converter;    
+    
+    public SelectedMailboxSession(ImapMailbox mailbox, Collection uids) throws 
MailboxManagerException {
         this.mailbox = mailbox;
+        converter = new UidToMsnConverter(mailbox.getSessionId(), uids);
         final long sessionId = mailbox.getSessionId();
         events = new MailboxEventAnalyser(sessionId);
         mailbox.addListener(events);
+        mailbox.addListener(converter);
     }
 
     public void deselect() {
         mailbox.removeListener(events);
-        mailbox = null;
     }
 
     public boolean isSizeChanged() {
@@ -64,7 +68,7 @@
         for (final Iterator it = events.flagUpdateUids(); it.hasNext();) {
             Long uid = (Long) it.next();
             GeneralMessageSet messageSet = 
GeneralMessageSetImpl.oneUid(uid.longValue());
-            final Iterator messages = mailbox.getMessages(messageSet, 
MessageResult.FLAGS | MessageResult.MSN);
+            final Iterator messages = mailbox.getMessages(messageSet, 
MessageResult.FLAGS);
             results.addAll(IteratorUtils.toList(messages));
         }
         return results.iterator();
@@ -72,14 +76,26 @@
     
     public void close() throws MailboxManagerException  {
         mailbox.removeListener(events);
-        mailbox=null;
+        mailbox.removeListener(converter);
     }
 
-    public ImapMailboxSession getMailbox() {
+    public ImapMailbox getMailbox() {
         return mailbox;
     }
 
     public void setSilent(boolean silent) {
         events.setSilentFlagChanges(silent);
+    }
+
+    public Iterator getExpungedEvents(boolean reset) throws 
MailboxManagerException {
+        return converter.getExpungedEvents(reset);
+    }
+    
+    public int msn(long uid) {
+        return converter.getMsn(uid);
+    }
+
+    public long uid(int msn) {
+        return converter.getUid(msn);
     }
 }

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/AppendCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/AppendCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/AppendCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/AppendCommand.java
 Thu Dec  6 03:05:19 2007
@@ -34,7 +34,7 @@
 import org.apache.james.imapserver.ProtocolException;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the APPEND imap command.
@@ -66,10 +66,10 @@
         MimeMessage message = parser.mimeMessage( request );
         parser.endLine( request );
 
-        ImapMailboxSession mailbox = null;
+        ImapMailbox mailbox = null;
         try {
             mailboxName=session.buildFullName(mailboxName);
-            mailbox = 
session.getMailboxManager().getImapMailboxSession(mailboxName);
+            mailbox = session.getMailboxManager().getImapMailbox(mailboxName);
         }
         catch ( MailboxManagerException mme ) {
             MailboxException me = new MailboxException(mme);

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CloseCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CloseCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CloseCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CloseCommand.java
 Thu Dec  6 03:05:19 2007
@@ -27,7 +27,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.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the CHECK imap command.
@@ -46,10 +46,10 @@
             throws ProtocolException, MailboxException
     {
         parser.endLine( request );
-        ImapMailboxSession mailbox = session.getSelected().getMailbox();
+        ImapMailbox mailbox = session.getSelected().getMailbox();
         if ( session.getSelected().getMailbox().isWriteable() ) {
             try {
-                
mailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.NOTHING);
+                
mailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.MINIMAL);
             } catch (MailboxManagerException e) {
                throw new MailboxException(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=601701&r1=601700&r2=601701&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 03:05:19 2007
@@ -27,7 +27,7 @@
 import org.apache.james.mailboxmanager.GeneralMessageSet;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the COPY imap command.
@@ -58,7 +58,7 @@
         String mailboxName = parser.mailbox( request );
         parser.endLine( request );
 
-        ImapMailboxSession currentMailbox = session.getSelected().getMailbox();
+        ImapMailbox currentMailbox = session.getSelected().getMailbox();
         
         
         try {
@@ -69,7 +69,17 @@
                 throw e;
             }
             for (int i = 0; i < idSet.length; i++) {
-                GeneralMessageSet 
messageSet=GeneralMessageSetImpl.range(idSet[i].getLowVal(),idSet[i].getHighVal(),useUids);
+                final long lowVal;
+                final long highVal;
+                if (useUids) {
+                    lowVal = idSet[i].getLowVal();
+                    highVal = idSet[i].getHighVal();
+                } else {
+                    lowVal = session.getSelected().uid((int) 
idSet[i].getLowVal());
+                    highVal = session.getSelected().uid((int) 
idSet[i].getHighVal());
+                }
+                GeneralMessageSet messageSet
+                    = GeneralMessageSetImpl.uidRange(lowVal,highVal);
                 
session.getMailboxManager().copyMessages(currentMailbox,messageSet,mailboxName);
             }
         } catch (MailboxManagerException e) {

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/DeleteCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/DeleteCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/DeleteCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/DeleteCommand.java
 Thu Dec  6 03:05:19 2007
@@ -26,7 +26,6 @@
 import org.apache.james.imapserver.ProtocolException;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
 
 /**
  * Handles processeing for the DELETE imap command.

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/ExpungeCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/ExpungeCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/ExpungeCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/ExpungeCommand.java
 Thu Dec  6 03:05:19 2007
@@ -27,7 +27,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.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the EXPUNGE imap command.
@@ -47,13 +47,13 @@
     {
         parser.endLine( request );
 
-        ImapMailboxSession mailbox = session.getSelected().getMailbox();
+        ImapMailbox mailbox = session.getSelected().getMailbox();
         if (!mailbox.isWriteable()) {
             response.commandFailed( this, "Mailbox selected read only." );
         }
        
         try {
-            mailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.NOTHING);
+            mailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.MINIMAL);
         } catch (MailboxManagerException e) {
             throw new MailboxException(e);
         }

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/FetchCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/FetchCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/FetchCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/FetchCommand.java
 Thu Dec  6 03:05:19 2007
@@ -34,6 +34,7 @@
 import org.apache.james.imapserver.ImapResponse;
 import org.apache.james.imapserver.ImapSession;
 import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.SelectedMailboxSession;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.imapserver.store.SimpleMessageAttributes;
 import org.apache.james.mailboxmanager.GeneralMessageSet;
@@ -42,7 +43,7 @@
 import org.apache.james.mailboxmanager.MessageResultUtils;
 import org.apache.james.mailboxmanager.MessageResult.Content;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 import org.apache.mailet.dates.RFC822DateFormat;
 
 /**
@@ -81,9 +82,19 @@
         }
 
         final int resultToFetch = fetch.getNeededMessageResult();
-        final ImapMailboxSession mailbox = session.getSelected().getMailbox();
+        final SelectedMailboxSession selected = session.getSelected();
+        final ImapMailbox mailbox = selected.getMailbox();
         for (int i = 0; i < idSet.length; i++) {
-            final GeneralMessageSet 
messageSet=GeneralMessageSetImpl.range(idSet[i].getLowVal(),idSet[i].getHighVal(),useUids);
+            final long lowVal;
+            final long highVal;
+            if (useUids) {
+                lowVal = idSet[i].getLowVal();
+                highVal = idSet[i].getHighVal();   
+            } else {
+                lowVal = selected.uid((int) idSet[i].getLowVal());
+                highVal = selected.uid((int) idSet[i].getHighVal()); 
+            }
+            final GeneralMessageSet 
messageSet=GeneralMessageSetImpl.uidRange(lowVal,highVal);
             final Iterator it;
             try {
                 it = mailbox.getMessages(messageSet,resultToFetch);
@@ -93,7 +104,8 @@
             while (it.hasNext()) {
                 final MessageResult result = (MessageResult) it.next();
                 String msgData = outputMessage( fetch, result, mailbox, 
useUids );
-                response.fetchResponse( result.getMsn(), msgData );
+                final int msn = selected.msn(result.getUid());
+                response.fetchResponse( msn, msgData );
 
             }
         }
@@ -104,7 +116,7 @@
     }
 
     private String outputMessage(FetchRequest fetch, MessageResult result,
-            ImapMailboxSession mailbox, boolean useUids)
+            ImapMailbox mailbox, boolean useUids)
             throws MailboxException, ProtocolException {
         // Check if this fetch will cause the "SEEN" flag to be set on this
         // message
@@ -115,7 +127,7 @@
             if (fetch.isSetSeen()
                     && !result.getFlags().contains(Flags.Flag.SEEN)) {
                 mailbox.setFlags(new Flags(Flags.Flag.SEEN), true, false,
-                        GeneralMessageSetImpl.oneUid(result.getUid()), 
MessageResult.NOTHING);
+                        GeneralMessageSetImpl.oneUid(result.getUid()), 
MessageResult.MINIMAL);
                 result.getFlags().add(Flags.Flag.SEEN);
                 ensureFlagsResponse = true;
             }
@@ -509,7 +521,7 @@
         }
                 
         public int getNeededMessageResult() {
-            int result = MessageResult.MSN;
+            int result = MessageResult.MINIMAL;
             if (flags || setSeen) {
                 result |= MessageResult.FLAGS;
             }
@@ -518,9 +530,6 @@
             }
             if (size) {
                 result |= MessageResult.SIZE;
-            }
-            if (uid) {
-                result |= MessageResult.UID;
             }
             if (mailFetchElement) {
                 result |= MessageResult.MIME_MESSAGE;

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SearchCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SearchCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SearchCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SearchCommand.java
 Thu Dec  6 03:05:19 2007
@@ -25,6 +25,7 @@
 import org.apache.james.imapserver.ImapResponse;
 import org.apache.james.imapserver.ImapSession;
 import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.SelectedMailboxSession;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MessageResult;
@@ -32,7 +33,7 @@
 import org.apache.james.mailboxmanager.SearchParameters.NumericRange;
 import org.apache.james.mailboxmanager.SearchParameters.SearchCriteria;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the SEARCH imap command.
@@ -65,13 +66,9 @@
         SearchParameters searchTerm = parser.searchTerm( request );
         parser.endLine( request );
 
-        ImapMailboxSession mailbox = session.getSelected().getMailbox();
-        final int result;
-        if (useUids) {
-            result= MessageResult.UID;
-        } else {
-            result= MessageResult.MSN;
-        }
+        final SelectedMailboxSession selected = session.getSelected();
+        ImapMailbox mailbox = selected.getMailbox();
+        final int result = MessageResult.MINIMAL;
         final Iterator it;
         try {
             it = mailbox.search(GeneralMessageSetImpl.all(),searchTerm, 
result);
@@ -87,11 +84,11 @@
                 idList.append( SP );
             }
             final MessageResult message = (MessageResult) it.next();
+            final long uid = message.getUid();
             if ( useUids ) {
-                final long uid = message.getUid();
                 idList.append( uid );
             } else {
-                final int msn = message.getMsn();
+                final int msn = selected.msn(uid);
                 idList.append( msn );
             }
         }

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SelectCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SelectCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SelectCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/SelectCommand.java
 Thu Dec  6 03:05:19 2007
@@ -19,14 +19,20 @@
 
 package org.apache.james.imapserver.commands;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.james.imapserver.ImapRequestLineReader;
 import org.apache.james.imapserver.ImapResponse;
 import org.apache.james.imapserver.ImapSession;
 import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.SelectedMailboxSession;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MessageResult;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the SELECT imap command.
@@ -54,20 +60,22 @@
         try {
             mailboxName=session.buildFullName(mailboxName);
             selectMailbox(mailboxName, session, isExamine);
-            ImapMailboxSession mailbox = session.getSelected().getMailbox();
+            final SelectedMailboxSession selected = session.getSelected();
+            ImapMailbox mailbox = selected.getMailbox();
             response.flagsResponse(mailbox.getPermanentFlags());
             final boolean resetRecent = !isExamine;
             response.recentResponse(mailbox.getRecentCount(resetRecent));
             response
                     .okResponse("UIDVALIDITY " + mailbox.getUidValidity(), 
null);
 
-            MessageResult firstUnseen = 
mailbox.getFirstUnseen(MessageResult.MSN);
+            MessageResult firstUnseen = 
mailbox.getFirstUnseen(MessageResult.MINIMAL);
                    
             response.existsResponse(mailbox.getMessageCount());
 
             if (firstUnseen != null) {
-                response.okResponse("UNSEEN " + firstUnseen.getMsn(), "Message 
"
-                        + firstUnseen.getMsn() + " is the first unseen");
+                final int msn = selected.msn(firstUnseen.getUid());
+                response.okResponse("UNSEEN " + msn, "Message "
+                        + msn + " is the first unseen");
             } else {
                 response.okResponse(null, "No messages unseen");
             }
@@ -84,9 +92,15 @@
     }
 
     private boolean selectMailbox(String mailboxName, ImapSession session, 
boolean readOnly) throws MailboxException, MailboxManagerException {
-        ImapMailboxSession mailbox = 
session.getMailboxManager().getImapMailboxSession(mailboxName);
-
-        session.setSelected( mailbox, readOnly );
+        ImapMailbox mailbox = 
session.getMailboxManager().getImapMailbox(mailboxName);
+        final Iterator it = mailbox.getMessages(GeneralMessageSetImpl
+                .all(), MessageResult.MINIMAL);
+        final List uids = new ArrayList();
+        while(it.hasNext()) {
+            final MessageResult result = (MessageResult) it.next();
+            uids.add(new Long(result.getUid()));
+        }
+        session.setSelected( mailbox, readOnly, uids );
         return readOnly;
     }
 

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StatusCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StatusCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StatusCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StatusCommand.java
 Thu Dec  6 03:05:19 2007
@@ -26,7 +26,7 @@
 import org.apache.james.imapserver.ProtocolException;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the STATUS imap command.
@@ -68,7 +68,7 @@
                 logger.debug("Status called on mailbox named " + mailboxName + 
" (" + fullMailboxName + ")"); 
             }
             
-            ImapMailboxSession mailbox = 
session.getMailboxManager().getImapMailboxSession(fullMailboxName);
+            ImapMailbox mailbox = 
session.getMailboxManager().getImapMailbox(fullMailboxName);
             
             if (statusDataItems.messages) {
                 buffer.append(MESSAGES);

Modified: 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StoreCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StoreCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StoreCommand.java
 (original)
+++ 
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/StoreCommand.java
 Thu Dec  6 03:05:19 2007
@@ -31,7 +31,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.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 
 /**
  * Handles processeing for the STORE imap command.
@@ -70,7 +70,7 @@
             if (directive.isSilent()) {
                 selected.setSilent(true);
             }
-            ImapMailboxSession mailbox = selected.getMailbox();
+            ImapMailbox mailbox = selected.getMailbox();
 
             final boolean replace;
             final boolean value;
@@ -88,11 +88,19 @@
             }
             try {
                 for (int i = 0; i < idSet.length; i++) {
+                    final long lowVal;
+                    final long highVal;
+                    if (useUids) {
+                        lowVal = idSet[i].getLowVal();
+                        highVal = idSet[i].getHighVal();
+                    } else {
+                        lowVal = selected.uid((int) idSet[i].getLowVal());
+                        highVal = selected.uid((int) idSet[i].getHighVal());
+                    }
                     final GeneralMessageSet messageSet = GeneralMessageSetImpl
-                    .range(idSet[i].getLowVal(), idSet[i].getHighVal(),
-                            useUids);
+                    .uidRange(lowVal, highVal);
 
-                    mailbox.setFlags(flags, value, replace, messageSet, 
MessageResult.NOTHING);
+                    mailbox.setFlags(flags, value, replace, messageSet, 
MessageResult.MINIMAL);
                 }
             } catch (MailboxManagerException e) {
                 throw new MailboxException(e);

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/client/ExpungeClientCommand.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/client/ExpungeClientCommand.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/client/ExpungeClientCommand.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/client/ExpungeClientCommand.java
 Thu Dec  6 03:05:19 2007
@@ -34,14 +34,11 @@
     List expungedMsns = new ArrayList();
 
     public ExpungeClientCommand(MimeMessage[] msgs) throws MessagingException {
-        int msnOffset = 0;
-
         command = "EXPUNGE";
         statusResponse = "OK EXPUNGE completed.";
         for (int i = 0; i < msgs.length; i++) {
             if (msgs[i].getFlags().contains(Flags.Flag.DELETED)) {
-                expungedMsns.add(new Integer(i + msnOffset + 1));
-                msnOffset--;
+                expungedMsns.add(new Integer(i + 1));
             }
         }
     }

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=601701&r1=601700&r2=601701&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 03:05:19 2007
@@ -54,7 +54,7 @@
 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.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 import org.apache.james.mailboxmanager.manager.MailboxExpression;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.test.mock.avalon.MockLogger;
@@ -94,38 +94,38 @@
     }
     
     public void appendMessagesClosed(String folder,MimeMessage[] msgs) throws 
MailboxManagerException, MessagingException {
-        GeneralMailbox mailbox=getImapMailboxSession(folder);
+        GeneralMailbox 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.NOTHING);
+            mailbox.appendMessage(msgs[i],new Date(),MessageResult.MINIMAL);
             
         }
     }
 
     public long[] addUIDMessagesOpen(String folder,MimeMessage[] msgs) throws 
MailboxManagerException, MessagingException {
-        GeneralMailbox mailbox=getImapMailboxSession(folder);
+        GeneralMailbox 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);
-            uids[i]=mailbox.appendMessage(msgs[i],new 
Date(),MessageResult.UID).getUid();
+            uids[i]=mailbox.appendMessage(msgs[i],new 
Date(),MessageResult.MINIMAL).getUid();
         }
         return uids;
     }
     public long getUidValidity(String folder) throws MailboxManagerException {
-        ImapMailboxSession mailbox=getImapMailboxSession(folder);
+        ImapMailbox mailbox=getImapMailbox(folder);
         long uidv=mailbox.getUidValidity();
         return uidv;
     }
     
     
     public long getUidNext(String folder) throws MailboxManagerException {
-        ImapMailboxSession mailbox=getImapMailboxSession(folder);
+        ImapMailbox mailbox=getImapMailbox(folder);
         long uidNext=mailbox.getUidNext();
         return uidNext;
     }
     
     public MimeMessage[] getMessages(String folder) throws 
MailboxManagerException {
-        GeneralMailbox mailbox=getImapMailboxSession(folder);
+        GeneralMailbox mailbox=getImapMailbox(folder);
         Iterator iterator 
=mailbox.getMessages(GeneralMessageSetImpl.all(),MessageResult.MIME_MESSAGE);
         List messages = IteratorUtils.toList(iterator);
         MimeMessage[] mms=new MimeMessage[messages.size()];
@@ -136,8 +136,8 @@
     }
     
     public long[] getUids(String folder) throws MailboxManagerException {
-        GeneralMailbox mailbox=getImapMailboxSession(folder);
-        Iterator iterator = 
mailbox.getMessages(GeneralMessageSetImpl.all(),MessageResult.UID);
+        GeneralMailbox mailbox=getImapMailbox(folder);
+        Iterator iterator = 
mailbox.getMessages(GeneralMessageSetImpl.all(),MessageResult.MINIMAL);
         List messages = IteratorUtils.toList(iterator);
         long[] uids=new long[messages.size()];
         for (int i = 0; i < messages.size(); i++) {
@@ -182,9 +182,9 @@
     }
     
     public void deleteAll(String folder) throws MailboxManagerException {
-        ImapMailboxSession mailbox=getImapMailboxSession(folder);
-        mailbox.setFlags(new 
Flags(Flag.DELETED),true,false,GeneralMessageSetImpl.all(), 
MessageResult.NOTHING);
-        mailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.NOTHING);
+        ImapMailbox mailbox=getImapMailbox(folder);
+        mailbox.setFlags(new 
Flags(Flag.DELETED),true,false,GeneralMessageSetImpl.all(), 
MessageResult.MINIMAL);
+        mailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.MINIMAL);
     }
     public BufferedReader handleRequestReader(String s) throws 
ProtocolException
     {
@@ -267,13 +267,13 @@
     }
     
     public void setFlags(String mailboxName,long fromUid,long toUid,Flags 
flags, boolean value, boolean replace) throws MailboxManagerException {
-        ImapMailboxSession mailbox=getImapMailboxSession(mailboxName);
-        mailbox.setFlags(flags, value, replace, 
GeneralMessageSetImpl.uidRange(fromUid, toUid), MessageResult.NOTHING);
+        ImapMailbox mailbox=getImapMailbox(mailboxName);
+        mailbox.setFlags(flags, value, replace, 
GeneralMessageSetImpl.uidRange(fromUid, toUid), MessageResult.MINIMAL);
     }
-    private ImapMailboxSession getImapMailboxSession(String mailboxName) 
throws MailboxManagerException {
+    private ImapMailbox getImapMailbox(String mailboxName) throws 
MailboxManagerException {
         int[] neededSets = new int[] {GeneralMessageSet.TYPE_UID};
-        int neededResults= MessageResult.UID + MessageResult.MIME_MESSAGE + 
MessageResult.FLAGS;
-        ImapMailboxSession mailboxSession= 
mailboxManager.getImapMailboxSession(mailboxName);
+        int neededResults= MessageResult.MIME_MESSAGE + MessageResult.FLAGS;
+        ImapMailbox mailboxSession= mailboxManager.getImapMailbox(mailboxName);
         return mailboxSession;
     }
 }

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/AbstractImapMailboxSelfTestCase.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/AbstractImapMailboxSelfTestCase.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/AbstractImapMailboxSelfTestCase.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/AbstractImapMailboxSelfTestCase.java
 Thu Dec  6 03:05:19 2007
@@ -32,14 +32,14 @@
 import org.apache.commons.collections.IteratorUtils;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
 import org.apache.james.mailboxmanager.impl.MailboxListenerCollector;
-import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 
 public abstract class AbstractImapMailboxSelfTestCase extends TestCase {
     
     protected MailboxManager mailboxManager;
     
-    protected ImapMailboxSession mailbox;
+    protected ImapMailbox mailbox;
     
     protected MailboxListenerCollector collector;
     
@@ -48,7 +48,7 @@
     public void setUp() throws Exception {
         super.setUp();
         mailboxManager.createMailbox(INBOX);
-        mailbox=mailboxManager.getImapMailboxSession(INBOX);
+        mailbox=mailboxManager.getImapMailbox(INBOX);
         collector=new MailboxListenerCollector();
         mailbox.addListener(collector);
         assertNotNull(mailbox);
@@ -59,86 +59,34 @@
         for (int i = 0; i < 5; i++) {
             MimeMessage mm=TestUtil.createMessage();
             mm.setFlags(new Flags(Flags.Flag.SEEN), true);
-            MessageResult mr=mailbox.appendMessage(mm, new Date(), 
MessageResult.UID);
+            MessageResult mr=mailbox.appendMessage(mm, new Date(), 
MessageResult.MINIMAL);
             assertEquals(i+1, mr.getUid());
         }
         for (int i = 0; i < 3; i++) {
-            MessageResult mr=mailbox.appendMessage(TestUtil.createMessage(), 
new Date(), MessageResult.UID);
+            MessageResult mr=mailbox.appendMessage(TestUtil.createMessage(), 
new Date(), MessageResult.MINIMAL);
             assertEquals(i+6, mr.getUid());
         }
         for (int i = 0; i < 3; i++) {
             MimeMessage mm=TestUtil.createMessage();
             mm.setFlags(new Flags(Flags.Flag.SEEN), true);
-            MessageResult mr=mailbox.appendMessage(mm, new Date(), 
MessageResult.UID);
+            MessageResult mr=mailbox.appendMessage(mm, new Date(), 
MessageResult.MINIMAL);
             assertEquals(i+9, mr.getUid());
         }
         MessageResult mr;
-        mr=mailbox.getFirstUnseen(MessageResult.UID | MessageResult.MSN);
+        mr=mailbox.getFirstUnseen(MessageResult.MINIMAL);
         assertNotNull(mr);
         assertEquals(6, mr.getUid());
-        assertEquals(6, mr.getMsn());
-        mailbox.setFlags(new Flags(Flags.Flag.DELETED), true, false, 
GeneralMessageSetImpl.uidRange(1,3), MessageResult.NOTHING);
+        mailbox.setFlags(new Flags(Flags.Flag.DELETED), true, false, 
GeneralMessageSetImpl.uidRange(1,3), MessageResult.MINIMAL);
         mailbox.expunge(GeneralMessageSetImpl.all(), 0);
-        mailbox.getExpungedEvents(true);
-        mr=mailbox.getFirstUnseen(MessageResult.UID | MessageResult.MSN);
+        mr=mailbox.getFirstUnseen(MessageResult.MINIMAL);
         assertNotNull(mr);
         assertEquals(6, mr.getUid());
-        assertEquals(3, mr.getMsn());
     }
     
-    public void testGetExpungedEvents() throws MessagingException, 
MailboxManagerException {
-        for (int i = 0; i < 5; i++) {
-            MessageResult mr=mailbox.appendMessage(TestUtil.createMessage(), 
new Date(), MessageResult.UID | MessageResult.MSN);
-            assertEquals(i+1, mr.getUid());
-            assertEquals(i+1, mr.getMsn());
-        }
-        mailbox.setFlags(new Flags(Flags.Flag.DELETED), true, false, 
GeneralMessageSetImpl.uidRange(2, 4), MessageResult.NOTHING);
-        final Iterator 
expungeResult1=mailbox.expunge(GeneralMessageSetImpl.all(), MessageResult.UID | 
MessageResult.MSN);
-        checkMessageResults(new long[] {2,3,4},new int[] 
{2,3,4},expungeResult1);
-        
-        final Iterator getResult1 = 
mailbox.getMessages(GeneralMessageSetImpl.all(), MessageResult.UID | 
MessageResult.MSN);
-        checkMessageResults(new long[] {1,5},new int[] {1,5},getResult1);
-        
-        
-        final Iterator expungeEventResult1 = mailbox.getExpungedEvents(false);
-        checkMessageResults(new long[] {2,3,4},new int[] 
{2,3,4},expungeEventResult1);
-        final Iterator expungeEventResult2 = mailbox.getExpungedEvents(true);
-        checkMessageResults(new long[] {2,3,4},new int[] 
{2,2,2},expungeEventResult2);
-        
-        
-        final Iterator getResult2 = 
mailbox.getMessages(GeneralMessageSetImpl.all(), MessageResult.UID | 
MessageResult.MSN);
-        checkMessageResults(new long[] {1,5},new int[] {1,2},getResult2);
-        
-        for (int i = 0; i < 5; i++) {
-            MessageResult mr=mailbox.appendMessage(TestUtil.createMessage(), 
new Date(), MessageResult.UID | MessageResult.MSN);
-            assertEquals(6+i, mr.getUid());
-            assertEquals(3+i, mr.getMsn());
-        }
-
-        final Iterator getResult3 = 
mailbox.getMessages(GeneralMessageSetImpl.all(), MessageResult.UID | 
MessageResult.MSN);
-        checkMessageResults(new long[] {1,5,6,7,8,9,10},new int[] 
{1,2,3,4,5,6,7},getResult3);
-        
-        mailbox.setFlags(new Flags(Flags.Flag.DELETED), true, false, 
GeneralMessageSetImpl.msnRange(2,4), MessageResult.NOTHING);
-        mailbox.setFlags(new Flags(Flags.Flag.DELETED), true, false, 
GeneralMessageSetImpl.oneMsn(6), MessageResult.NOTHING);
-        
-        final Iterator 
expungeResult2=mailbox.expunge(GeneralMessageSetImpl.all(), MessageResult.UID | 
MessageResult.MSN);
-        checkMessageResults(new long[] {5,6,7,9},new int[] 
{2,3,4,6},expungeResult2);
-        
-        final Iterator getResult4 = 
mailbox.getMessages(GeneralMessageSetImpl.all(), MessageResult.UID | 
MessageResult.MSN);
-        checkMessageResults(new long[] {1,8,10},new int[] {1,5,7},getResult4);
-        
-        final Iterator expungeEventResult3 = mailbox.getExpungedEvents(false);
-        checkMessageResults(new long[] {5,6,7,9},new int[] 
{2,3,4,6},expungeEventResult3);
-        final Iterator expungeEventResult4 = mailbox.getExpungedEvents(true);
-        checkMessageResults(new long[] {5,6,7,9},new int[] 
{2,2,2,3},expungeEventResult4);
-        
-        final Iterator getResult5 = 
mailbox.getMessages(GeneralMessageSetImpl.all(), MessageResult.UID | 
MessageResult.MSN);
-        checkMessageResults(new long[] {1,8,10},new int[] {1,2,3},getResult5);
-    }
     
     public void testGetUidNext() throws MessagingException {
         assertEquals(1, mailbox.getUidNext());
-        MessageResult mr=mailbox.appendMessage(TestUtil.createMessage(), new 
Date(), MessageResult.UID | MessageResult.MSN);
+        MessageResult mr=mailbox.appendMessage(TestUtil.createMessage(), new 
Date(), MessageResult.MINIMAL);
         assertEquals(1,mr.getUid());
         assertEquals(2, mailbox.getUidNext());
     }
@@ -157,7 +105,6 @@
         int i=0;
         for (Iterator it=messageResults.iterator(); it.hasNext();i++) {
             assertEquals("Uid at pos "+i,uids[i], 
((MessageResult)it.next()).getUid());
-            assertEquals("Msn at pos "+i,msns[i], 
((MessageResult)it.next()).getMsn());
         }
     }
 

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java
 Thu Dec  6 03:05:19 2007
@@ -35,9 +35,9 @@
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageRow;
 import org.apache.james.mailboxmanager.torque.om.MessageRowPeer;
-import org.apache.james.mailboxmanager.tracking.UidChangeTracker;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.Criteria;
+
 import EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock;
 
 public class TorqueMailboxTestCase extends AbstractTorqueTestCase {
@@ -87,8 +87,8 @@
         
         Flags f=new Flags();
         f.add(Flags.Flag.DELETED);
-        torqueMailbox.setFlags(f,true,false, GeneralMessageSetImpl.oneUid(1l), 
MessageResult.NOTHING);
-        List 
messageResults=IteratorUtils.toList(torqueMailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.UID));
+        torqueMailbox.setFlags(f,true,false, GeneralMessageSetImpl.oneUid(1l), 
MessageResult.MINIMAL);
+        List 
messageResults=IteratorUtils.toList(torqueMailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.MINIMAL));
         assertEquals(1,messageResults.size());
         assertEquals(1l,((MessageResult)messageResults.get(0)).getUid());
     }

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=601701&r1=601700&r2=601701&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 03:05:19 2007
@@ -122,7 +122,7 @@
     protected void nativeStoreMessage(MimeMessage mm) {
         try {
             getShadowMailbox().appendMessage(mm, new Date(),
-                    MessageResult.NOTHING);
+                    MessageResult.MINIMAL);
         } catch (MailboxManagerException e) {
             throw new RuntimeException(e);
         }

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageRowUtils.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageRowUtils.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageRowUtils.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageRowUtils.java
 Thu Dec  6 03:05:19 2007
@@ -251,14 +251,12 @@
     public static MessageResult loadMessageResult(MessageRow messageRow, int 
result, UidToKeyConverter uidToKeyConverter)
             throws TorqueException, MailboxManagerException {
         MessageResultImpl messageResult = new MessageResultImpl();
+        messageResult.setUid(messageRow.getUid());
+        
         if ((result & MessageResult.MIME_MESSAGE) > 0) {
             
messageResult.setMimeMessage(TorqueMimeMessage.createMessage(messageRow));
             result -= MessageResult.MIME_MESSAGE;
         }
-        if ((result & MessageResult.UID) > 0) {
-            messageResult.setUid(messageRow.getUid());
-            result -= MessageResult.UID;
-        }
         if ((result & MessageResult.FLAGS) > 0) {
             org.apache.james.mailboxmanager.torque.om.MessageFlags messageFlags
                 = messageRow.getMessageFlags();
@@ -290,10 +288,6 @@
         if ((result & MessageResult.FULL_CONTENT) > 0) {
             messageResult.setFullMessage(createFullContent(messageRow, 
messageResult.getHeaders()));
             result -= MessageResult.FULL_CONTENT;
-        }
-        if ((result & MessageResult.MSN) > 0) {
-            // ATM implemented by wrappers
-            result -= MessageResult.MSN;
         }
         if (result != 0) {
             throw new RuntimeException("Unsupported result: " + result);

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=601701&r1=601700&r2=601701&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 03:05:19 2007
@@ -96,17 +96,6 @@
         return sessionId;
     }
 
-    public int getMessageResultTypes() {
-        return MessageResult.FLAGS + MessageResult.INTERNAL_DATE
-                + MessageResult.KEY + MessageResult.MIME_MESSAGE
-                + MessageResult.SIZE + MessageResult.UID;
-    }
-
-    public int getMessageSetTypes() {
-        return GeneralMessageSet.TYPE_ALL + GeneralMessageSet.TYPE_KEY
-                + GeneralMessageSet.TYPE_UID + GeneralMessageSet.TYPE_MESSAGE;
-    }
-
     public synchronized String getName() throws MailboxManagerException {
         checkAccess();
         return mailboxRow.getName();
@@ -165,8 +154,7 @@
                     messageRow.addMessageBody(mb);
 
                     save(messageRow);
-                    MessageResult messageResult = fillMessageResult(messageRow,
-                            result | MessageResult.UID);
+                    MessageResult messageResult = 
fillMessageResult(messageRow, result);
                     checkForScanGap(uid);
                     getUidChangeTracker().found(messageResult);
                     return messageResult;
@@ -412,7 +400,7 @@
                 try {
                     List messageRows = getMailboxRow().getMessageRows(c);
                     if (messageRows.size() > 0) {
-                        MessageResult 
messageResult=fillMessageResult((MessageRow) messageRows.get(0), result | 
MessageResult.UID);
+                        MessageResult 
messageResult=fillMessageResult((MessageRow) messageRows.get(0), result);
                         if (messageResult!=null) {
                             checkForScanGap(messageResult.getUid());
                             getUidChangeTracker().found(messageResult);
@@ -488,7 +476,7 @@
             final List messageRows = getMailboxRow().getMessageRows(c);
             final long[] uids = uids(messageRows);
             final TorqueResultIterator resultIterator = new 
TorqueResultIterator(messageRows, result
-                    | MessageResult.UID | MessageResult.FLAGS, 
getUidToKeyConverter());
+                    | MessageResult.FLAGS, getUidToKeyConverter());
             // ensure all results are loaded before deletion
             Collection messageResults = IteratorUtils.toList(resultIterator);
             
@@ -565,7 +553,7 @@
                 }
             }
             final TorqueResultIterator resultIterator = new 
TorqueResultIterator(messageRows,
-                    results | MessageResult.UID | MessageResult.FLAGS, 
getUidToKeyConverter());
+                    results | MessageResult.FLAGS, getUidToKeyConverter());
             final org.apache.james.mailboxmanager.impl.MessageFlags[] 
messageFlags = resultIterator.getMessageFlags();
             tracker.flagsUpdated(messageFlags, sessionId);
             tracker.found(uidRange, messageFlags);
@@ -784,8 +772,8 @@
             lock.writeLock().acquire();
             try {
                 final Flags flags = new Flags(Flags.Flag.DELETED);
-                doSetFlags(flags, true, false, set, MessageResult.NOTHING);
-                doExpunge(set, MessageResult.NOTHING);
+                doSetFlags(flags, true, false, set, MessageResult.MINIMAL);
+                doExpunge(set, MessageResult.MINIMAL);
             } finally {
                 lock.writeLock().release();
             }
@@ -809,6 +797,5 @@
 
     public boolean isWriteable() {
         return 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=601701&r1=601700&r2=601701&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 03:05:19 2007
@@ -39,13 +39,11 @@
 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.ImapMailboxSession;
 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.mailboxmanager.wrapper.ImapMailboxWrapper;
 import org.apache.james.services.User;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.CountHelper;
@@ -76,14 +74,14 @@
             getLog().info("autocreated mailbox  " + mailboxName);
             createMailbox(mailboxName);
         }
-        return getImapMailboxSession(mailboxName);
+        return getImapMailbox(mailboxName);
     }
     
 
 
     public GeneralMailbox getGeneralMailbox(String mailboxName)
     throws MailboxManagerException {
-        return getImapMailboxSession(mailboxName);
+        return getImapMailbox(mailboxName);
     }
     
     public boolean createInbox(User user) throws MailboxManagerException {
@@ -99,7 +97,7 @@
         }
     }
     
-    public ImapMailboxSession getImapMailboxSession(String mailboxName)
+    public ImapMailbox getImapMailbox(String mailboxName)
             throws MailboxManagerException {
 
         try {
@@ -117,9 +115,7 @@
                         managers.put(mailboxName, torqueMailbox);
                     }
                     
-                    final ImapMailboxWrapper wrapper 
-                        = new ImapMailboxWrapper(torqueMailbox);
-                    return wrapper;
+                    return torqueMailbox;
                 } else {
                     getLog().info("Mailbox '" + mailboxName + "' not found.");
                     throw new MailboxNotFoundException(mailboxName);
@@ -206,7 +202,7 @@
         while (it.hasNext()) {
             final MessageResult result = (MessageResult) it.next();
             final MimeMessage mimeMessage = result.getMimeMessage();
-            toMailbox.appendMessage(mimeMessage, result.getInternalDate(), 
MessageResult.NOTHING);
+            toMailbox.appendMessage(mimeMessage, result.getInternalDate(), 
MessageResult.MINIMAL);
         }
     }
 

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueResultIterator.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueResultIterator.java?rev=601701&r1=601700&r2=601701&view=diff
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueResultIterator.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueResultIterator.java
 Thu Dec  6 03:05:19 2007
@@ -95,8 +95,7 @@
     }
 
     private static final class UnloadedMessageResult implements MessageResult {
-        private static final int results = MessageResult.INTERNAL_DATE | 
MessageResult.SIZE
-                | MessageResult.UID;
+        private static final int results = MessageResult.INTERNAL_DATE | 
MessageResult.SIZE;
         
         private final MailboxManagerException exception;
         private final Date internalDate;



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

Reply via email to