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