You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/04/23 19:41:43 UTC

svn commit: r937447 - in /james/imap/trunk: mailbox/src/main/java/org/apache/james/imap/mailbox/ mailbox/src/main/java/org/apache/james/imap/mailbox/util/ processor/src/test/java/org/apache/james/imap/processor/base/

Author: norman
Date: Fri Apr 23 17:41:42 2010
New Revision: 937447

URL: http://svn.apache.org/viewvc?rev=937447&view=rev
Log:
Change interfaces to abstract classes to share some code

Modified:
    james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxListener.java
    james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/util/MailboxEventDispatcher.java
    james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java
    james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerFlagsUpdate.java
    james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java

Modified: james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxListener.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxListener.java?rev=937447&r1=937446&r2=937447&view=diff
==============================================================================
--- james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxListener.java (original)
+++ james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxListener.java Fri Apr 23 17:41:42 2010
@@ -45,54 +45,82 @@ public interface MailboxListener {
      * false when open
      */
     boolean isClosed();
-
+    
     /**
      * A mailbox event.
      */
-    public interface Event {
+    public abstract class Event {
+        private final long sessionId;
+
+        public Event(final long sessionId) {
+            this.sessionId = sessionId;
+        }
+        
         /**
          * Gets the id of the session which the event.
          * 
          * @return session id
          */
-        public long getSessionId();
+        public long getSessionId() {
+            return sessionId;
+        }
     }
 
     /**
      * Indicates that mailbox has been deleted.
      */
-    public interface MailboxDeletionEvent extends Event {
+    public abstract class MailboxDeletionEvent extends Event {
+
+        public MailboxDeletionEvent(long sessionId) {
+            super(sessionId);
+        }
     }
     
     
     /**
      * Indicates that a mailbox has been renamed.
      */
-    public interface MailboxRenamed extends Event {
+    public abstract class MailboxRenamed extends Event {
+        public MailboxRenamed(long sessionId) {
+            super(sessionId);
+        }
+
         /**
          * Gets the new name for this mailbox.
          * @return name, not null
          */
-        public String getNewName();
+        public abstract String getNewName();
     }
 
     /**
      * A mailbox event related to a message.
      */
-    public interface MessageEvent extends Event {
+    public abstract class MessageEvent extends Event {
+
+        public MessageEvent(long sessionId) {
+            super(sessionId);
+        }
 
         /**
          * Gets the message UID for the subject of this event.
          * 
          * @return message uid
          */
-        public long getSubjectUid();
+        public abstract long getSubjectUid();
     }
 
-    public abstract class Expunged implements MessageEvent {
+    public abstract class Expunged extends MessageEvent {
+
+        public Expunged(long sessionId) {
+            super(sessionId);
+        }
     }
 
-    public abstract class FlagsUpdated implements MessageEvent {
+    public abstract class FlagsUpdated extends MessageEvent {
+
+        public FlagsUpdated(long sessionId) {
+            super(sessionId);
+        }
 
         /**
          * Gets new flags for this message.
@@ -107,7 +135,11 @@ public interface MailboxListener {
         public abstract Iterator<Flags.Flag> flagsIterator();
     }
 
-    public abstract class Added implements MessageEvent {
+    public abstract class Added extends MessageEvent {
+
+        public Added(long sessionId) {
+            super(sessionId);
+        }
     }
 
 }

Modified: james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/util/MailboxEventDispatcher.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/util/MailboxEventDispatcher.java?rev=937447&r1=937446&r2=937447&view=diff
==============================================================================
--- james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/util/MailboxEventDispatcher.java (original)
+++ james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/util/MailboxEventDispatcher.java Fri Apr 23 17:41:42 2010
@@ -91,44 +91,30 @@ public class MailboxEventDispatcher impl
 
     private final static class AddedImpl extends MailboxListener.Added {
 
-        private final long sessionId;
-
         private final long subjectUid;
 
         public AddedImpl(final long sessionId, final long subjectUid) {
-            super();
-            this.sessionId = sessionId;
+            super(sessionId);
             this.subjectUid = subjectUid;
         }
 
         public long getSubjectUid() {
             return subjectUid;
         }
-
-        public long getSessionId() {
-            return sessionId;
-        }
     }
 
     private final static class ExpungedImpl extends MailboxListener.Expunged {
 
-        private final long sessionId;
-
         private final long subjectUid;
 
         public ExpungedImpl(final long sessionId, final long subjectUid) {
-            super();
-            this.sessionId = sessionId;
+            super(sessionId);
             this.subjectUid = subjectUid;
         }
 
         public long getSubjectUid() {
             return subjectUid;
         }
-
-        public long getSessionId() {
-            return sessionId;
-        }
     }
 
     private final static class FlagsUpdatedImpl extends
@@ -146,8 +132,6 @@ public class MailboxEventDispatcher impl
 
         private static final int NUMBER_OF_SYSTEM_FLAGS = 6;
 
-        private final long sessionId;
-
         private final long subjectUid;
 
         private final boolean[] modifiedFlags;
@@ -170,8 +154,7 @@ public class MailboxEventDispatcher impl
                 boolean deletedUpdated, boolean draftUpdated,
                 boolean flaggedUpdated, boolean recentUpdated,
                 boolean seenUpdated) {
-            super();
-            this.sessionId = sessionId;
+            super(sessionId);
             this.subjectUid = subjectUid;
             this.modifiedFlags = new boolean[NUMBER_OF_SYSTEM_FLAGS];
             this.modifiedFlags[0] = answeredUpdated;
@@ -193,14 +176,6 @@ public class MailboxEventDispatcher impl
 
         /*
          * (non-Javadoc)
-         * @see org.apache.james.imap.mailbox.MailboxListener.Event#getSessionId()
-         */
-        public long getSessionId() {
-            return sessionId;
-        }
-
-        /*
-         * (non-Javadoc)
          * @see org.apache.james.imap.mailbox.MailboxListener.FlagsUpdated#flagsIterator()
          */
         public Iterator<Flag> flagsIterator() {
@@ -269,32 +244,19 @@ public class MailboxEventDispatcher impl
         event(event);
     }
 
-    private static final class MailboxDeletionEventImpl implements
+    private static final class MailboxDeletionEventImpl extends
             MailboxListener.MailboxDeletionEvent {
-        private final long sessionId;
-
         public MailboxDeletionEventImpl(final long sessionId) {
-            super();
-            this.sessionId = sessionId;
-        }
-
-        /*
-         * (non-Javadoc)
-         * @see org.apache.james.imap.mailbox.MailboxListener.Event#getSessionId()
-         */
-        public long getSessionId() {
-            return sessionId;
+            super(sessionId);
         }
     }
 
-    private static final class MailboxRenamedEventImpl implements MailboxListener.MailboxRenamed {
+    private static final class MailboxRenamedEventImpl extends MailboxListener.MailboxRenamed {
         private final String newName;
-        private final long sessionId;
 
         public MailboxRenamedEventImpl(final String newName, final long sessionId) {
-            super();
+            super(sessionId);
             this.newName = newName;
-            this.sessionId = sessionId;
         }
 
         /*
@@ -304,14 +266,6 @@ public class MailboxEventDispatcher impl
         public String getNewName() {
             return newName;
         }
-
-        /*
-         * (non-Javadoc)
-         * @see org.apache.james.imap.mailbox.MailboxListener.Event#getSessionId()
-         */
-        public long getSessionId() {
-            return sessionId;
-        }
     }
 
     /*

Modified: james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java?rev=937447&r1=937446&r2=937447&view=diff
==============================================================================
--- james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java (original)
+++ james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerAdded.java Fri Apr 23 17:41:42 2010
@@ -28,17 +28,13 @@ public class FakeMailboxListenerAdded ex
     public long sessionId;
 
     public FakeMailboxListenerAdded(long subjectUid, long sessionId) {
-        super();
+        super(sessionId);
         this.subjectUid = subjectUid;
-        this.sessionId = sessionId;
     }
 
     public long getSubjectUid() {
         return subjectUid;
     }
 
-    public long getSessionId() {
-        return sessionId;
-    }
 
 }

Modified: james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerFlagsUpdate.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerFlagsUpdate.java?rev=937447&r1=937446&r2=937447&view=diff
==============================================================================
--- james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerFlagsUpdate.java (original)
+++ james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/FakeMailboxListenerFlagsUpdate.java Fri Apr 23 17:41:42 2010
@@ -34,15 +34,12 @@ public class FakeMailboxListenerFlagsUpd
 
     public long subjectUid;
 
-    public long sessionId;
-
     public Flags newFlags;
 
     public FakeMailboxListenerFlagsUpdate(long subjectUid, Flags newFlags,
             long sessionId) {
-        super();
+        super(sessionId);
         this.subjectUid = subjectUid;
-        this.sessionId = sessionId;
         this.newFlags = newFlags;
     }
 
@@ -50,10 +47,6 @@ public class FakeMailboxListenerFlagsUpd
         return subjectUid;
     }
 
-    public long getSessionId() {
-        return sessionId;
-    }
-
     public Iterator<Flag> flagsIterator() {
         return flags.iterator();
     }

Modified: james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java?rev=937447&r1=937446&r2=937447&view=diff
==============================================================================
--- james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java (original)
+++ james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java Fri Apr 23 17:41:42 2010
@@ -19,29 +19,24 @@
 
 package org.apache.james.imap.processor.base;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Iterator;
 
 import javax.mail.Flags;
 
 import org.apache.james.imap.mailbox.MailboxListener;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(JMock.class)
 public class MailboxEventAnalyserTest {
 
     private static final long BASE_SESSION_ID = 99;
 
-    MailboxEventAnalyser analyser;
-
-    private Mockery mockery = new JUnit4Mockery();
+    private MailboxEventAnalyser analyser;
     
     @Before
     public void setUp() throws Exception {
@@ -50,10 +45,8 @@ public class MailboxEventAnalyserTest {
 
     @Test
     public void testShouldBeNoSizeChangeOnOtherEvent() throws Exception {
-        final MailboxListener.Event event = mockery.mock(MailboxListener.Event.class);
-        mockery.checking(new Expectations() {{
-            oneOf(event).getSessionId();will(returnValue(11L));
-        }});
+        final MailboxListener.Event event = new MailboxListener.Event(0) {};
+      
         analyser.event(event);
         assertFalse(analyser.isSizeChanged());
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org