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]