Author: norman
Date: Fri Nov 18 12:31:55 2011
New Revision: 1203623

URL: http://svn.apache.org/viewvc?rev=1203623&view=rev
Log:
Add close method to Mailbox and allow easy reuse of WelcomeMessageHandler. See 
PROTOCOLS-2

Modified:
    
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
    
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java
    
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/AbstractMailbox.java
    
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java

Modified: 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java?rev=1203623&r1=1203622&r2=1203623&view=diff
==============================================================================
--- 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
 (original)
+++ 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
 Fri Nov 18 12:31:55 2011
@@ -19,6 +19,7 @@
 
 package org.apache.james.protocols.pop3.core;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -49,8 +50,9 @@ public class QuitCmdHandler implements C
             return response;
         }
         List<Long> toBeRemoved = (List<Long>) 
session.getState().get(POP3Session.DELETED_UID_LIST);
+        Mailbox mailbox = session.getUserMailbox();
         try {
-            Mailbox mailbox = session.getUserMailbox();
+            ;
             long uids[] = new long[toBeRemoved.size()];
             for (int i = 0;i < toBeRemoved.size(); i++) {
                uids[i] = toBeRemoved.get(i);
@@ -60,9 +62,13 @@ public class QuitCmdHandler implements C
         } catch (Exception ex) {
             response = new POP3Response(POP3Response.ERR_RESPONSE, "Some 
deleted messages were not removed");
             session.getLogger().error("Some deleted messages were not 
removed", ex);
-        }
+        }     
         response.setEndSession(true);
-      
+        try {
+                       mailbox.close();
+               } catch (IOException e) {
+                       // ignore on close
+               }
         return response;
     }
 

Modified: 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java?rev=1203623&r1=1203622&r2=1203623&view=diff
==============================================================================
--- 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java
 (original)
+++ 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java
 Fri Nov 18 12:31:55 2011
@@ -26,9 +26,6 @@ import org.apache.james.protocols.pop3.P
 import org.apache.james.protocols.pop3.POP3Session;
 
 public class WelcomeMessageHandler implements ConnectHandler<POP3Session> {
-    /** POP3 Server identification string used in POP3 headers */
-    private static final String softwaretype = "JAMES POP3 Server ";// +
-                                                                    // 
Constants.SOFTWARE_VERSION;
 
     /**
      * @see org.apache.james.protocols.api.handler.ConnectHandler
@@ -38,9 +35,13 @@ public class WelcomeMessageHandler imple
         StringBuilder responseBuffer = new StringBuilder();
         // Initially greet the connector
         // Format is: Sat, 24 Jan 1998 13:16:09 -0500
-        
responseBuffer.append(session.getConfigurationData().getHelloName()).append(" 
POP3 server (").append(softwaretype).append(") ready ");
+        
responseBuffer.append(session.getConfigurationData().getHelloName()).append(" 
POP3 server (").append(getProductName()).append(") ready ");
         POP3Response response = new POP3Response(POP3Response.OK_RESPONSE, 
responseBuffer.toString());
         return response;
     }
 
+    protected String getProductName() {
+        return "JAMES Protocols POP3 Server";
+    }
+    
 }

Modified: 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/AbstractMailbox.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/AbstractMailbox.java?rev=1203623&r1=1203622&r2=1203623&view=diff
==============================================================================
--- 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/AbstractMailbox.java
 (original)
+++ 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/AbstractMailbox.java
 Fri Nov 18 12:31:55 2011
@@ -30,4 +30,9 @@ public abstract class AbstractMailbox im
                return new SequenceInputStream(getMessageHeaders(uid), 
getMessageBody(uid));
        }
 
+       @Override
+       public void close() throws IOException {
+               // do nothing
+       }
+
 }

Modified: 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java?rev=1203623&r1=1203622&r2=1203623&view=diff
==============================================================================
--- 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java
 (original)
+++ 
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java
 Fri Nov 18 12:31:55 2011
@@ -80,5 +80,13 @@ public interface Mailbox {
         * @throws IOException
         */
        String getIdentifier() throws IOException;
+       
+       
+       /**
+        * Close the mailbox, Any futher attempt to access or change the {@link 
Mailbox}'s content will fail
+        * 
+        * @throws IOException
+        */
+       void close() throws IOException;
 
 }



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

Reply via email to