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/03/06 18:59:12 UTC
svn commit: r515230 [3/4] - in /james/server/sandbox/seda-imap/src:
java/org/apache/james/imapserver/ java/org/apache/james/imapserver/commands/
java/org/apache/james/imapserver/decode/
java/org/apache/james/imapserver/encode/ java/org/apache/james/ima...
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/decode/UnsubscribeCommandParser.java (from r514102, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/UnsubscribeCommandParser.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/decode/UnsubscribeCommandParser.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/UnsubscribeCommandParser.java&r1=514102&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/decode/UnsubscribeCommandParser.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/UnsubscribeCommandParser.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/decode/UnsubscribeCommandParser.java Tue Mar 6 09:59:02 2007
@@ -16,21 +16,32 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.decode;
import org.apache.james.imapserver.ImapRequestLineReader;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
+import org.apache.james.imapserver.commands.ImapCommandFactory;
+import org.apache.james.imapserver.message.ImapCommandMessage;
-class UnsubscribeCommandParser extends AbstractImapCommandParser {
+class UnsubscribeCommandParser extends AbstractImapCommandParser implements InitialisableCommandFactory {
public UnsubscribeCommandParser() {
- super(new UnsubscribeCommand());
}
- protected AbstractImapCommandMessage decode(ImapCommand command, ImapRequestLineReader request, String tag) throws ProtocolException {
+ /**
+ * @see org.apache.james.imapserver.decode.InitialisableCommandFactory#init(org.apache.james.imapserver.commands.ImapCommandFactory)
+ */
+ public void init(ImapCommandFactory factory)
+ {
+ final ImapCommand command = factory.getUnsubscribe();
+ setCommand(command);
+ }
+
+ protected ImapCommandMessage decode(ImapCommand command, ImapRequestLineReader request, String tag) throws ProtocolException {
final String mailboxName = mailbox( request );
endLine( request );
- final UnsubscribeCommandMessage result = new UnsubscribeCommandMessage(command, mailboxName, tag);
+ final ImapCommandMessage result = getMessageFactory().createUnsubscribeMessage(command, mailboxName, tag);
return result;
}
Modified: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/encode/RecordingImapResponseWriter.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/encode/RecordingImapResponseWriter.java?view=diff&rev=515230&r1=515229&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/encode/RecordingImapResponseWriter.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/encode/RecordingImapResponseWriter.java Tue Mar 6 09:59:02 2007
@@ -25,8 +25,8 @@
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapResponseWriter;
import org.apache.james.imapserver.ImapSession;
-import org.apache.james.imapserver.commands.ImapCommandMessage;
-import org.apache.james.imapserver.commands.ImapResponseMessage;
+import org.apache.james.imapserver.message.ImapCommandMessage;
+import org.apache.james.imapserver.message.ImapResponseMessage;
public class RecordingImapResponseWriter implements ImapResponseMessage,
ImapCommandMessage, ImapResponseWriter {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractCommandResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AbstractCommandResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractCommandResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AbstractCommandResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractCommandResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AbstractCommandResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractCommandResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -17,15 +17,16 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
-public abstract class AbstractCommandResponseMessage extends AbstractLogEnabled implements ImapResponseMessage {
+abstract class AbstractCommandResponseMessage extends AbstractLogEnabled implements ImapResponseMessage {
private final ImapCommand command;
private final String tag;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractImapCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AbstractImapCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractImapCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AbstractImapCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractImapCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AbstractImapCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AbstractImapCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,13 +16,14 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
abstract class AbstractImapCommandMessage extends AbstractLogEnabled implements ImapCommandMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AppendCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AppendCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AppendCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AppendCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AppendCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AppendCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AppendCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import java.util.Date;
@@ -24,6 +24,7 @@
import javax.mail.internet.MimeMessage;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AuthenticateCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AuthenticateCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AuthenticateCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AuthenticateCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AuthenticateCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/AuthenticateCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/AuthenticateCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class AuthenticateCommandMessage extends AbstractImapCommandMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BadResponseMessage.java (from r514102, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/BadResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BadResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/BadResponseMessage.java&r1=514102&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BadResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/BadResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BadResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
@@ -26,7 +26,7 @@
* Carries the response to a request with bad syntax..
*
*/
-public class BadResponseMessage implements ImapCommandMessage,
+class BadResponseMessage implements ImapCommandMessage,
ImapResponseMessage {
private final String message;
Added: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BaseImapMessageFactory.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BaseImapMessageFactory.java?view=auto&rev=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BaseImapMessageFactory.java (added)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BaseImapMessageFactory.java Tue Mar 6 09:59:02 2007
@@ -0,0 +1,132 @@
+/****************************************************************
+ * 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.imapserver.message;
+
+import java.util.Date;
+
+import javax.mail.Flags;
+import javax.mail.internet.MimeMessage;
+import javax.mail.search.SearchTerm;
+
+import org.apache.james.imapserver.commands.ImapCommand;
+
+/**
+ * Naive, factory creates unpooled instances.
+ */
+public class BaseImapMessageFactory implements ImapMessageFactory {
+
+ public ImapCommandMessage createErrorMessage(String message, String tag) {
+ return new ErrorResponseMessage( message, tag );
+ }
+
+ public ImapCommandMessage createAppendMessage(ImapCommand command, String mailboxName, Flags flags, Date datetime, MimeMessage message, String tag) {
+ return new AppendCommandMessage(command, mailboxName,
+ flags, datetime, message, tag);
+ }
+
+ public ImapCommandMessage createAuthenticateMessage(ImapCommand command, String authType, String tag) {
+ return new AuthenticateCommandMessage(command, authType, tag);
+ }
+
+ public ImapCommandMessage createCapabilityMessage(ImapCommand command, String tag) {
+ return new CapabilityCommandMessage(command, tag);
+ }
+
+ public ImapCommandMessage createCompleteMessage(ImapCommand command, boolean useUids, String tag) {
+ return new CompleteCommandMessage(command, useUids, tag);
+ }
+
+ public ImapCommandMessage createCloseMessage(ImapCommand command, String tag) {
+ return new CloseCommandMessage(command, tag);
+ }
+
+ public ImapCommandMessage createCopyMessage(ImapCommand command, IdRange[] idSet, String mailboxName, boolean useUids, String tag) {
+ return new CopyCommandMessage(command, idSet, mailboxName, useUids, tag);
+ }
+
+ public ImapCommandMessage createCreateMessage(ImapCommand command, String mailboxName, String tag) {
+ return new CreateCommandMessage(command, mailboxName, tag);
+ }
+
+ public ImapCommandMessage createDeleteMessage(ImapCommand command, String mailboxName, String tag) {
+ return new DeleteCommandMessage( command, mailboxName, tag );
+ }
+
+ public ImapCommandMessage createExamineMessage(ImapCommand command, String mailboxName, String tag) {
+ return new SelectCommandMessage(command, mailboxName, true, tag);
+ }
+
+ public ImapCommandMessage createExpungeMessage(ImapCommand command, String tag) {
+ return new ExpungeCommandMessage(command, tag);
+ }
+
+ public ImapCommandMessage createFetchMessage(ImapCommand command, boolean useUids, IdRange[] idSet, FetchRequest fetch, String tag) {
+ return new FetchCommandMessage(command, useUids, idSet, fetch, tag);
+ }
+
+ public ImapCommandMessage createListMessage(ImapCommand command, String referenceName, String mailboxPattern, String tag) {
+ return new ListCommandMessage(command, referenceName, mailboxPattern, tag);
+ }
+
+ public ImapCommandMessage createLoginMessage(ImapCommand command, String userid, String password, String tag) {
+ return new LoginCommandMessage(command, userid, password, tag);
+ }
+
+ public ImapCommandMessage createLogoutMessage(ImapCommand command, String tag) {
+ return new LogoutCommandMessage(command, tag);
+ }
+
+ public ImapCommandMessage createLsubMessage(ImapCommand command, String referenceName, String mailboxPattern, String tag) {
+ return new LsubListCommandMessage(command, referenceName, mailboxPattern, tag);
+ }
+
+ public ImapCommandMessage createRenameMessage(ImapCommand command, String existingName, String newName, String tag) {
+ return new RenameCommandMessage(command, existingName, newName, tag);
+ }
+
+ public ImapCommandMessage createSearchImapMessage(ImapCommand command, SearchTerm searchTerm, boolean useUids, String tag) {
+ return new SearchImapCommandMessage(command, searchTerm, useUids, tag);
+ }
+
+ public ImapCommandMessage createSelectMessage(ImapCommand command, String mailboxName, String tag) {
+ return new SelectCommandMessage(command, mailboxName, false, tag);
+ }
+
+ public ImapCommandMessage createStatusMessage(ImapCommand command, String mailboxName, StatusDataItems statusDataItems, String tag) {
+ return new StatusCommandMessage(command, mailboxName, statusDataItems, tag);
+ }
+
+ public ImapCommandMessage createStoreMessage(ImapCommand command, IdRange[] idSet, StoreDirective directive, Flags flags, boolean useUids, String tag) {
+ return new StoreCommandMessage(command, idSet, directive, flags, useUids, tag);
+ }
+
+ public ImapCommandMessage createSubscribeMessage(ImapCommand command, String mailboxName, String tag) {
+ return new SubscribeCommandMessage(command, mailboxName, tag);
+ }
+
+ public ImapCommandMessage createUnsubscribeMessage(ImapCommand command, String mailboxName, String tag) {
+ return new UnsubscribeCommandMessage(command, mailboxName, tag);
+ }
+
+ public ImapCommandMessage createBadRequestMessage(String message) {
+ return new BadResponseMessage(message);
+ }
+
+
+}
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BodyFetchElement.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/BodyFetchElement.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BodyFetchElement.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/BodyFetchElement.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BodyFetchElement.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/BodyFetchElement.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/BodyFetchElement.java Tue Mar 6 09:59:02 2007
@@ -16,9 +16,9 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
-class BodyFetchElement
+public class BodyFetchElement
{
private String name;
private String sectionIdentifier;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CapabilityCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CapabilityCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CapabilityCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class CapabilityCommandMessage extends AbstractImapCommandMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityReponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CapabilityReponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityReponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CapabilityReponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityReponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CapabilityReponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CapabilityReponseMessage.java Tue Mar 6 09:59:02 2007
@@ -16,10 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
+import org.apache.james.imapserver.ImapConstants;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class CapabilityReponseMessage extends AbstractCommandResponseMessage {
@@ -29,7 +31,7 @@
}
void doEncode(ImapResponse response, ImapSession session, ImapCommand command, String tag) throws MailboxException {
- response.untaggedResponse( CapabilityCommand.CAPABILITY_RESPONSE );
+ response.untaggedResponse( ImapConstants.CAPABILITY_RESPONSE );
session.unsolicitedResponses( response, false);
response.commandComplete( command , tag );
}
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CloseCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CloseCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CloseCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CloseResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CloseResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CloseResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CloseResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -16,10 +16,11 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class CloseResponseMessage extends AbstractCommandResponseMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandCompleteResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CommandCompleteResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandCompleteResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CommandCompleteResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandCompleteResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CommandCompleteResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandCompleteResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -17,13 +17,14 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
-public class CommandCompleteResponseMessage extends AbstractCommandResponseMessage implements ImapResponseMessage {
+class CommandCompleteResponseMessage extends AbstractCommandResponseMessage implements ImapResponseMessage {
/**
* Creates a command completed response message that
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandFailedResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CommandFailedResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandFailedResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CommandFailedResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandFailedResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CommandFailedResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CommandFailedResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -17,10 +17,11 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
class CommandFailedResponseMessage implements ImapResponseMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CompleteCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CompleteCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CompleteCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CompleteCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CompleteCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CompleteCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CompleteCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class CompleteCommandMessage extends AbstractImapCommandMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CopyCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CopyCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CopyCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CopyCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CopyCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CopyCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CopyCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.GeneralMessageSet;
import org.apache.james.mailboxmanager.MailboxManagerException;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CreateCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CreateCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CreateCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CreateCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CreateCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/CreateCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/CreateCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/DeleteCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/DeleteCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/DeleteCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/DeleteCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/DeleteCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/DeleteCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/DeleteCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,16 +16,18 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
class DeleteCommandMessage extends AbstractImapCommandMessage {
private final String mailboxName;
+
public DeleteCommandMessage(final ImapCommand command, final String mailboxName, final String tag) {
super(tag, command);
this.mailboxName = mailboxName;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ErrorResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ErrorResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ErrorResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ErrorResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ErrorResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ErrorResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ErrorResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
@@ -26,7 +26,7 @@
* Carries an error response.
*
*/
-public class ErrorResponseMessage implements ImapResponseMessage, ImapCommandMessage {
+class ErrorResponseMessage implements ImapResponseMessage, ImapCommandMessage {
private final String message;
private final String tag;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ExpungeCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ExpungeCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ExpungeCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ExpungeCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ExpungeCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ExpungeCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ExpungeCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -32,8 +32,10 @@
import org.apache.james.core.MimeMessageWrapper;
import org.apache.james.imapserver.AuthorizationException;
+import org.apache.james.imapserver.ImapConstants;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.imapserver.store.MessageFlags;
import org.apache.james.imapserver.store.SimpleMessageAttributes;
@@ -58,7 +60,7 @@
this.idSet = idSet;
this.fetch = fetch;
if (useUids) {
- fetch.uid = true;
+ fetch.setUid(true);
}
}
@@ -111,13 +113,13 @@
StringBuffer response = new StringBuffer();
// FLAGS response
- if (fetch.flags || ensureFlagsResponse) {
+ if (fetch.isFlags() || ensureFlagsResponse) {
response.append(" FLAGS ");
response.append(MessageFlags.format(result.getFlags()));
}
// INTERNALDATE response
- if (fetch.internalDate) {
+ if (fetch.isInternalDate()) {
response.append(" INTERNALDATE \"");
// TODO format properly
response.append(RFC822DateFormat.toString(result
@@ -127,7 +129,7 @@
}
// RFC822.SIZE response
- if (fetch.size) {
+ if (fetch.isSize()) {
response.append(" RFC822.SIZE ");
response.append(result.getSize());
}
@@ -136,25 +138,25 @@
.getMimeMessage(), getLogger());
// ENVELOPE response
- if (fetch.envelope) {
+ if (fetch.isEnvelope()) {
response.append(" ENVELOPE ");
response.append(attrs.getEnvelope());
}
// BODY response
- if (fetch.body) {
+ if (fetch.isBody()) {
response.append(" BODY ");
response.append(attrs.getBodyStructure(false));
}
// BODYSTRUCTURE response
- if (fetch.bodyStructure) {
+ if (fetch.isBodyStructure()) {
response.append(" BODYSTRUCTURE ");
response.append(attrs.getBodyStructure(true));
}
// UID response
- if (fetch.uid) {
+ if (fetch.isUid()) {
response.append(" UID ");
response.append(result.getUid());
}
@@ -164,9 +166,9 @@
for (Iterator iterator = elements.iterator(); iterator.hasNext();) {
BodyFetchElement fetchElement = (BodyFetchElement) iterator
.next();
- response.append(FetchCommand.SP);
+ response.append(ImapConstants.SP);
response.append(fetchElement.getResponseName());
- response.append(FetchCommand.SP);
+ response.append(ImapConstants.SP);
// Various mechanisms for returning message body.
String sectionSpecifier = fetchElement.getParameters();
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchRequest.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchRequest.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchRequest.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchRequest.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchRequest.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchRequest.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchRequest.java Tue Mar 6 09:59:02 2007
@@ -16,21 +16,22 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
-class FetchRequest
+
+public class FetchRequest
{
- boolean flags;
- boolean uid;
- boolean internalDate;
- boolean size;
- boolean envelope;
- boolean body;
- boolean bodyStructure;
+ private boolean flags;
+ private boolean uid;
+ private boolean internalDate;
+ private boolean size;
+ private boolean envelope;
+ private boolean body;
+ private boolean bodyStructure;
private boolean setSeen = false;
@@ -38,6 +39,62 @@
public Collection getBodyElements() {
return bodyElements;
+ }
+
+ public boolean isBody() {
+ return body;
+ }
+
+ public void setBody(boolean body) {
+ this.body = body;
+ }
+
+ public boolean isBodyStructure() {
+ return bodyStructure;
+ }
+
+ public void setBodyStructure(boolean bodyStructure) {
+ this.bodyStructure = bodyStructure;
+ }
+
+ public boolean isEnvelope() {
+ return envelope;
+ }
+
+ public void setEnvelope(boolean envelope) {
+ this.envelope = envelope;
+ }
+
+ public boolean isFlags() {
+ return flags;
+ }
+
+ public void setFlags(boolean flags) {
+ this.flags = flags;
+ }
+
+ public boolean isInternalDate() {
+ return internalDate;
+ }
+
+ public void setInternalDate(boolean internalDate) {
+ this.internalDate = internalDate;
+ }
+
+ public boolean isSize() {
+ return size;
+ }
+
+ public void setSize(boolean size) {
+ this.size = size;
+ }
+
+ public boolean isUid() {
+ return uid;
+ }
+
+ public void setUid(boolean uid) {
+ this.uid = uid;
}
public boolean isSetSeen() {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FetchResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FetchResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import java.util.ArrayList;
import java.util.Iterator;
@@ -24,6 +24,7 @@
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class FetchResponseMessage extends AbstractCommandResponseMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FixedLengthInputStream.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FixedLengthInputStream.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FixedLengthInputStream.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FixedLengthInputStream.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FixedLengthInputStream.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/FixedLengthInputStream.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/FixedLengthInputStream.java Tue Mar 6 09:59:02 2007
@@ -1,4 +1,4 @@
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import java.io.FilterInputStream;
import java.io.IOException;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdRange.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/IdRange.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdRange.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/IdRange.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdRange.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/IdRange.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdRange.java Tue Mar 6 09:59:02 2007
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
/**
* Represents a range of UID values.
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdSet.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/IdSet.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdSet.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/IdSet.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdSet.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/IdSet.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/IdSet.java Tue Mar 6 09:59:02 2007
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
/**
* @version $Revision: 109034 $
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ImapCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ImapCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ImapCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapSession;
Added: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapMessageFactory.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapMessageFactory.java?view=auto&rev=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapMessageFactory.java (added)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapMessageFactory.java Tue Mar 6 09:59:02 2007
@@ -0,0 +1,90 @@
+/****************************************************************
+ * 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.imapserver.message;
+
+import java.util.Date;
+
+import javax.mail.Flags;
+import javax.mail.internet.MimeMessage;
+import javax.mail.search.SearchTerm;
+
+import org.apache.james.imapserver.commands.ImapCommand;
+
+/**
+ * Creates messages.
+ * Implementations may support message pooling but this is not required.
+ */
+public interface ImapMessageFactory {
+
+ public ImapCommandMessage createErrorMessage(String message, String tag);
+
+ public ImapCommandMessage createBadRequestMessage(final String message);
+
+ public ImapCommandMessage createAppendMessage(ImapCommand command, String mailboxName, Flags flags,
+ Date datetime, MimeMessage message, String tag);
+
+ public ImapCommandMessage createAuthenticateMessage(final ImapCommand command,
+ final String authType, final String tag);
+
+ public ImapCommandMessage createCapabilityMessage(final ImapCommand command, final String tag);
+
+ public ImapCommandMessage createCompleteMessage(final ImapCommand command, final boolean useUids, final String tag);
+
+ public ImapCommandMessage createCloseMessage(final ImapCommand command, final String tag);
+
+ public ImapCommandMessage createCopyMessage(final ImapCommand command, final IdRange[] idSet, final String mailboxName,
+ final boolean useUids, final String tag);
+
+ public ImapCommandMessage createCreateMessage(final ImapCommand command, final String mailboxName, final String tag);
+
+ public ImapCommandMessage createDeleteMessage(final ImapCommand command, final String mailboxName, final String tag);
+
+ public ImapCommandMessage createExamineMessage(final ImapCommand command, final String mailboxName, final String tag);
+
+ public ImapCommandMessage createExpungeMessage(final ImapCommand command, final String tag);
+
+ public ImapCommandMessage createFetchMessage(final ImapCommand command, final boolean useUids, final IdRange[] idSet,
+ final FetchRequest fetch, String tag);
+
+ public ImapCommandMessage createListMessage(final ImapCommand command, final String referenceName, final String mailboxPattern,
+ final String tag);
+
+ public ImapCommandMessage createLoginMessage(final ImapCommand command, final String userid, final String password, String tag);
+
+ public ImapCommandMessage createLogoutMessage(final ImapCommand command, final String tag);
+
+ public ImapCommandMessage createLsubMessage(ImapCommand command, String referenceName, String mailboxPattern, String tag);
+
+ public ImapCommandMessage createRenameMessage(final ImapCommand command, final String existingName, final String newName,
+ final String tag);
+
+ public ImapCommandMessage createSearchImapMessage(final ImapCommand command, final SearchTerm searchTerm, final boolean useUids,
+ final String tag);
+
+ public ImapCommandMessage createSelectMessage(final ImapCommand command, final String mailboxName, final String tag);
+
+ public ImapCommandMessage createStatusMessage(final ImapCommand command, final String mailboxName, final StatusDataItems statusDataItems, final String tag) ;
+
+ public ImapCommandMessage createStoreMessage(final ImapCommand command, final IdRange[] idSet, final StoreDirective directive, final Flags flags,
+ final boolean useUids, final String tag);
+
+ public ImapCommandMessage createSubscribeMessage(final ImapCommand command, final String mailboxName, final String tag);
+
+ public ImapCommandMessage createUnsubscribeMessage(final ImapCommand command, final String mailboxName, final String tag);
+}
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ImapResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ImapResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ImapResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ImapResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ListCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ListCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ListCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,13 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
+import org.apache.james.imapserver.ImapConstants;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.ListResult;
import org.apache.james.mailboxmanager.MailboxManagerException;
@@ -46,7 +48,7 @@
ListResult[] listResults;
- String personalNamespace = ListCommand.USER_NAMESPACE + ListCommand.HIERARCHY_DELIMITER_CHAR +
+ String personalNamespace = ImapConstants.USER_NAMESPACE + ImapConstants.HIERARCHY_DELIMITER_CHAR +
session.getUser().getUserName();
if ( mailboxPattern.length() == 0 ) {
@@ -54,12 +56,12 @@
// and root name of the referenceName argument
String referenceRoot;
- if ( referenceName.startsWith( ListCommand.NAMESPACE_PREFIX ) )
+ if ( referenceName.startsWith( ImapConstants.NAMESPACE_PREFIX ) )
{
// A qualified reference name - get the first element,
// and don't remove the user prefix
removeUserPrefix = false;
- int firstDelimiter = referenceName.indexOf( ListCommand.HIERARCHY_DELIMITER_CHAR );
+ int firstDelimiter = referenceName.indexOf( ImapConstants.HIERARCHY_DELIMITER_CHAR );
if ( firstDelimiter == -1 ) {
referenceRoot = referenceName;
}
@@ -76,18 +78,18 @@
// Get the mailbox for the reference name.
listResults = new ListResult[1];
- listResults[0]=new ListResultImpl(referenceRoot,ListCommand.HIERARCHY_DELIMITER);
+ listResults[0]=new ListResultImpl(referenceRoot,ImapConstants.HIERARCHY_DELIMITER);
}
else {
// If the mailboxPattern is fully qualified, ignore the
// reference name.
- if ( mailboxPattern.charAt( 0 ) == ListCommand.NAMESPACE_PREFIX_CHAR ) {
+ if ( mailboxPattern.charAt( 0 ) == ImapConstants.NAMESPACE_PREFIX_CHAR ) {
referenceName="";
}
// If the search pattern is relative, need to remove user prefix from results.
- removeUserPrefix = ( (referenceName+mailboxPattern).charAt(0) != ListCommand.NAMESPACE_PREFIX_CHAR );
+ removeUserPrefix = ( (referenceName+mailboxPattern).charAt(0) != ImapConstants.NAMESPACE_PREFIX_CHAR );
if (removeUserPrefix) {
referenceName=personalNamespace+"."+referenceName;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ListResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ListResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/ListResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/ListResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import java.util.ArrayList;
import java.util.Iterator;
@@ -24,6 +24,7 @@
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class ListResponseMessage extends AbstractCommandResponseMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LoginCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LoginCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LoginCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LoginCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LoginCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LoginCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LoginCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.services.User;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LogoutCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LogoutCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LogoutCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class LogoutCommandMessage extends AbstractImapCommandMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LogoutResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LogoutResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LogoutResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LogoutResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -16,20 +16,25 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
+import org.apache.james.imapserver.ImapConstants;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class LogoutResponseMessage extends AbstractCommandResponseMessage implements ImapCommandMessage {
+
+ public static final String BYE_MESSAGE = ImapConstants.VERSION + ImapConstants.SP + "Server logging out";
+
public LogoutResponseMessage(final ImapCommand command, final String tag) {
super(command, tag);
}
void doEncode(ImapResponse response, ImapSession session, ImapCommand command, String tag) throws MailboxException {
- response.byeResponse( LogoutCommand.BYE_MESSAGE );
+ response.byeResponse( BYE_MESSAGE );
response.commandComplete( command, tag );
// TODO: think about how this will work with SEDA
session.closeConnection();
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LsubListCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LsubListCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LsubListCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LsubListCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LsubListCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/LsubListCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/LsubListCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,9 +16,10 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.ListResult;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/MsnRange.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/MsnRange.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/MsnRange.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/MsnRange.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/MsnRange.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/MsnRange.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/MsnRange.java Tue Mar 6 09:59:02 2007
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
/**
* Represents a range of Message Sequence Numbers.
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/RenameCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/RenameCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/RenameCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/RenameCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/RenameCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/RenameCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/RenameCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
Added: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchImapCommandMessage.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchImapCommandMessage.java?view=auto&rev=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchImapCommandMessage.java (added)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchImapCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -0,0 +1,77 @@
+/****************************************************************
+ * 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.imapserver.message;
+
+import javax.mail.search.SearchTerm;
+
+import org.apache.james.imapserver.AuthorizationException;
+import org.apache.james.imapserver.ImapConstants;
+import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
+import org.apache.james.imapserver.store.MailboxException;
+import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.MessageResult;
+import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
+import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+
+class SearchImapCommandMessage extends AbstractImapCommandMessage {
+ private final SearchTerm searchTerm;
+ private final boolean useUids;
+
+ public SearchImapCommandMessage(final ImapCommand command, final SearchTerm searchTerm, final boolean useUids,
+ final String tag) {
+ super(tag, command);
+ this.searchTerm = searchTerm;
+ this.useUids = useUids;
+ }
+
+ protected ImapResponseMessage doProcess(ImapSession session, String tag, ImapCommand command) throws MailboxException, AuthorizationException, ProtocolException {
+ ImapMailboxSession mailbox = session.getSelected().getMailbox();
+ final int resultCode;
+ if (useUids) {
+ resultCode= MessageResult.UID;
+ } else {
+ resultCode= MessageResult.MSN;
+ }
+ MessageResult[] messageResults;
+ try {
+ messageResults = mailbox.search(GeneralMessageSetImpl.all(),searchTerm, resultCode);
+ } catch (MailboxManagerException e) {
+ throw new MailboxException(e);
+ }
+ // TODO: probably more efficient to stream data
+ // TODO: directly to response
+ StringBuffer idList = new StringBuffer();
+ for (int i = 0; i < messageResults.length; i++) {
+ if ( i > 0 ) {
+ idList.append( ImapConstants.SP );
+ }
+ if ( useUids ) {
+ idList.append( messageResults[i].getUid());
+ } else {
+ idList.append( messageResults[i].getMsn());
+ }
+ }
+ final SearchResponseMessage result =
+ new SearchResponseMessage(command, idList.toString(),
+ useUids, tag);
+ return result;
+ }
+}
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SearchResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SearchResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SearchResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SearchResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -16,10 +16,11 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
class SearchResponseMessage extends AbstractCommandResponseMessage {
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectCommandMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SelectCommandMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectCommandMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SelectCommandMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectCommandMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SelectCommandMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectCommandMessage.java Tue Mar 6 09:59:02 2007
@@ -16,13 +16,14 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import javax.mail.Flags;
import org.apache.james.imapserver.AuthorizationException;
import org.apache.james.imapserver.ImapSession;
import org.apache.james.imapserver.ProtocolException;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
Copied: james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectResponseMessage.java (from r514100, james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SelectResponseMessage.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectResponseMessage.java?view=diff&rev=515230&p1=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SelectResponseMessage.java&r1=514100&p2=james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectResponseMessage.java&r2=515230
==============================================================================
--- james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/commands/SelectResponseMessage.java (original)
+++ james/server/sandbox/seda-imap/src/java/org/apache/james/imapserver/message/SelectResponseMessage.java Tue Mar 6 09:59:02 2007
@@ -16,12 +16,13 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imapserver.commands;
+package org.apache.james.imapserver.message;
import javax.mail.Flags;
import org.apache.james.imapserver.ImapResponse;
import org.apache.james.imapserver.ImapSession;
+import org.apache.james.imapserver.commands.ImapCommand;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MessageResult;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org