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 rd...@apache.org on 2007/05/26 22:48:14 UTC
svn commit: r541935 [3/4] - in
/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src:
main/java/org/apache/james/experimental/imapserver/
main/java/org/apache/james/experimental/imapserver/decode/
main/java/org/apache/james/experi...
Copied: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java (from r541882, james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExamineAndSelectProcessor.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java?view=diff&rev=541935&p1=james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExamineAndSelectProcessor.java&r1=541882&p2=james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExamineAndSelectProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java Sat May 26 13:48:09 2007
@@ -21,61 +21,27 @@
import javax.mail.Flags;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
-import org.apache.james.experimental.imapserver.message.request.imap4rev1.ExamineRequest;
-import org.apache.james.experimental.imapserver.message.request.imap4rev1.SelectRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.ExamineAndSelectResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
-public class ExamineAndSelectProcessor extends AbstractImapRequestProcessor {
+abstract public class AbstractMailboxSelectionProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof SelectRequest) {
- final SelectRequest request = (SelectRequest) message;
- result = doProcess(request, session, tag, command);
-
- } else if (message instanceof ExamineRequest) {
- final ExamineRequest request = (ExamineRequest) message;
- result = doProcess(request, session, tag, command);
-
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected SelectRequest or ExamineRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Examine and Select processor.");
- }
-
- return result;
- }
-
- private ImapResponseMessage doProcess(ExamineRequest request, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final String mailboxName = request.getMailboxName();
- final ImapResponseMessage result = doProcess(mailboxName, false, session, tag, command);
- return result;
- }
+ public AbstractMailboxSelectionProcessor(final ImapProcessor next) {
+ super(next);
+ }
- private ImapResponseMessage doProcess(SelectRequest request, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final String mailboxName = request.getMailboxName();
- final ImapResponseMessage result = doProcess(mailboxName, false, session, tag, command);
- return result;
- }
-
- private ImapResponseMessage doProcess(String mailboxName, boolean isExamine,
+ protected final ImapResponseMessage doProcess(String mailboxName, boolean isExamine,
ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
ImapResponseMessage result;
session.deselect();
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java Sat May 26 13:48:09 2007
@@ -23,69 +23,74 @@
import javax.mail.internet.MimeMessage;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.AppendRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
-
public class AppendProcessor extends AbstractImapRequestProcessor {
-
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof AppendRequest) {
- final AppendRequest request = (AppendRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected AppendRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Append processor.");
- }
-
- return result;
- }
-
- private ImapResponseMessage doProcess(AppendRequest request, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final String mailboxName = request.getMailboxName();
- final MimeMessage message = request.getMessage();
- final Date datetime = request.getDatetime();
- final ImapResponseMessage result = doProcess(mailboxName, message, datetime, session, tag, command);
- return result;
- }
-
- private ImapResponseMessage doProcess(String mailboxName, MimeMessage message, Date datetime,
- ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- // TODO: Flags are ignore: check whether the specification says that they should be processed
- ImapMailboxSession mailbox = null;
+
+ public AppendProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof AppendRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message,
+ ImapSession session, String tag, ImapCommand command)
+ throws MailboxException, AuthorizationException, ProtocolException {
+ final AppendRequest request = (AppendRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag,
+ command);
+ return result;
+ }
+
+ private ImapResponseMessage doProcess(AppendRequest request,
+ ImapSession session, String tag, ImapCommand command)
+ throws MailboxException, AuthorizationException, ProtocolException {
+ final String mailboxName = request.getMailboxName();
+ final MimeMessage message = request.getMessage();
+ final Date datetime = request.getDatetime();
+ final ImapResponseMessage result = doProcess(mailboxName, message,
+ datetime, session, tag, command);
+ return result;
+ }
+
+ private ImapResponseMessage doProcess(String mailboxName,
+ MimeMessage message, Date datetime, ImapSession session,
+ String tag, ImapCommand command) throws MailboxException,
+ AuthorizationException, ProtocolException {
+ // TODO: Flags are ignore: check whether the specification says that
+ // they should be processed
+ ImapMailboxSession mailbox = null;
try {
mailboxName = session.buildFullName(mailboxName);
- mailbox = session.getMailboxManager().getImapMailboxSession(mailboxName);
- }
- catch ( MailboxManagerException mme ) {
+ mailbox = session.getMailboxManager().getImapMailboxSession(
+ mailboxName);
+ } catch (MailboxManagerException mme) {
MailboxException me = new MailboxException(mme);
- me.setResponseCode( "TRYCREATE" );
+ me.setResponseCode("TRYCREATE");
throw me;
}
try {
- mailbox.appendMessage( message, datetime ,0);
+ mailbox.appendMessage(message, datetime, 0);
} catch (MailboxManagerException e) {
// TODO why not TRYCREATE?
throw new MailboxException(e);
}
return new CommandCompleteResponse(false, command, tag);
- }
+ }
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AuthenticateProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AuthenticateProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AuthenticateProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AuthenticateProcessor.java Sat May 26 13:48:09 2007
@@ -19,36 +19,33 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.AuthenticateRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandFailedResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
public class AuthenticateProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof AuthenticateRequest) {
- final AuthenticateRequest request = (AuthenticateRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected AuthenticateRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Authenticate processor.");
- }
-
+ public AuthenticateProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof AuthenticateRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final AuthenticateRequest request = (AuthenticateRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CapabilityProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CapabilityProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CapabilityProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CapabilityProcessor.java Sat May 26 13:48:09 2007
@@ -19,35 +19,35 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.CapabilityRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CapabilityResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
public class CapabilityProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof CapabilityRequest) {
- final CapabilityRequest request = (CapabilityRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected CapabilityRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Capability processor.");
- }
+ //TODO: capability text should be injected
+
+ public CapabilityProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof CapabilityRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final CapabilityRequest request = (CapabilityRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CheckProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CheckProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CheckProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CheckProcessor.java Sat May 26 13:48:09 2007
@@ -19,35 +19,33 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.CheckRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
public class CheckProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof CheckRequest) {
- final CheckRequest request = (CheckRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected CheckRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Check processor.");
- }
+ public CheckProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof CheckRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final CheckRequest request = (CheckRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CloseProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CloseProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CloseProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CloseProcessor.java Sat May 26 13:48:09 2007
@@ -19,17 +19,17 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.CloseRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CloseResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
@@ -39,19 +39,17 @@
public class CloseProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof CloseRequest) {
- final CloseRequest request = (CloseRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected CloseRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Close processor.");
- }
+ public CloseProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof CloseRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final CloseRequest request = (CloseRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java Sat May 26 13:48:09 2007
@@ -19,18 +19,18 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
import org.apache.james.experimental.imapserver.message.IdRange;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.CopyRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.GeneralMessageSet;
import org.apache.james.mailboxmanager.MailboxManagerException;
@@ -40,20 +40,17 @@
public class CopyProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof CopyRequest) {
- final CopyRequest request = (CopyRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected CopyRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Copy processor.");
- }
-
+ public CopyProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof CopyRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final CopyRequest request = (CopyRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java Sat May 26 13:48:09 2007
@@ -19,37 +19,35 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.CreateRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
public class CreateProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof CreateRequest) {
- final CreateRequest request = (CreateRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected CreateRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Create processor.");
- }
-
+ public CreateProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof CreateRequest);
+ }
+
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final CreateRequest request = (CreateRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java Sat May 26 13:48:09 2007
@@ -19,37 +19,34 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.DeleteRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
public class DeleteProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof DeleteRequest) {
- final DeleteRequest request = (DeleteRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected DeleteRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Delete processor.");
- }
-
+ public DeleteProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof DeleteRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final DeleteRequest request = (DeleteRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Added: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExamineProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExamineProcessor.java?view=auto&rev=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExamineProcessor.java (added)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExamineProcessor.java Sat May 26 13:48:09 2007
@@ -0,0 +1,56 @@
+/****************************************************************
+ * 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.experimental.imapserver.processor.imap4rev1;
+
+import org.apache.james.experimental.imapserver.AuthorizationException;
+import org.apache.james.experimental.imapserver.ImapSession;
+import org.apache.james.experimental.imapserver.ProtocolException;
+import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
+import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
+import org.apache.james.experimental.imapserver.message.request.imap4rev1.ExamineRequest;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.imapserver.store.MailboxException;
+
+
+public class ExamineProcessor extends AbstractMailboxSelectionProcessor {
+
+ public ExamineProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof ExamineRequest);
+ }
+
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final ExamineRequest request = (ExamineRequest) message;
+ final ImapResponseMessage result= doProcess(request, session, tag, command);
+ return result;
+ }
+
+ private ImapResponseMessage doProcess(ExamineRequest request, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final String mailboxName = request.getMailboxName();
+ final ImapResponseMessage result = doProcess(mailboxName, true, session, tag, command);
+ return result;
+ }
+}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExpungeProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExpungeProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExpungeProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ExpungeProcessor.java Sat May 26 13:48:09 2007
@@ -19,18 +19,18 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.ExpungeRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandFailedResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
@@ -40,20 +40,17 @@
public class ExpungeProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof ExpungeRequest) {
- final ExpungeRequest request = (ExpungeRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected ExpungeRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Expunge processor.");
- }
-
+ public ExpungeProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof ExpungeRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final ExpungeRequest request = (ExpungeRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/FetchProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/FetchProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/FetchProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/FetchProcessor.java Sat May 26 13:48:09 2007
@@ -31,7 +31,6 @@
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.core.MimeMessageWrapper;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapConstants;
@@ -41,12 +40,13 @@
import org.apache.james.experimental.imapserver.message.BodyFetchElement;
import org.apache.james.experimental.imapserver.message.FetchData;
import org.apache.james.experimental.imapserver.message.IdRange;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.FetchRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.FetchResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.imapserver.store.MessageFlags;
import org.apache.james.imapserver.store.SimpleMessageAttributes;
@@ -62,20 +62,17 @@
public class FetchProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof FetchRequest) {
- final FetchRequest request = (FetchRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected FetchRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Fetch processor.");
- }
-
+ public FetchProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof FetchRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final FetchRequest request = (FetchRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Added: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java?view=auto&rev=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java (added)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java Sat May 26 13:48:09 2007
@@ -0,0 +1,36 @@
+package org.apache.james.experimental.imapserver.processor.imap4rev1;
+
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+
+/**
+ * TODO: perhaps this should be a POJO
+ */
+public class Imap4Rev1ProcessorFactory {
+
+ public static final ImapProcessor createDefaultChain(final ImapProcessor chainEndProcessor) {
+ final LogoutProcessor logoutProcessor = new LogoutProcessor(chainEndProcessor);
+ final CapabilityProcessor capabilityProcessor = new CapabilityProcessor(logoutProcessor);
+ final CheckProcessor checkProcessor = new CheckProcessor(capabilityProcessor);
+ final LoginProcessor loginProcessor = new LoginProcessor(checkProcessor);
+ final RenameProcessor renameProcessor = new RenameProcessor(loginProcessor);
+ final DeleteProcessor deleteProcessor = new DeleteProcessor(renameProcessor);
+ final CreateProcessor createProcessor = new CreateProcessor(deleteProcessor);
+ final CloseProcessor closeProcessor = new CloseProcessor(createProcessor);
+ final UnsubscribeProcessor unsubscribeProcessor = new UnsubscribeProcessor(closeProcessor);
+ final SubscribeProcessor subscribeProcessor = new SubscribeProcessor(unsubscribeProcessor);
+ final CopyProcessor copyProcessor = new CopyProcessor(subscribeProcessor);
+ final AuthenticateProcessor authenticateProcessor = new AuthenticateProcessor(copyProcessor);
+ final ExpungeProcessor expungeProcessor = new ExpungeProcessor(authenticateProcessor);
+ final ExamineProcessor examineProcessor = new ExamineProcessor(expungeProcessor);
+ final AppendProcessor appendProcessor = new AppendProcessor(examineProcessor);
+ final StoreProcessor storeProcessor = new StoreProcessor(appendProcessor);
+ final NoopProcessor noopProcessor = new NoopProcessor(storeProcessor);
+ final StatusProcessor statusProcessor = new StatusProcessor(noopProcessor);
+ final LsubProcessor lsubProcessor = new LsubProcessor(statusProcessor);
+ final ListProcessor listProcessor = new ListProcessor(lsubProcessor);
+ final SearchProcessor searchProcessor = new SearchProcessor(listProcessor);
+ final SelectProcessor selectProcessor = new SelectProcessor(searchProcessor);
+ final ImapProcessor result = new FetchProcessor(selectProcessor);
+ return result;
+ }
+}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java Sat May 26 13:48:09 2007
@@ -19,40 +19,32 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
-import org.apache.james.experimental.imapserver.ImapConstants;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.ListRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.ListResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.ListResult;
-import org.apache.james.mailboxmanager.MailboxManagerException;
-import org.apache.james.mailboxmanager.impl.ListResultImpl;
public class ListProcessor extends AbstractListingProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof ListRequest) {
- final ListRequest request = (ListRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected ListRequest, was " + message);
- }
- result = new BadResponse("Command unknown by List processor.");
- }
-
+ public ListProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof ListRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final ListRequest request = (ListRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LoginProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LoginProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LoginProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LoginProcessor.java Sat May 26 13:48:09 2007
@@ -19,38 +19,35 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.LoginRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandFailedResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.services.User;
public class LoginProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof LoginRequest) {
- final LoginRequest request = (LoginRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected LoginRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Login processor.");
- }
-
+ public LoginProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof LoginRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final LoginRequest request = (LoginRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LogoutProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LogoutProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LogoutProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LogoutProcessor.java Sat May 26 13:48:09 2007
@@ -19,36 +19,34 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.LogoutRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.LogoutResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
public class LogoutProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof LogoutRequest) {
- final LogoutRequest request = (LogoutRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected LogoutRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Logout processor.");
- }
-
+ public LogoutProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof LogoutRequest);
+ }
+
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final LogoutRequest request = (LogoutRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java Sat May 26 13:48:09 2007
@@ -19,35 +19,33 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.LsubRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.ListResult;
public class LsubProcessor extends AbstractListingProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof LsubRequest) {
- final LsubRequest request = (LsubRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected LsubRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Lsub processor.");
- }
-
+ public LsubProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof LsubRequest);
+ }
+
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final LsubRequest request = (LsubRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/NoopProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/NoopProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/NoopProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/NoopProcessor.java Sat May 26 13:48:09 2007
@@ -19,35 +19,34 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.NoopRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
public class NoopProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof NoopRequest) {
- final NoopRequest request = (NoopRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected NoopRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Noop processor.");
- }
+ public NoopProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof NoopRequest);
+ }
+
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final NoopRequest request = (NoopRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
@@ -58,6 +57,7 @@
private ImapResponseMessage doProcess(ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
// TODO: untagged responses?
+ // TODO: NOOP is used to check for new mail: need to return untagged responses
final CommandCompleteResponse result = new CommandCompleteResponse(false, command, tag);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java Sat May 26 13:48:09 2007
@@ -19,37 +19,34 @@
package org.apache.james.experimental.imapserver.processor.imap4rev1;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.RenameRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.CommandCompleteResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
public class RenameProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof RenameRequest) {
- final RenameRequest request = (RenameRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected RenameRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Rename processor.");
- }
-
+ public RenameProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof RenameRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final RenameRequest request = (RenameRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SearchProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SearchProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SearchProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SearchProcessor.java Sat May 26 13:48:09 2007
@@ -21,18 +21,18 @@
import javax.mail.search.SearchTerm;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapConstants;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.SearchRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.SearchResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
@@ -42,20 +42,17 @@
public class SearchProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof SearchRequest) {
- final SearchRequest request = (SearchRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected SearchRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Search processor.");
- }
-
+ public SearchProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof SearchRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final SearchRequest request = (SearchRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Added: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SelectProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SelectProcessor.java?view=auto&rev=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SelectProcessor.java (added)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SelectProcessor.java Sat May 26 13:48:09 2007
@@ -0,0 +1,56 @@
+/****************************************************************
+ * 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.experimental.imapserver.processor.imap4rev1;
+
+import org.apache.james.experimental.imapserver.AuthorizationException;
+import org.apache.james.experimental.imapserver.ImapSession;
+import org.apache.james.experimental.imapserver.ProtocolException;
+import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
+import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
+import org.apache.james.experimental.imapserver.message.request.imap4rev1.SelectRequest;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.imapserver.store.MailboxException;
+
+
+public class SelectProcessor extends AbstractMailboxSelectionProcessor {
+
+ public SelectProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof SelectRequest);
+ }
+
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final SelectRequest request = (SelectRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
+ return result;
+ }
+
+ private ImapResponseMessage doProcess(SelectRequest request, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final String mailboxName = request.getMailboxName();
+ final ImapResponseMessage result = doProcess(mailboxName, false, session, tag, command);
+ return result;
+ }
+}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java Sat May 26 13:48:09 2007
@@ -25,13 +25,14 @@
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
import org.apache.james.experimental.imapserver.message.StatusDataItems;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.StatusRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.StatusResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
@@ -39,20 +40,17 @@
public class StatusProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof StatusRequest) {
- final StatusRequest request = (StatusRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected StatusRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Status processor.");
- }
-
+ public StatusProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof StatusRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final StatusRequest request = (StatusRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
Modified: james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StoreProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StoreProcessor.java?view=diff&rev=541935&r1=541934&r2=541935
==============================================================================
--- james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StoreProcessor.java (original)
+++ james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StoreProcessor.java Sat May 26 13:48:09 2007
@@ -21,19 +21,19 @@
import javax.mail.Flags;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.james.experimental.imapserver.AuthorizationException;
import org.apache.james.experimental.imapserver.ImapSession;
import org.apache.james.experimental.imapserver.ProtocolException;
import org.apache.james.experimental.imapserver.commands.ImapCommand;
import org.apache.james.experimental.imapserver.message.IdRange;
+import org.apache.james.experimental.imapserver.message.ImapMessage;
import org.apache.james.experimental.imapserver.message.ImapResponseMessage;
import org.apache.james.experimental.imapserver.message.StoreDirective;
-import org.apache.james.experimental.imapserver.message.request.AbstractImapRequest;
+import org.apache.james.experimental.imapserver.message.request.ImapRequest;
import org.apache.james.experimental.imapserver.message.request.imap4rev1.StoreRequest;
-import org.apache.james.experimental.imapserver.message.response.imap4rev1.BadResponse;
import org.apache.james.experimental.imapserver.message.response.imap4rev1.StoreResponse;
-import org.apache.james.experimental.imapserver.processor.AbstractImapRequestProcessor;
+import org.apache.james.experimental.imapserver.processor.ImapProcessor;
+import org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.GeneralMessageSet;
import org.apache.james.mailboxmanager.MailboxListener;
@@ -44,20 +44,17 @@
public class StoreProcessor extends AbstractImapRequestProcessor {
- protected ImapResponseMessage doProcess(AbstractImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
- final ImapResponseMessage result;
- if (message instanceof StoreRequest) {
- final StoreRequest request = (StoreRequest) message;
- result = doProcess(request, session, tag, command);
- } else {
- final Logger logger = getLogger();
- if (logger != null)
- {
- logger.debug("Expected StoreRequest, was " + message);
- }
- result = new BadResponse("Command unknown by Store processor.");
- }
-
+ public StoreProcessor(final ImapProcessor next) {
+ super(next);
+ }
+
+ protected boolean isAcceptable(ImapMessage message) {
+ return (message instanceof StoreRequest);
+ }
+
+ protected ImapResponseMessage doProcess(ImapRequest message, ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ final StoreRequest request = (StoreRequest) message;
+ final ImapResponseMessage result = doProcess(request, session, tag, command);
return result;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org