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 2008/04/04 23:22:45 UTC
svn commit: r644937 - in /james/server/trunk:
imap-api/src/main/java/org/apache/james/api/imap/display/
imap-api/src/main/java/org/apache/james/api/imap/imap4rev1/
imap-codec-library/src/main/java/org/apache/james/imap/message/request/base/
imap-codec-...
Author: rdonkin
Date: Fri Apr 4 14:22:42 2008
New Revision: 644937
URL: http://svn.apache.org/viewvc?rev=644937&view=rev
Log:
Switch from deprecated to improved fault handling
Removed:
james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/response/imap4rev1/legacy/BadResponse.java
james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/encode/imap4rev1/legacy/BadResponseEncoder.java
james/server/trunk/imap-codec-library/src/test/java/org/apache/james/imapserver/codec/encode/imap4rev1/legacy/BadResponseEncodeTest.java
Modified:
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/display/HumanReadableTextKey.java
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/imap4rev1/Imap4Rev1MessageFactory.java
james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/base/BaseImap4Rev1MessageFactory.java
james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/decode/main/DefaultImapDecoder.java
james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/encode/main/DefaultImapEncoderFactory.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/UnknownRequestImapProcessor.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/main/DefaultImapProcessorFactory.java
Modified: james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/display/HumanReadableTextKey.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/display/HumanReadableTextKey.java?rev=644937&r1=644936&r2=644937&view=diff
==============================================================================
--- james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/display/HumanReadableTextKey.java (original)
+++ james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/display/HumanReadableTextKey.java Fri Apr 4 14:22:42 2008
@@ -58,6 +58,10 @@
= new HumanReadableTextKey("org.apache.james.imap.INVALID_COMMAND",
"failed. Command not valid in this state.");
+ public static final HumanReadableTextKey ILLEGAL_TAG
+ = new HumanReadableTextKey("org.apache.james.imap.ILLEGAL_TAG",
+ "Illegal tag.");
+
public static final HumanReadableTextKey ILLEGAL_ARGUMENTS
= new HumanReadableTextKey("org.apache.james.imap.ILLEGAL_ARGUMENTS",
"failed. Illegal arguments.");
Modified: james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/imap4rev1/Imap4Rev1MessageFactory.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/imap4rev1/Imap4Rev1MessageFactory.java?rev=644937&r1=644936&r2=644937&view=diff
==============================================================================
--- james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/imap4rev1/Imap4Rev1MessageFactory.java (original)
+++ james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/imap4rev1/Imap4Rev1MessageFactory.java Fri Apr 4 14:22:42 2008
@@ -47,7 +47,7 @@
*/
public StatusResponse taggedBad(String tag, ImapCommand command, HumanReadableTextKey displayTextKey);
- public ImapMessage createBadRequestMessage(final String message);
+ public StatusResponse bye(HumanReadableTextKey message);
public ImapMessage createAppendMessage(ImapCommand command, String mailboxName, Flags flags,
Date datetime, MimeMessage message, String tag);
Modified: james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/base/BaseImap4Rev1MessageFactory.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/base/BaseImap4Rev1MessageFactory.java?rev=644937&r1=644936&r2=644937&view=diff
==============================================================================
--- james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/base/BaseImap4Rev1MessageFactory.java (original)
+++ james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/base/BaseImap4Rev1MessageFactory.java Fri Apr 4 14:22:42 2008
@@ -56,7 +56,6 @@
import org.apache.james.imap.message.request.imap4rev1.StoreRequest;
import org.apache.james.imap.message.request.imap4rev1.SubscribeRequest;
import org.apache.james.imap.message.request.imap4rev1.UnsubscribeRequest;
-import org.apache.james.imap.message.response.imap4rev1.legacy.BadResponse;
/**
* Naive, factory creates unpooled instances.
@@ -159,11 +158,7 @@
public ImapMessage createUnsubscribeMessage(ImapCommand command, String mailboxName, String tag) {
return new UnsubscribeRequest(command, mailboxName, tag);
}
-
- public ImapMessage createBadRequestMessage(String message) {
- return new BadResponse(message);
- }
-
+
public ImapMessage createCheckMessage(ImapCommand command, String tag) {
return new CheckRequest(command, tag);
}
@@ -171,5 +166,9 @@
public StatusResponse taggedBad(String tag, ImapCommand command,
HumanReadableTextKey displayTextKey) {
return statusResponseFactory.taggedBad(tag, command, displayTextKey);
+ }
+
+ public StatusResponse bye(HumanReadableTextKey displayTextKey) {
+ return statusResponseFactory.bye(displayTextKey);
}
}
Modified: james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/decode/main/DefaultImapDecoder.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/decode/main/DefaultImapDecoder.java?rev=644937&r1=644936&r2=644937&view=diff
==============================================================================
--- james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/decode/main/DefaultImapDecoder.java (original)
+++ james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/decode/main/DefaultImapDecoder.java Fri Apr 4 14:22:42 2008
@@ -60,8 +60,8 @@
message = decodeCommandTagged(request, logger, tag);
}
catch ( ProtocolException e ) {
- logger.debug("error parsing request", e);
- message = messageFactory.createBadRequestMessage( REQUEST_SYNTAX );
+ logger.debug("Cannot parse tag", e);
+ message = messageFactory.bye(HumanReadableTextKey.ILLEGAL_TAG);
}
return message;
}
Modified: james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/encode/main/DefaultImapEncoderFactory.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/encode/main/DefaultImapEncoderFactory.java?rev=644937&r1=644936&r2=644937&view=diff
==============================================================================
--- james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/encode/main/DefaultImapEncoderFactory.java (original)
+++ james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imapserver/codec/encode/main/DefaultImapEncoderFactory.java Fri Apr 4 14:22:42 2008
@@ -28,7 +28,6 @@
import org.apache.james.imapserver.codec.encode.imap4rev1.FlagsResponseEncoder;
import org.apache.james.imapserver.codec.encode.imap4rev1.RecentResponseEncoder;
import org.apache.james.imapserver.codec.encode.imap4rev1.StatusResponseEncoder;
-import org.apache.james.imapserver.codec.encode.imap4rev1.legacy.BadResponseEncoder;
import org.apache.james.imapserver.codec.encode.imap4rev1.legacy.CapabilityResponseEncoder;
import org.apache.james.imapserver.codec.encode.imap4rev1.server.LSubResponseEncoder;
import org.apache.james.imapserver.codec.encode.imap4rev1.server.ListResponseEncoder;
@@ -55,8 +54,7 @@
final ListResponseEncoder listResponseEncoder = new ListResponseEncoder(lsubResponseEncoder);
final FlagsResponseEncoder flagsResponseEncoder = new FlagsResponseEncoder(listResponseEncoder);
final CapabilityResponseEncoder capabilityResponseEncoder = new CapabilityResponseEncoder(flagsResponseEncoder);
- final BadResponseEncoder result = new BadResponseEncoder(capabilityResponseEncoder);
- return result;
+ return capabilityResponseEncoder;
}
public ImapEncoder buildImapEncoder() {
Modified: james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/UnknownRequestImapProcessor.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/UnknownRequestImapProcessor.java?rev=644937&r1=644936&r2=644937&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/UnknownRequestImapProcessor.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/UnknownRequestImapProcessor.java Fri Apr 4 14:22:42 2008
@@ -21,15 +21,24 @@
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
+import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapMessage;
+import org.apache.james.api.imap.display.HumanReadableTextKey;
import org.apache.james.api.imap.message.request.ImapRequest;
import org.apache.james.api.imap.message.response.ImapResponseMessage;
+import org.apache.james.api.imap.message.response.imap4rev1.StatusResponseFactory;
import org.apache.james.api.imap.process.ImapProcessor;
import org.apache.james.api.imap.process.ImapSession;
-import org.apache.james.imap.message.response.imap4rev1.legacy.BadResponse;
public class UnknownRequestImapProcessor extends AbstractLogEnabled implements ImapProcessor {
+ private final StatusResponseFactory factory;
+
+ public UnknownRequestImapProcessor(StatusResponseFactory factory) {
+ super();
+ this.factory = factory;
+ }
+
public ImapResponseMessage process(ImapMessage message, ImapSession session) {
Logger logger = getLogger();
if (logger != null && logger.isDebugEnabled()) {
@@ -38,9 +47,11 @@
final ImapResponseMessage result;
if (message instanceof ImapRequest) {
ImapRequest request = (ImapRequest) message;
- result = new BadResponse("Unknown command.", request.getTag());
+ final String tag = request.getTag();
+ final ImapCommand command = request.getCommand();
+ result = factory.taggedBad(tag, command, HumanReadableTextKey.UNKNOWN_COMMAND);
} else {
- result = new BadResponse("Unknown command.");
+ result = factory.untaggedBad(HumanReadableTextKey.UNKNOWN_COMMAND);
}
return result;
}
Modified: james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/main/DefaultImapProcessorFactory.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/main/DefaultImapProcessorFactory.java?rev=644937&r1=644936&r2=644937&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/main/DefaultImapProcessorFactory.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/main/DefaultImapProcessorFactory.java Fri Apr 4 14:22:42 2008
@@ -40,7 +40,7 @@
public static final ImapProcessor createDefaultProcessor(final UsersRepository usersRepository,
final MailboxManagerProvider mailboxManagerProvider, final UserMetaDataRespository userMetaDataRepository) {
final StatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
- final UnknownRequestImapProcessor unknownRequestImapProcessor = new UnknownRequestImapProcessor();
+ final UnknownRequestImapProcessor unknownRequestImapProcessor = new UnknownRequestImapProcessor(statusResponseFactory);
final IMAPSubscriber subscriber = new UserMetaDataIMAPSubscriber(userMetaDataRepository);
final ImapProcessor imap4rev1Chain = Imap4Rev1ProcessorFactory.createDefaultChain(unknownRequestImapProcessor,
usersRepository, mailboxManagerProvider, statusResponseFactory, subscriber);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org