Author: rdonkin
Date: Tue Nov 20 23:59:40 2007
New Revision: 596976

URL: http://svn.apache.org/viewvc?rev=596976&view=rev
Log:
Switch to lightweight events. These no longer contain MessageResults.

Added:
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MessageFlags.java
Modified:
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/MailboxListener.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcher.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxListenerCollector.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyser.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/wrapper/NumberStableSessionWrapper.java
    
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerAdded.java
    
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerFlagsUpdate.java
    
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcherFlagsTest.java
    
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyserTest.java
    
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/impl/UidChangeTrackerTestCase.java

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/MailboxListener.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/MailboxListener.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/MailboxListener.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/MailboxListener.java
 Tue Nov 20 23:59:40 2007
@@ -21,6 +21,8 @@
 
 import java.util.Iterator;
 
+import javax.mail.Flags;
+
 
 /**
  * Listens to <code>Mailbox</code> events.
@@ -50,16 +52,24 @@
      * A mailbox event related to a message.
      */
     public interface MessageEvent extends Event {
+        
         /**
-         * Gets the subject of this event.
-         * @return <code>MessageResult</code>, not null
+         * Gets the message UID for the subject
+         * of this event.
+         * 
+         * @return message uid
          */
-        public MessageResult getSubject();
+        public long getSubjectUid();
     }
     
     public abstract class Expunged implements MessageEvent {}
     
     public abstract class FlagsUpdated implements MessageEvent {
+        
+        /**
+         * Gets new flags for this message.
+         */
+        public abstract Flags getNewFlags();
         
         /**
          * Gets an iterator for the system flags changed.

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcher.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcher.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcher.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcher.java
 Tue Nov 20 23:59:40 2007
@@ -28,6 +28,7 @@
 
 import org.apache.james.mailboxmanager.MailboxListener;
 import org.apache.james.mailboxmanager.MessageResult;
+import org.apache.james.mailboxmanager.MessageResultUtils;
 
 import EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArraySet;
 
@@ -44,28 +45,36 @@
     }
 
     public void added(MessageResult result, long sessionId) {
-        final AddedImpl added = new AddedImpl(sessionId, result);
-        for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-            MailboxListener mailboxListener = (MailboxListener) iter.next();
-            mailboxListener.event(added);
+        if (MessageResultUtils.isUidIncluded(result)) {
+            final AddedImpl added = new AddedImpl(sessionId, result.getUid());
+            for (Iterator iter = listeners.iterator(); iter.hasNext();) {
+                MailboxListener mailboxListener = (MailboxListener) 
iter.next();
+                mailboxListener.event(added);
+            }
         }
     }
 
     public void expunged(final MessageResult result, long sessionId) {
-        final ExpungedImpl expunged = new ExpungedImpl(sessionId, result);
-        for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-            MailboxListener mailboxListener = (MailboxListener) iter.next();
-            mailboxListener.event(expunged);
+        if (MessageResultUtils.isUidIncluded(result)) {
+            final long uid = result.getUid();
+            final ExpungedImpl expunged = new ExpungedImpl(sessionId, uid);
+            for (Iterator iter = listeners.iterator(); iter.hasNext();) {
+                MailboxListener mailboxListener = (MailboxListener) 
iter.next();
+                mailboxListener.event(expunged);
+            }
         }
     }
 
     public void flagsUpdated(final MessageResult result, long sessionId, final 
Flags original,
             final Flags updated) {
-        final FlagsUpdatedImpl flags = new FlagsUpdatedImpl(sessionId, result, 
-                original, updated);
-        for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-            MailboxListener mailboxListener = (MailboxListener) iter.next();
-            mailboxListener.event(flags);
+        if (MessageResultUtils.isUidIncluded(result)) {
+            final long uid = result.getUid();
+            final FlagsUpdatedImpl flags = new FlagsUpdatedImpl(sessionId, 
uid, 
+                    original, updated);
+            for (Iterator iter = listeners.iterator(); iter.hasNext();) {
+                MailboxListener mailboxListener = (MailboxListener) 
iter.next();
+                mailboxListener.event(flags);
+            }
         }
     }
 
@@ -97,16 +106,16 @@
     private final static class AddedImpl extends MailboxListener.Added {
 
         private final long sessionId;
-        private final MessageResult subject;
+        private final long subjectUid;
         
-        public AddedImpl(final long sessionId, final MessageResult subject) {
+        public AddedImpl(final long sessionId, final long subjectUid) {
             super();
             this.sessionId = sessionId;
-            this.subject = subject;
+            this.subjectUid = subjectUid;
         }
 
-        public MessageResult getSubject() {
-            return subject;
+        public long getSubjectUid() {
+            return subjectUid;
         }
 
         public long getSessionId() {
@@ -117,16 +126,16 @@
     private final static class ExpungedImpl extends MailboxListener.Expunged {
 
         private final long sessionId;
-        private final MessageResult subject;
+        private final long subjectUid;
         
-        public ExpungedImpl(final long sessionId, final MessageResult subject) 
{
+        public ExpungedImpl(final long sessionId, final long subjectUid) {
             super();
             this.sessionId = sessionId;
-            this.subject = subject;
+            this.subjectUid = subjectUid;
         }
 
-        public MessageResult getSubject() {
-            return subject;
+        public long getSubjectUid() {
+            return subjectUid;
         }
 
         public long getSessionId() {
@@ -148,12 +157,13 @@
         private static final int NUMBER_OF_SYSTEM_FLAGS = 6;
         
         private final long sessionId;
-        private final MessageResult subject;
-        private final boolean[] flags;
+        private final long subjectUid;
+        private final boolean[] modifiedFlags;
+        private final Flags newFlags;
         
-        public FlagsUpdatedImpl(final long sessionId, final MessageResult 
subject, 
+        public FlagsUpdatedImpl(final long sessionId, final long subjectUid, 
                 final Flags original, final Flags updated) {
-            this(sessionId, subject, isChanged(original, updated, 
Flags.Flag.ANSWERED),
+            this(sessionId, subjectUid, updated, isChanged(original, updated, 
Flags.Flag.ANSWERED),
                     isChanged(original, updated, Flags.Flag.DELETED), 
                     isChanged(original, updated, Flags.Flag.DRAFT),
                     isChanged(original, updated, Flags.Flag.FLAGGED), 
@@ -161,23 +171,24 @@
                     isChanged(original, updated, Flags.Flag.SEEN));
         }
         
-        public FlagsUpdatedImpl(final long sessionId, final MessageResult 
subject, 
+        public FlagsUpdatedImpl(final long sessionId, final long subjectUid, 
final Flags newFlags,
                 boolean answeredUpdated, boolean deletedUpdated, boolean 
draftUpdated,
                 boolean flaggedUpdated, boolean recentUpdated, boolean 
seenUpdated) {
             super();
             this.sessionId = sessionId;
-            this.subject = subject;
-            this.flags = new boolean[NUMBER_OF_SYSTEM_FLAGS];
-            this.flags[0] = answeredUpdated;
-            this.flags[1] = deletedUpdated;
-            this.flags[2] = draftUpdated;
-            this.flags[3] = flaggedUpdated;
-            this.flags[4] = recentUpdated;
-            this.flags[5] = seenUpdated;
+            this.subjectUid = subjectUid;
+            this.modifiedFlags = new boolean[NUMBER_OF_SYSTEM_FLAGS];
+            this.modifiedFlags[0] = answeredUpdated;
+            this.modifiedFlags[1] = deletedUpdated;
+            this.modifiedFlags[2] = draftUpdated;
+            this.modifiedFlags[3] = flaggedUpdated;
+            this.modifiedFlags[4] = recentUpdated;
+            this.modifiedFlags[5] = seenUpdated;
+            this.newFlags = newFlags;
         }
 
-        public MessageResult getSubject() {
-            return subject;
+        public long getSubjectUid() {
+            return subjectUid;
         }
 
         public long getSessionId() {
@@ -188,6 +199,10 @@
             return new FlagsIterator();
         }
         
+        public Flags getNewFlags() {
+            return newFlags;
+        }
+        
         private class FlagsIterator implements Iterator {
             private int position;
             
@@ -198,7 +213,7 @@
 
             private void nextPosition() {
                 if (position < NUMBER_OF_SYSTEM_FLAGS) {
-                    if (!flags[position]) {
+                    if (!modifiedFlags[position]) {
                         position++;
                         nextPosition();
                     }

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxListenerCollector.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxListenerCollector.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxListenerCollector.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MailboxListenerCollector.java
 Tue Nov 20 23:59:40 2007
@@ -22,8 +22,9 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.mail.Flags;
+
 import org.apache.james.mailboxmanager.MailboxListener;
-import org.apache.james.mailboxmanager.MessageResult;
 
 public class MailboxListenerCollector implements MailboxListener {
     
@@ -31,16 +32,16 @@
     protected List expungedList =new ArrayList();
     protected List flaggedList =new ArrayList();
 
-    public void added(MessageResult mr) {
-        addedList.add(mr);
+    public void added(final long uid) {
+        addedList.add(new Long(uid));
     }
 
-    public void expunged(MessageResult mr) {
-        expungedList.add(mr);
+    public void expunged(final long uid) {
+        expungedList.add(new Long(uid));
     }
 
-    public void flagsUpdated(MessageResult mr) {
-        flaggedList.add(mr);
+    public void flagsUpdated(final long uid, final Flags flags) {
+        flaggedList.add(new MessageFlags(uid, flags));
     }
     
     public synchronized List getAddedList(boolean reset) {
@@ -79,13 +80,15 @@
     public void event(Event event) {
         if (event instanceof MessageEvent) {
             final MessageEvent messageEvent = (MessageEvent) event;
-            final MessageResult subject = messageEvent.getSubject();
+            final long uid = messageEvent.getSubjectUid();
             if (event instanceof Added) {
-                added(subject);
+                added(uid);
             } else if (event instanceof Expunged) {
-                expunged(subject);
+                expunged(uid);
             } else if (event instanceof FlagsUpdated) {
-                flagsUpdated(subject);
+                FlagsUpdated flagsUpdated = (FlagsUpdated) messageEvent;
+                final Flags newFlags = flagsUpdated.getNewFlags();
+                flagsUpdated(uid, newFlags);
             }
         }
     }

Added: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MessageFlags.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MessageFlags.java?rev=596976&view=auto
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MessageFlags.java
 (added)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/impl/MessageFlags.java
 Tue Nov 20 23:59:40 2007
@@ -0,0 +1,108 @@
+/****************************************************************
+ * 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.impl;
+
+import javax.mail.Flags;
+
+/**
+ * Represents the flags for a message.
+ */
+public class MessageFlags {
+    private final long uid;
+    private Flags flags;
+    
+    public MessageFlags(final long uid, Flags flags) {
+        this.uid = uid;
+        this.flags = flags;
+    }
+
+    /**
+     * Gets the message flags.
+     * @return <code>Flags</code>, not null
+     */
+    public final Flags getFlags() {
+        return flags;
+    }
+    
+    /**
+     * Sets the message flags
+     * @param flags <code>Flags</code>, not null
+     */
+    public final void setFlags(Flags flags) {
+        this.flags = flags;
+    }
+    
+    /**
+     * Gets the UID for the message.
+     * @return the message UID
+     */
+    public final long getUid() {
+        return uid;
+    }
+
+    /**
+     * @see java.lang.Object#hashCode()
+     */
+//    @Override
+    public int hashCode() {
+        final int PRIME = 31;
+        int result = 1;
+        result = PRIME * result + (int) (uid ^ (uid >>> 32));
+        return result;
+    }
+
+    /**
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+//  @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        final MessageFlags other = (MessageFlags) obj;
+        if (uid != other.uid)
+            return false;
+        return true;
+    }
+
+    /**
+     * Represents this object suitable for logging.
+     *
+     * @return a <code>String</code> representation 
+     * of this object.
+     */
+//  @Override
+    public String toString()
+    {
+        final String TAB = " ";
+        
+        final String retValue = "MessageFlags ( "
+            + "uid = " + this.uid + TAB
+            + "flags = " + this.flags + TAB
+            + " )";
+    
+        return retValue;
+    }    
+    
+    
+}

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyser.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyser.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyser.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyser.java
 Tue Nov 20 23:59:40 2007
@@ -26,7 +26,6 @@
 import javax.mail.Flags;
 
 import org.apache.james.mailboxmanager.MailboxListener;
-import org.apache.james.mailboxmanager.MessageResult;
 
 public class MailboxEventAnalyser implements MailboxListener {
 
@@ -46,19 +45,16 @@
     public void event(Event event) {
         if (event instanceof MessageEvent) {
             final MessageEvent messageEvent = (MessageEvent) event;
-            final MessageResult result =  messageEvent.getSubject();
+            final long uid =  messageEvent.getSubjectUid();
             final long eventSessionId = messageEvent.getSessionId();
-            if (result != null) {
-                if (messageEvent instanceof Added) {
-                    sizeChanged = true;
-                } else if (messageEvent instanceof FlagsUpdated) {
-                    FlagsUpdated updated = (FlagsUpdated) messageEvent;
-                    if (interestingFlags(updated) && 
-                            (sessionId != eventSessionId || 
!silentFlagChanges)) {
-                        final long uid = result.getUid();
-                        final Long uidObject = new Long(uid);
-                        flagUpdateUids.add(uidObject);
-                    }
+            if (messageEvent instanceof Added) {
+                sizeChanged = true;
+            } else if (messageEvent instanceof FlagsUpdated) {
+                FlagsUpdated updated = (FlagsUpdated) messageEvent;
+                if (interestingFlags(updated) && 
+                        (sessionId != eventSessionId || !silentFlagChanges)) {
+                    final Long uidObject = new Long(uid);
+                    flagUpdateUids.add(uidObject);
                 }
             }
         }

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/wrapper/NumberStableSessionWrapper.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/wrapper/NumberStableSessionWrapper.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/wrapper/NumberStableSessionWrapper.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/wrapper/NumberStableSessionWrapper.java
 Tue Nov 20 23:59:40 2007
@@ -19,7 +19,7 @@
 
 package org.apache.james.mailboxmanager.wrapper;
 
-import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.Map;
@@ -159,64 +159,53 @@
         return mr;
     }
 
-    public synchronized MessageResult[] getFlagEvents(boolean reset)
-            throws MailboxManagerException {
-        final MessageResult[] msnFlagEvents = 
buildMsnEvents(flagEventMap.values(),false);
-        if (reset) {
-            flagEventMap = new TreeMap();
-        }
-        return msnFlagEvents;
-    }
-
     public synchronized Iterator getExpungedEvents(boolean reset)
             throws MailboxManagerException {
-        final MessageResult[] msnExpungedEvents  = 
buildMsnEvents(expungedEventList,reset);
+        final Collection msnExpungedEvents  = 
buildMsnEvents(expungedEventList,reset);
         if (reset) {
             expungedEventList = new TreeSet();
         } 
-        return Arrays.asList(msnExpungedEvents).iterator();
+        return msnExpungedEvents.iterator();
     }
 
-    protected MessageResult[]  buildMsnEvents(final Collection messageResults, 
+    private Collection  buildMsnEvents(final Collection messageResults, 
             final boolean expunge)
             throws MailboxManagerException {
-        final MessageResult[]  msnEvents = new 
MessageResult[messageResults.size()];
-        int i=0;
+        final Collection msnEvents = new ArrayList(messageResults.size());
         for (final Iterator iter = messageResults.iterator(); iter.hasNext();) 
{
-            final MessageResult original = (MessageResult) iter.next();
-            final MessageResultImpl newMr = new MessageResultImpl(original);
-            final long uid = original.getUid();
+            final Long uidObject = (Long) iter.next();
+            final long uid = uidObject.longValue();
+            final MessageResultImpl message = new MessageResultImpl(uid);
             final UidToMsnBidiMap numberCache = getNumberCache();
             final int msn = numberCache.getMsn(uid);
-            newMr.setMsn(msn);
+            message.setMsn(msn);
             if (expunge) {
                 numberCache.expunge(uid);
             }
-            msnEvents[i++]=newMr;
+            msnEvents.add(message);
         }
         return msnEvents;
     }
 
-    public void added(MessageResult result) {
+    public void added(final long uid) {
         try {
             // added events dispatched before the cache has been started
             // should be ignored
             if (!startingNumberCache && numberCache != null) 
             {
-                getNumberCache().add(result.getUid());
+                getNumberCache().add(uid);
             }
         } catch (MailboxManagerException e) {
             getLog().error("This should not happen",e);
         }
     }
 
-    public void expunged(MessageResult mr) {
-        getLog().debug("Expunged: "+mr);
-        expungedEventList.add(mr);
+    public void expunged(final long uid) {
+        getLog().debug("Expunged: "+uid);
+        expungedEventList.add(new Long(uid));
     }
 
-    public synchronized void flagsUpdated(MessageResult mr, long sessionId) {
-        final long uid = mr.getUid();
+    public synchronized void flagsUpdated(final long uid, final Flags flags, 
long sessionId) {
         final Long uidObject = new Long(uid);
         if (sessionId != getSessionId() && 
!flagEventMap.containsKey(uidObject)) {
             // if there has been an external update in the past we should 
inform
@@ -224,7 +213,6 @@
             
             // only store flags
             final MessageResultImpl lightweightResult = new 
MessageResultImpl(uid);
-            final Flags flags = mr.getFlags();
             lightweightResult.setFlags(flags);
             flagEventMap.put(uidObject, lightweightResult);
         }
@@ -239,13 +227,15 @@
         if (event instanceof MessageEvent) {
             final long sessionId = event.getSessionId();
             final MessageEvent messageEvent = (MessageEvent) event;
-            final MessageResult result = messageEvent.getSubject();
+            final long uid = messageEvent.getSubjectUid();
             if (event instanceof Added) {
-                added(result);
+                added(uid);
             } else if (event instanceof Expunged) {
-                expunged(result);
+                expunged(uid);
             } else if (event instanceof FlagsUpdated) {
-                flagsUpdated(result, sessionId);
+                final FlagsUpdated flagsUpdated = (FlagsUpdated) event;
+                flagsUpdated(flagsUpdated.getSubjectUid(), 
flagsUpdated.getNewFlags(), 
+                        sessionId);
             }
         }
     }

Modified: 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerAdded.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerAdded.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerAdded.java
 (original)
+++ 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerAdded.java
 Tue Nov 20 23:59:40 2007
@@ -21,17 +21,17 @@
 
 public class MockMailboxListenerAdded extends MailboxListener.Added {
 
-    public MessageResult subject;
+    public long subjectUid;
     public long sessionId;
     
-    public MockMailboxListenerAdded(MessageResult subject, long sessionId) {
+    public MockMailboxListenerAdded(long subjectUid, long sessionId) {
         super();
-        this.subject = subject;
+        this.subjectUid = subjectUid;
         this.sessionId = sessionId;
     }
 
-    public MessageResult getSubject() {
-        return subject;
+    public long getSubjectUid() {
+        return subjectUid;
     }
 
     public long getSessionId() {

Modified: 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerFlagsUpdate.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerFlagsUpdate.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerFlagsUpdate.java
 (original)
+++ 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/MockMailboxListenerFlagsUpdate.java
 Tue Nov 20 23:59:40 2007
@@ -23,23 +23,27 @@
 import java.util.Iterator;
 import java.util.List;
 
+import javax.mail.Flags;
+
 import org.apache.james.mailboxmanager.MailboxListener.FlagsUpdated;
 
 public class MockMailboxListenerFlagsUpdate extends  FlagsUpdated {
 
     public List flags = new ArrayList();    
 
-    public MessageResult subject;
+    public long subjectUid;
     public long sessionId;
+    public Flags newFlags;
     
-    public MockMailboxListenerFlagsUpdate(MessageResult subject, long 
sessionId) {
+    public MockMailboxListenerFlagsUpdate(long subjectUid, Flags newFlags, 
long sessionId) {
         super();
-        this.subject = subject;
+        this.subjectUid = subjectUid;
         this.sessionId = sessionId;
+        this.newFlags = newFlags;
     }
 
-    public MessageResult getSubject() {
-        return subject;
+    public long getSubjectUid() {
+        return subjectUid;
     }
 
     public long getSessionId() {
@@ -50,4 +54,7 @@
         return flags.iterator();
     }
 
+    public Flags getNewFlags() {
+        return newFlags;
+    }
 }

Modified: 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcherFlagsTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcherFlagsTest.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcherFlagsTest.java
 (original)
+++ 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/impl/MailboxEventDispatcherFlagsTest.java
 Tue Nov 20 23:59:40 2007
@@ -25,6 +25,7 @@
 
 import org.apache.james.mailboxmanager.MailboxListener;
 import org.apache.james.mailboxmanager.MessageResult;
+import org.jmock.Mock;
 import org.jmock.MockObjectTestCase;
 
 public class MailboxEventDispatcherFlagsTest extends MockObjectTestCase {
@@ -33,13 +34,17 @@
     EventCollector collector;
     MessageResult result;
     int sessionId = 10;
+    Mock mockMessageResult;
     
     protected void setUp() throws Exception {
         super.setUp();
         dispatcher = new MailboxEventDispatcher();
         collector = new EventCollector();
         dispatcher.addMailboxListener(collector);
-        result = (MessageResult) mock(MessageResult.class).proxy();
+        mockMessageResult = mock(MessageResult.class);
+        
mockMessageResult.expects(once()).method("getIncludedResults").will(returnValue(MessageResult.FLAGS
 | MessageResult.UID));
+        
mockMessageResult.expects(once()).method("getUid").will(returnValue(23L));
+        result = (MessageResult) mockMessageResult.proxy();
     }
 
     protected void tearDown() throws Exception {

Modified: 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyserTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyserTest.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyserTest.java
 (original)
+++ 
james/server/trunk/core-library/src/test/java/org/apache/james/mailboxmanager/util/MailboxEventAnalyserTest.java
 Tue Nov 20 23:59:40 2007
@@ -51,28 +51,27 @@
     }
     
     public void testShouldBeNoSizeChangeOnAdded() throws Exception {
-        analyser.event(new MockMailboxListenerAdded((MessageResult) 
mock(MessageResult.class).proxy(), 11));
+        analyser.event(new MockMailboxListenerAdded(78, 11));
         assertTrue(analyser.isSizeChanged());
     }
     
     public void testShouldNoSizeChangeAfterReset() throws Exception {
-        analyser.event(new MockMailboxListenerAdded((MessageResult) 
mock(MessageResult.class).proxy(), 11));
+        analyser.event(new MockMailboxListenerAdded(99, 11));
         analyser.reset();
         assertFalse(analyser.isSizeChanged());
     }
     
     public void testShouldNotSetUidWhenNoSystemFlagChange() throws Exception {
-        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate((MessageResult) 
mock(MessageResult.class).proxy(), 11);
+        final MockMailboxListenerFlagsUpdate update 
+            = new MockMailboxListenerFlagsUpdate(90, new Flags(), 11);
         analyser.event(update);
         assertNotNull(analyser.flagUpdateUids());
         assertFalse(analyser.flagUpdateUids().hasNext());
     }
     
     public void testShouldSetUidWhenSystemFlagChange() throws Exception {
-        final Mock mockMessageResult = mock(MessageResult.class);
         final long uid = 900L;
-        
mockMessageResult.expects(once()).method("getUid").will(returnValue(uid));
-        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate((MessageResult) mockMessageResult.proxy(), 11);
+        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate(uid, new Flags(), 11);
         update.flags.add(Flags.Flag.ANSWERED);
         analyser.event(update);
         final Iterator iterator = analyser.flagUpdateUids();
@@ -83,10 +82,8 @@
     }
     
     public void testShouldClearFlagUidsUponReset() throws Exception {
-        final Mock mockMessageResult = mock(MessageResult.class);
         final long uid = 900L;
-        
mockMessageResult.expects(once()).method("getUid").will(returnValue(uid));
-        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate((MessageResult) mockMessageResult.proxy(), 11);
+        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate(uid, new Flags(), 11);
         update.flags.add(Flags.Flag.ANSWERED);
         analyser.event(update);
         analyser.reset();
@@ -95,10 +92,8 @@
     }
     
     public void 
testShouldNotSetUidWhenSystemFlagChangeDifferentSessionInSilentMode() throws 
Exception {
-        final Mock mockMessageResult = mock(MessageResult.class);
         final long uid = 900L;
-        
mockMessageResult.expects(once()).method("getUid").will(returnValue(uid));
-        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate((MessageResult) mockMessageResult.proxy(), 11);
+        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate(uid, new Flags(), 11);
         update.flags.add(Flags.Flag.ANSWERED);
         analyser.setSilentFlagChanges(true);
         analyser.event(update);
@@ -110,8 +105,7 @@
     }
     
     public void 
testShouldNotSetUidWhenSystemFlagChangeSameSessionInSilentMode() throws 
Exception {
-        final Mock mockMessageResult = mock(MessageResult.class);
-        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate((MessageResult) mockMessageResult.proxy(), 
BASE_SESSION_ID);
+        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate(345, new Flags(), BASE_SESSION_ID);
         update.flags.add(Flags.Flag.ANSWERED);
         analyser.setSilentFlagChanges(true);
         analyser.event(update);
@@ -121,8 +115,7 @@
     }
     
     public void testShouldNotSetUidWhenOnlyRecentFlagUpdated() throws 
Exception {
-        final Mock mockMessageResult = mock(MessageResult.class);
-        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate((MessageResult) mockMessageResult.proxy(), 
BASE_SESSION_ID);
+        final MockMailboxListenerFlagsUpdate update = new 
MockMailboxListenerFlagsUpdate(886, new Flags(), BASE_SESSION_ID);
         update.flags.add(Flags.Flag.RECENT);
         analyser.event(update);
         final Iterator iterator = analyser.flagUpdateUids();

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/impl/UidChangeTrackerTestCase.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/impl/UidChangeTrackerTestCase.java?rev=596976&r1=596975&r2=596976&view=diff
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/impl/UidChangeTrackerTestCase.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/impl/UidChangeTrackerTestCase.java
 Tue Nov 20 23:59:40 2007
@@ -69,9 +69,9 @@
         results[0]=new MessageResultImpl(1001l,new Flags(Flags.Flag.FLAGGED));
         tracker.found(new UidRange(1001,1001),Arrays.asList(results));
         assertCollectorSizes(0,0,1);
-        result=(MessageResult) collector.getFlaggedList(true).get(0);
-        assertEquals(1001,result.getUid());
-        assertEquals(new Flags(Flags.Flag.FLAGGED),result.getFlags());
+        MessageFlags messageFlags =(MessageFlags) 
collector.getFlaggedList(true).get(0);
+        assertEquals(1001,messageFlags.getUid());
+        assertEquals(new Flags(Flags.Flag.FLAGGED),messageFlags.getFlags());
         
         // nothing changed
         tracker.found(new UidRange(1001,1001),Arrays.asList(results));
@@ -80,7 +80,7 @@
         // 1000 got expunged
         tracker.found(new UidRange(1000,1001),Arrays.asList(results));
         assertCollectorSizes(0,1,0);
-        assertEquals(1000,((MessageResult) 
collector.getExpungedList(true).get(0)).getUid());
+        assertEquals(new Long(1000),collector.getExpungedList(true).get(0));
         
         
     }
@@ -103,9 +103,9 @@
         results[0]=new MessageResultImpl(1000l,new Flags(Flags.Flag.SEEN));
         tracker.found(new UidRange(1000,1000),Arrays.asList(results));
         assertCollectorSizes(0,0,1);
-        result=(MessageResult) collector.getFlaggedList(true).get(0);
-        assertEquals(1000,result.getUid());
-        assertEquals(new Flags(Flags.Flag.SEEN),result.getFlags());
+        MessageFlags messageFlags =(MessageFlags) 
collector.getFlaggedList(true).get(0);
+        assertEquals(1000,messageFlags.getUid());
+        assertEquals(new Flags(Flags.Flag.SEEN),messageFlags.getFlags());
         
         results[0]=new MessageResultImpl(1000l);
         tracker.found(new UidRange(1000,1000),Arrays.asList(results));



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

Reply via email to