Author: norman
Date: Wed Feb  9 10:52:19 2011
New Revision: 1068836

URL: http://svn.apache.org/viewvc?rev=1068836&view=rev
Log:
MailboxListener.Event noew expose the MailboxSession in whichs context the 
Event happened. See MAILBOX-36

Modified:
    
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
    
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java
    
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/util/MailboxEventDispatcherFlagsTest.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
    
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/TorqueMailbox.java
    
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/UidChangeTracker.java

Modified: 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java?rev=1068836&r1=1068835&r2=1068836&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
 (original)
+++ 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
 Wed Feb  9 10:52:19 2011
@@ -54,20 +54,20 @@ public interface MailboxListener {
      * A mailbox event.
      */
     public class Event {
-        private final long sessionId;
+        private final MailboxSession session;
         private final MailboxPath path;
-        public Event(final long sessionId, final MailboxPath path) {
-            this.sessionId = sessionId;
+        public Event(final MailboxSession session, final MailboxPath path) {
+            this.session = session;
             this.path = path;
         }
         
         /**
-         * Gets the id of the session which the event.
+         * Gets the {@link MailboxSession} in whichs context the {@link Event} 
happened
          * 
-         * @return session id
+         * @return session 
          */
-        public long getSessionId() {
-            return sessionId;
+        public MailboxSession getSession() {
+            return session;
         }
         
         /**
@@ -85,8 +85,8 @@ public interface MailboxListener {
      */
     public class MailboxDeletion extends Event {
 
-        public MailboxDeletion(long sessionId, MailboxPath path) {
-            super(sessionId, path);
+        public MailboxDeletion(final MailboxSession session, MailboxPath path) 
{
+            super(session, path);
         }
     }
     
@@ -95,8 +95,8 @@ public interface MailboxListener {
      * Indicates that a mailbox has been renamed.
      */
     public abstract class MailboxRenamed extends Event {
-        public MailboxRenamed(long sessionId, MailboxPath path) {
-            super(sessionId, path);
+        public MailboxRenamed(final MailboxSession session, MailboxPath path) {
+            super(session, path);
         }
         /**
          * Gets the new name for this mailbox.
@@ -111,8 +111,8 @@ public interface MailboxListener {
      */
     public abstract class MessageEvent extends Event {
 
-        public MessageEvent(long sessionId, MailboxPath path) {
-            super(sessionId, path);
+        public MessageEvent(MailboxSession session, MailboxPath path) {
+            super(session, path);
         }
 
         /**
@@ -125,8 +125,8 @@ public interface MailboxListener {
 
     public abstract class Expunged extends MessageEvent {
 
-        public Expunged(long sessionId, MailboxPath path) {
-            super(sessionId, path);
+        public Expunged(MailboxSession session, MailboxPath path) {
+            super(session, path);
         }
     }
 
@@ -137,8 +137,8 @@ public interface MailboxListener {
      */
     public abstract class FlagsUpdated extends MessageEvent {
 
-        public FlagsUpdated(long sessionId, MailboxPath path) {
-            super(sessionId, path);
+        public FlagsUpdated(MailboxSession session, MailboxPath path) {
+            super(session, path);
         }
 
         /**
@@ -161,8 +161,8 @@ public interface MailboxListener {
      */
     public abstract class Added extends MessageEvent {
 
-        public Added(long sessionId, MailboxPath path) {
-            super(sessionId, path);
+        public Added(MailboxSession session, MailboxPath path) {
+            super(session, path);
         }
     }
 

Modified: 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java?rev=1068836&r1=1068835&r2=1068836&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java
 (original)
+++ 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/util/MailboxEventDispatcher.java
 Wed Feb  9 10:52:19 2011
@@ -32,6 +32,7 @@ import javax.mail.Flags.Flag;
 
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxPath;
+import org.apache.james.mailbox.MailboxSession;
 
 /**
  * Helper class to dispatch {@link Event}'s to registerend MailboxListener 
@@ -74,36 +75,36 @@ public class MailboxEventDispatcher impl
      * @param sessionId
      * @param path
      */
-    public void added(long uid, long sessionId, MailboxPath path) {
+    public void added(MailboxSession session, long uid, MailboxPath path) {
         pruneClosed();
-        final AddedImpl added = new AddedImpl(sessionId, path, uid);
+        final AddedImpl added = new AddedImpl(session, path, uid);
         event(added);
     }
 
     /**
      * Should get called when a message was expunged from a Mailbox. All 
registered MailboxListener will get triggered then
-
+     * 
+     * @param session
      * @param uid
-     * @param sessionId
      * @param path
      */
-    public void expunged(final long uid, long sessionId, MailboxPath path) {
-        final ExpungedImpl expunged = new ExpungedImpl(sessionId, path, uid);
+    public void expunged(final MailboxSession session, final long uid, 
MailboxPath path) {
+        final ExpungedImpl expunged = new ExpungedImpl(session, path, uid);
         event(expunged);
     }
 
     /**
      * Should get called when the message flags were update in a Mailbox. All 
registered MailboxListener will get triggered then
      *
+     * @param session
      * @param uid
-     * @param sessionId
      * @param path
      * @param original
      * @param updated
      */
-    public void flagsUpdated(final long uid, long sessionId, final MailboxPath 
path,
+    public void flagsUpdated(MailboxSession session, final long uid, final 
MailboxPath path,
             final Flags original, final Flags updated) {
-        final FlagsUpdatedImpl flags = new FlagsUpdatedImpl(sessionId, path, 
uid,
+        final FlagsUpdatedImpl flags = new FlagsUpdatedImpl(session, path, uid,
                 original, updated);
         event(flags);
     }
@@ -142,16 +143,16 @@ public class MailboxEventDispatcher impl
      * @param to
      * @param sessionId
      */
-    public void mailboxRenamed(MailboxPath from, MailboxPath to, long 
sessionId) {
-        event(new MailboxRenamedEventImpl(from, to, sessionId));
+    public void mailboxRenamed(MailboxSession session, MailboxPath from, 
MailboxPath to) {
+        event(new MailboxRenamedEventImpl(session, from, to));
     }
 
     private final static class AddedImpl extends MailboxListener.Added {
 
         private final long subjectUid;
 
-        public AddedImpl(final long sessionId, final MailboxPath path, final 
long subjectUid) {
-            super(sessionId, path);
+        public AddedImpl(final MailboxSession session, final MailboxPath path, 
final long subjectUid) {
+            super(session, path);
             this.subjectUid = subjectUid;
         }
 
@@ -168,8 +169,8 @@ public class MailboxEventDispatcher impl
 
         private final long subjectUid;
 
-        public ExpungedImpl(final long sessionId, final MailboxPath path, 
final long subjectUid) {
-            super(sessionId, path);
+        public ExpungedImpl(MailboxSession session, final MailboxPath path, 
final long subjectUid) {
+            super(session, path);
             this.subjectUid = subjectUid;
         }
 
@@ -199,9 +200,9 @@ public class MailboxEventDispatcher impl
 
         private final Flags newFlags;
 
-        public FlagsUpdatedImpl(final long sessionId, final MailboxPath path, 
final long subjectUid,
+        public FlagsUpdatedImpl(MailboxSession session, final MailboxPath 
path, final long subjectUid,
                 final Flags original, final Flags updated) {
-            this(sessionId, path, subjectUid, updated, isChanged(original, 
updated,
+            this(session, path, subjectUid, updated, isChanged(original, 
updated,
                     Flags.Flag.ANSWERED), isChanged(original, updated,
                     Flags.Flag.DELETED), isChanged(original, updated,
                     Flags.Flag.DRAFT), isChanged(original, updated,
@@ -210,12 +211,12 @@ public class MailboxEventDispatcher impl
                     Flags.Flag.SEEN));
         }
 
-        public FlagsUpdatedImpl(final long sessionId, final MailboxPath path, 
final long subjectUid,
+        public FlagsUpdatedImpl(MailboxSession session, final MailboxPath 
path, final long subjectUid,
                 final Flags newFlags, boolean answeredUpdated,
                 boolean deletedUpdated, boolean draftUpdated,
                 boolean flaggedUpdated, boolean recentUpdated,
                 boolean seenUpdated) {
-            super(sessionId, path);
+            super(session, path);
             this.subjectUid = subjectUid;
             this.modifiedFlags = new boolean[NUMBER_OF_SYSTEM_FLAGS];
             this.modifiedFlags[0] = answeredUpdated;
@@ -302,29 +303,28 @@ public class MailboxEventDispatcher impl
 
     /**
      * Should get called when a Mailbox was deleted. All registered 
MailboxListener will get triggered then
- 
      *
-     * @param sessionId
+     * @param session
      * @param path
      */
-    public void mailboxDeleted(long sessionId, MailboxPath path) {
+    public void mailboxDeleted(MailboxSession session, MailboxPath path) {
         final MailboxDeletionEventImpl event = new MailboxDeletionEventImpl(
-                sessionId, path);
+                session, path);
         event(event);
     }
 
     private static final class MailboxDeletionEventImpl extends
             MailboxListener.MailboxDeletion {
-        public MailboxDeletionEventImpl(final long sessionId, MailboxPath 
path) {
-            super(sessionId, path);
+        public MailboxDeletionEventImpl(MailboxSession session, MailboxPath 
path) {
+            super(session, path);
         }
     }
 
     private static final class MailboxRenamedEventImpl extends 
MailboxListener.MailboxRenamed {
         private final MailboxPath newPath;
 
-        public MailboxRenamedEventImpl(final MailboxPath path, final 
MailboxPath newPath, final long sessionId) {
-            super(sessionId, path);
+        public MailboxRenamedEventImpl(final MailboxSession session, final 
MailboxPath path, final MailboxPath newPath) {
+            super(session, path);
             this.newPath = newPath;
         }
 

Modified: 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/util/MailboxEventDispatcherFlagsTest.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/util/MailboxEventDispatcherFlagsTest.java?rev=1068836&r1=1068835&r2=1068836&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/util/MailboxEventDispatcherFlagsTest.java
 (original)
+++ 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/util/MailboxEventDispatcherFlagsTest.java
 Wed Feb  9 10:52:19 2011
@@ -27,7 +27,9 @@ import javax.mail.Flags;
 
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxPath;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageResult;
+import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.util.MailboxEventDispatcher;
 import org.jmock.Expectations;
 import org.jmock.Mockery;
@@ -45,9 +47,17 @@ public class MailboxEventDispatcherFlags
     EventCollector collector;
 
     MessageResult result;
-
     int sessionId = 10;
 
+    private MailboxSession session = new MockMailboxSession("test") {
+
+        @Override
+        public long getSessionId() {
+            return sessionId;
+        }
+        
+    };
+
     private Mockery mockery = new JUnit4Mockery();
 
     private MailboxPath path = new MailboxPath(null, null, "test");
@@ -65,7 +75,7 @@ public class MailboxEventDispatcherFlags
    
     @Test
     public void testShouldReturnNoChangesWhenOriginalNull() throws Exception {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, null, new 
Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, null, new 
Flags(
                 Flags.Flag.DELETED));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -78,7 +88,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldReturnNoChangesWhenSystemFlagsUnchanged() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(
                 Flags.Flag.DELETED), new Flags(Flags.Flag.DELETED));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -91,7 +101,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowAnsweredAdded() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(),
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(),
                 new Flags(Flags.Flag.ANSWERED));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -106,7 +116,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowAnsweredRemoved() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(
                 Flags.Flag.ANSWERED), new Flags());
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -121,7 +131,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowDeletedAdded() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(),
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(),
                 new Flags(Flags.Flag.DELETED));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -136,7 +146,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowDeletedRemoved() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(
                 Flags.Flag.DELETED), new Flags());
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -151,7 +161,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowDraftAdded() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(),
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(),
                 new Flags(Flags.Flag.DRAFT));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -166,7 +176,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowDraftRemoved() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(
                 Flags.Flag.DRAFT), new Flags());
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -181,7 +191,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowFlaggedAdded() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(),
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(),
                 new Flags(Flags.Flag.FLAGGED));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -196,7 +206,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowFlaggedRemoved() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(
                 Flags.Flag.FLAGGED), new Flags());
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -211,7 +221,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowRecentAdded() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(),
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(),
                 new Flags(Flags.Flag.RECENT));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -226,7 +236,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowRecentRemoved() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(
                 Flags.Flag.RECENT), new Flags());
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -241,7 +251,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowSeenAdded() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(),
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(),
                 new Flags(Flags.Flag.SEEN));
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -256,7 +266,7 @@ public class MailboxEventDispatcherFlags
 
     @Test
     public void testShouldShowSeenRemoved() {
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, new Flags(
+        dispatcher.flagsUpdated(session, result.getUid(), path, new Flags(
                 Flags.Flag.SEEN), new Flags());
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
@@ -279,7 +289,7 @@ public class MailboxEventDispatcherFlags
         updated.add(Flags.Flag.DRAFT);
         updated.add(Flags.Flag.SEEN);
 
-        dispatcher.flagsUpdated(result.getUid(), sessionId, path, originals, 
updated);
+        dispatcher.flagsUpdated(session, result.getUid(), path, originals, 
updated);
         assertEquals(1, collector.events.size());
         assertTrue(collector.events.get(0) instanceof 
MailboxListener.FlagsUpdated);
         MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) 
collector.events

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java?rev=1068836&r1=1068835&r2=1068836&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
 Wed Feb  9 10:52:19 2011
@@ -21,7 +21,6 @@ package org.apache.james.mailbox.store;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Random;
@@ -300,7 +299,7 @@ public abstract class StoreMailboxManage
 
         });
 
-        dispatcher.mailboxDeleted(session.getSessionId(), mailboxPath);
+        dispatcher.mailboxDeleted(session, mailboxPath);
 
     }
 
@@ -330,7 +329,7 @@ public abstract class StoreMailboxManage
                 mailbox.setName(to.getName());
                 mapper.save(mailbox);
 
-                dispatcher.mailboxRenamed(from, to, session.getSessionId());
+                dispatcher.mailboxRenamed(session, from, to);
 
                 // rename submailboxes
                 final MailboxPath children = new 
MailboxPath(MailboxConstants.USER_NAMESPACE, from.getUser(), from.getName() + 
getDelimiter() + "%");
@@ -346,7 +345,7 @@ public abstract class StoreMailboxManage
 
                             sub.setName(subNewName);
                             mapper.save(sub);
-                            dispatcher.mailboxRenamed(fromPath, toPath, 
session.getSessionId());
+                            dispatcher.mailboxRenamed(session, fromPath, 
toPath);
 
                             if (log.isDebugEnabled())
                                 log.debug("Rename mailbox sub-mailbox " + 
subOriginalName + " to " + subNewName);

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java?rev=1068836&r1=1068835&r2=1068836&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
 Wed Feb  9 10:52:19 2011
@@ -133,7 +133,7 @@ public abstract class StoreMessageManage
         Iterator<Long> uidIt = deleteMarkedInMailbox(set, mailboxSession);
         while(uidIt.hasNext()) {
             long uid = uidIt.next();
-            dispatcher.expunged(uid, mailboxSession.getSessionId(), new 
StoreMailboxPath<Id>(getMailboxEntity()));
+            dispatcher.expunged(mailboxSession, uid, new 
StoreMailboxPath<Id>(getMailboxEntity()));
             uids.add(uid);
         }
         return uids.iterator();    
@@ -262,7 +262,7 @@ public abstract class StoreMessageManage
             final MailboxMembership<Id> message = createMessage(nextUid, 
internalDate, size, bodyStartOctet, tmpMsgIn.newStream(0, -1), flags, headers, 
propertyBuilder);
             long uid = appendMessageToStore(message, mailboxSession);
                         
-            dispatcher.added(uid, mailboxSession.getSessionId(), new 
StoreMailboxPath<Id>(getMailboxEntity()));
+            dispatcher.added(mailboxSession, uid, new 
StoreMailboxPath<Id>(getMailboxEntity()));
             return uid;
         } catch (IOException e) {
             throw new MailboxException("Unable to parse message", e);
@@ -417,7 +417,7 @@ public abstract class StoreMessageManage
         
         while (it.hasNext()) {
             UpdatedFlags flag = it.next();
-            dispatcher.flagsUpdated(flag.getUid(), 
mailboxSession.getSessionId(), new StoreMailboxPath<Id>(getMailboxEntity()), 
flag.getOldFlags(), flag.getNewFlags());
+            dispatcher.flagsUpdated(mailboxSession, flag.getUid(), new 
StoreMailboxPath<Id>(getMailboxEntity()), flag.getOldFlags(), 
flag.getNewFlags());
             newFlagsByUid.put(flag.getUid(), flag.getNewFlags());
         }
         return newFlagsByUid;
@@ -440,7 +440,7 @@ public abstract class StoreMessageManage
             while(copiedUids.hasNext()) {
                 long uid = copiedUids.next();
                 result.add(MessageRange.one(uid));
-                dispatcher.added(uid, session.getSessionId(), new 
StoreMailboxPath<Id>(toMailbox.getMailboxEntity()));
+                dispatcher.added(session, uid, new 
StoreMailboxPath<Id>(toMailbox.getMailboxEntity()));
             }
             return result;
         } catch (MailboxException e) {

Modified: 
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/TorqueMailbox.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/TorqueMailbox.java?rev=1068836&r1=1068835&r2=1068836&view=diff
==============================================================================
--- 
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/TorqueMailbox.java
 (original)
+++ 
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/TorqueMailbox.java
 Wed Feb  9 10:52:19 2011
@@ -45,7 +45,6 @@ import javax.mail.Flags;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.james.mailbox.MailboxConstants;
 import org.apache.james.mailbox.MailboxException;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxNotFoundException;
@@ -198,7 +197,7 @@ public class TorqueMailbox implements Me
                     save(messageRow);
                     MessageResult messageResult = fillMessageResult(messageRow,
                             FetchGroupImpl.MINIMAL);
-                    getUidChangeTracker().found(messageResult.getUid(), 
messageResult.getFlags(), mailboxSession.getSessionId());
+                    getUidChangeTracker().found(messageResult.getUid(), 
messageResult.getFlags(), mailboxSession);
                     return messageResult.getUid();
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -359,7 +358,7 @@ public class TorqueMailbox implements Me
             flagsByIndex.put(row.getUid(), 
row.getMessageFlags().createFlags());
         }
         final TorqueResultIterator results = getResults(result, rows);
-        getUidChangeTracker().found(range, flagsByIndex, 
session.getSessionId());
+        getUidChangeTracker().found(range, flagsByIndex, session);
         return results;
     }
 
@@ -445,7 +444,7 @@ public class TorqueMailbox implements Me
                     MessageResult messageResult = fillMessageResult(
                             (MessageRow) messageRows.get(0), 
FetchGroupImpl.MINIMAL);
                     if (messageResult != null) {
-                        getUidChangeTracker().found(messageResult.getUid(), 
messageResult.getFlags(), mailboxSession.getSessionId());
+                        getUidChangeTracker().found(messageResult.getUid(), 
messageResult.getFlags(), mailboxSession);
                     }
 
                     return messageResult.getUid();
@@ -516,7 +515,7 @@ public class TorqueMailbox implements Me
                 todelc.add(MessageRowPeer.UID, messageRow.getUid());
                 MessageRowPeer.doDelete(todelc);
             }
-            getUidChangeTracker().expunged(uids);
+            getUidChangeTracker().expunged(session, uids);
             return uids.iterator();
         } catch (TorqueException e) {
             throw new MailboxException("delete failed", e);
@@ -561,7 +560,7 @@ public class TorqueMailbox implements Me
                     messageFlags.save();
                 }
             }
-            tracker.flagsUpdated(newFlagsByUid, originalFlagsByUid, 
mailboxSession.getSessionId());
+            tracker.flagsUpdated(newFlagsByUid, originalFlagsByUid, 
mailboxSession);
             return newFlagsByUid;
         } catch (TorqueException e) {
             throw new MailboxException("save failed", e);
@@ -797,7 +796,7 @@ public class TorqueMailbox implements Me
                     save(newRow);
                     MessageResult messageResult = fillMessageResult(newRow,
                             FetchGroupImpl.MINIMAL);
-                    getUidChangeTracker().found(messageResult.getUid(), 
messageResult.getFlags(), session.getSessionId());
+                    getUidChangeTracker().found(messageResult.getUid(), 
messageResult.getFlags(), session);
                 }
             }
             return copiedEmailsUids.iterator();
@@ -814,11 +813,11 @@ public class TorqueMailbox implements Me
     }
 
     public void deleted(MailboxSession session) {
-        tracker.mailboxDeleted(session.getSessionId());
+        tracker.mailboxDeleted(session);
     }
 
     public void reportRenamed(String from, MailboxRow mailboxRow, 
MailboxSession session) {
-        tracker.reportRenamed(getMailboxPath(mailboxRow.getName(), 
session.getPathDelimiter()), session.getSessionId());
+        tracker.reportRenamed(getMailboxPath(mailboxRow.getName(), 
session.getPathDelimiter()), session);
         this.mailboxRow = mailboxRow;
     }
 

Modified: 
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/UidChangeTracker.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/UidChangeTracker.java?rev=1068836&r1=1068835&r2=1068836&view=diff
==============================================================================
--- 
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/UidChangeTracker.java
 (original)
+++ 
james/mailbox/trunk/torque/src/main/java/org/apache/james/mailbox/torque/UidChangeTracker.java
 Wed Feb  9 10:52:19 2011
@@ -33,6 +33,7 @@ import javax.mail.Flags;
 import org.apache.james.mailbox.MailboxConstants;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxPath;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageRange;
 import org.apache.james.mailbox.util.MailboxEventDispatcher;
 
@@ -58,10 +59,10 @@ public class UidChangeTracker implements
         this.path = path;
     }
 
-    public synchronized void expunged(final Collection<Long> uidsExpunged) {
+    public synchronized void expunged(MailboxSession session, final 
Collection<Long> uidsExpunged) {
         for (Long uid:uidsExpunged) {
             cache.remove(uid);
-            eventDispatcher.expunged(uid, 0, path);
+            eventDispatcher.expunged(session, uid, path);
         }
     }
 
@@ -73,7 +74,7 @@ public class UidChangeTracker implements
      * @param sessionId
      *            id of the session upating the flags
      */
-    public synchronized void flagsUpdated(SortedMap<Long,Flags> newFlagsByUid, 
Map<Long,Flags> originalFlagsByUid, long sessionId) {
+    public synchronized void flagsUpdated(SortedMap<Long,Flags> newFlagsByUid, 
Map<Long,Flags> originalFlagsByUid, MailboxSession session) {
         if (newFlagsByUid != null) {
             for(Map.Entry<Long, Flags> entry:newFlagsByUid.entrySet()) {
                 final Long uid = entry.getKey();
@@ -86,14 +87,14 @@ public class UidChangeTracker implements
                     lastFlags = cachedFlags;
                 }
                 if (!newFlags.equals(lastFlags)) {
-                    eventDispatcher.flagsUpdated(uid, sessionId, path, 
lastFlags, newFlags);
+                    eventDispatcher.flagsUpdated(session, uid, path, 
lastFlags, newFlags);
                 }
                 cache.put(uid, newFlags);
             }
         }
     }
 
-    public synchronized void found(MessageRange range, final Map<Long, Flags> 
flagsByIndex, long sessionId) {
+    public synchronized void found(MessageRange range, final Map<Long, Flags> 
flagsByIndex, MailboxSession session) {
         final Set<Long> expectedSet = getSubSet(range);
         for (Map.Entry<Long, Flags> entry:flagsByIndex.entrySet()) {
             final Long uid = entry.getKey();
@@ -101,24 +102,24 @@ public class UidChangeTracker implements
                 expectedSet.remove(uid);
             }
             final Flags flags = entry.getValue();
-            found(uid, flags, sessionId);
+            found(uid, flags, session);
         }
 
         for (Iterator<Long> iter = expectedSet.iterator(); iter.hasNext();) {
             long uid = ((Long) iter.next()).longValue();
-            eventDispatcher.expunged(uid, sessionId, path);
+            eventDispatcher.expunged(session, uid, path);
         }
     }
 
-    public synchronized void found(final Long uid, final Flags flags, long 
sessionId) {
+    public synchronized void found(final Long uid, final Flags flags, 
MailboxSession session) {
         if (flags != null) {
             final Flags cachedFlags = cache.get(uid);
             if (cachedFlags == null || !flags.equals(cachedFlags)) {
-                eventDispatcher.flagsUpdated(uid, sessionId, path, 
cachedFlags, flags);
+                eventDispatcher.flagsUpdated(session, uid, path, cachedFlags, 
flags);
             }
         }
         if (uid > lastUid) {
-            eventDispatcher.added(uid, sessionId, path);
+            eventDispatcher.added(session, uid, path);
             lastUid = uid;
         }
         cache.put(uid, flags);
@@ -142,12 +143,12 @@ public class UidChangeTracker implements
         eventDispatcher.addMailboxListener(listener);
     }
     
-    public void mailboxDeleted(long sessionId) {
-        eventDispatcher.mailboxDeleted(sessionId, path);
+    public void mailboxDeleted(MailboxSession session) {
+        eventDispatcher.mailboxDeleted(session, path);
     }
 
-    public void reportRenamed(MailboxPath to, long sessionId) {
-        eventDispatcher.mailboxRenamed(path, to, sessionId);
+    public void reportRenamed(MailboxPath to, MailboxSession session) {
+        eventDispatcher.mailboxRenamed(session, path, to);
         path = to;
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to