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 2011/11/18 13:31:55 UTC

svn commit: r1203623 - in /james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3: core/QuitCmdHandler.java core/WelcomeMessageHandler.java mailbox/AbstractMailbox.java mailbox/Mailbox.java

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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org