Author: rdonkin
Date: Thu Dec 6 13:28:54 2007
New Revision: 601862
URL: http://svn.apache.org/viewvc?rev=601862&view=rev
Log:
Remove GeneralMailbox.
Added:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
Removed:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractGeneralMailbox.java
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/GeneralMailbox.java
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
Added:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java?rev=601862&view=auto
==============================================================================
---
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
(added)
+++
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/AbstractImapMailbox.java
Thu Dec 6 13:28:54 2007
@@ -0,0 +1,68 @@
+/****************************************************************
+ * 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.mailboxmanager.mailbox;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+
+import javax.mail.internet.MimeMessage;
+
+import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.MessageResult;
+import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
+import org.apache.james.mailboxmanager.util.AbstractLogFactoryAware;
+
+public abstract class AbstractImapMailbox extends AbstractLogFactoryAware
implements ImapMailbox {
+
+ public Collection list() throws MailboxManagerException {
+ final Iterator it = getMessages(GeneralMessageSetImpl.all(),
MessageResult.KEY);
+ final Collection result = new ArrayList(100);
+ while (it.hasNext()) {
+ final MessageResult next = (MessageResult) it.next();
+ final String key = (next).getKey();
+ result.add(key);
+ }
+ return result;
+ }
+
+ public void remove(String key) throws MailboxManagerException {
+ remove(GeneralMessageSetImpl.oneKey(key));
+ }
+
+ public MimeMessage retrieve(final String key) throws
MailboxManagerException {
+ final Iterator it = getMessages(GeneralMessageSetImpl.oneKey(key),
+ MessageResult.MIME_MESSAGE);
+ final MimeMessage result;
+ if (it.hasNext()) {
+ final MessageResult message = (MessageResult) it.next();
+ result = message.getMimeMessage();
+ } else {
+ result = null;
+ }
+ return result;
+ }
+
+ public String store(MimeMessage message) throws MailboxManagerException {
+ MessageResult result=appendMessage(message, new Date(),
MessageResult.KEY);
+ return result.getKey();
+ }
+}
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
(original)
+++
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/ImapMailbox.java
Thu Dec 6 13:28:54 2007
@@ -19,9 +19,11 @@
package org.apache.james.mailboxmanager.mailbox;
+import java.util.Date;
import java.util.Iterator;
import javax.mail.Flags;
+import javax.mail.internet.MimeMessage;
import org.apache.james.mailboxmanager.GeneralMessageSet;
import org.apache.james.mailboxmanager.MailboxManagerException;
@@ -34,7 +36,9 @@
/**
* Provides access to a single Folder.<br />
*/
-public interface ImapMailbox extends GeneralMailbox {
+public interface ImapMailbox extends Mailbox, EventTriggerMailbox {
+
+ public static final long ANONYMOUS_SESSION = 0;
/**
* @param result
@@ -119,4 +123,44 @@
*/
Iterator setFlags(Flags flags, boolean value, boolean replace,
GeneralMessageSet set, int result) throws MailboxManagerException;
+
+
+
+ public long getSessionId();
+
+ /**
+ * @param internalDate
+ * <p>IMAP defines this as the time when the message has
arrived to
+ * this server (by smtp). Clients are also allowed to set the
+ * internalDate on apppend.</p><p>Is this Mail.getLastUpdates()
for
+ * James delivery? Should we use MimeMessage.getReceivedDate()?
+ * @param result
+ * which fields to be returned in MessageResult
+ * @return MessageResult with the fields defined by <b>result</b>
+ * <ul>
+ * <li> IMAP, Javamail Folder: nothing required </li>
+ * <li> UIDPlusFolder: requires to return appended Message or
uid</li>
+ * <li> UIDPLUS: requires to return appended uid</li>
+ * </ul>
+ * @throws MailboxManagerException
+ * if anything went wrong
+ */
+ MessageResult appendMessage(MimeMessage message, Date internalDate,
+ int result) throws MailboxManagerException;
+
+ /**
+ *
+ * @param set
+ * @return MessageResult with the fields defined by <b>result</b>
+ * <ul>
+ * <li> IMAP: a set of msn, uid, Flags, header lines, content, mime
+ * parts...</li>
+ * <li> Javamail Folder: Message[]</li>
+ * </ul>
+ * @throws MailboxManagerException
+ */
+
+ Iterator getMessages(GeneralMessageSet set, int result) throws
MailboxManagerException;
+
+ void remove(GeneralMessageSet set) throws MailboxManagerException;
}
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
(original)
+++
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
Thu Dec 6 13:28:54 2007
@@ -22,10 +22,8 @@
import org.apache.james.mailboxmanager.GeneralMessageSet;
import org.apache.james.mailboxmanager.ListResult;
import org.apache.james.mailboxmanager.MailboxManagerException;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
+import org.apache.james.mailboxmanager.MailboxNotFoundException;
import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
-import org.apache.james.mailboxmanager.mailbox.Mailbox;
-import org.apache.james.services.User;
/**
@@ -89,13 +87,13 @@
* this is done by the MailboxRepository because maybe this operation could
* be optimized in the corresponding store.
*
- * @param from
+ * @param from name of the source mailbox
* @param set
* messages to copy
* @param to
* name of the destination mailbox
*/
- void copyMessages(GeneralMailbox from, GeneralMessageSet set, String to)
throws MailboxManagerException;
+ void copyMessages(GeneralMessageSet set, String from, String to) throws
MailboxManagerException;
/**
* TODO: Expression requires parsing. Probably easier for the caller to
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
(original)
+++
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/tracking/UidChangeTracker.java
Thu Dec 6 13:28:54 2007
@@ -35,10 +35,9 @@
import org.apache.james.mailboxmanager.MailboxListener;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MessageResult;
-import org.apache.james.mailboxmanager.MessageResultUtils;
import org.apache.james.mailboxmanager.impl.MailboxEventDispatcher;
import org.apache.james.mailboxmanager.impl.MessageFlags;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
public class UidChangeTracker implements Constants {
@@ -137,7 +136,7 @@
if (expectedSet.contains(uidLong)) {
expectedSet.remove(uidLong);
updatedFlags(uid, flags, uidLong,
- GeneralMailbox.ANONYMOUS_SESSION);
+ ImapMailbox.ANONYMOUS_SESSION);
} else {
cache.put(uidLong, flags);
if (uid > lastUidAtStart) {
Modified:
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
(original)
+++
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/CopyProcessor.java
Thu Dec 6 13:28:54 2007
@@ -99,7 +99,7 @@
lowVal =
session.getSelected().uid((int)idSet[i].getLowVal());
}
GeneralMessageSet messageSet =
GeneralMessageSetImpl.uidRange(lowVal, highVal);
- mailboxManager.copyMessages(currentMailbox, messageSet,
+ mailboxManager.copyMessages(messageSet,
currentMailbox.getName(),
fullMailboxName);
}
} catch (MailboxManagerException e) {
Modified:
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
(original)
+++
james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/commands/CopyCommand.java
Thu Dec 6 13:28:54 2007
@@ -80,7 +80,7 @@
}
GeneralMessageSet messageSet
= GeneralMessageSetImpl.uidRange(lowVal,highVal);
-
session.getMailboxManager().copyMessages(currentMailbox,messageSet,mailboxName);
+
session.getMailboxManager().copyMessages(messageSet,currentMailbox.getName(),
mailboxName);
}
} catch (MailboxManagerException e) {
throw new MailboxException(e);
Modified:
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
(original)
+++
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/AbstractSessionTest.java
Thu Dec 6 13:28:54 2007
@@ -53,7 +53,6 @@
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.GeneralMailbox;
import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
import org.apache.james.mailboxmanager.manager.MailboxExpression;
import org.apache.james.mailboxmanager.manager.MailboxManager;
@@ -94,7 +93,7 @@
}
public void appendMessagesClosed(String folder,MimeMessage[] msgs) throws
MailboxManagerException, MessagingException {
- GeneralMailbox mailbox=getImapMailbox(folder);
+ ImapMailbox mailbox=getImapMailbox(folder);
for (int i = 0; i < msgs.length; i++) {
msgs[i].setFlags(new Flags(Flags.Flag.RECENT), true);
mailbox.appendMessage(msgs[i],new Date(),MessageResult.MINIMAL);
@@ -103,7 +102,7 @@
}
public long[] addUIDMessagesOpen(String folder,MimeMessage[] msgs) throws
MailboxManagerException, MessagingException {
- GeneralMailbox mailbox=getImapMailbox(folder);
+ ImapMailbox mailbox=getImapMailbox(folder);
long[] uids=new long[msgs.length];
for (int i = 0; i < msgs.length; i++) {
msgs[i].setFlags(new Flags(Flags.Flag.RECENT), false);
@@ -125,7 +124,7 @@
}
public MimeMessage[] getMessages(String folder) throws
MailboxManagerException {
- GeneralMailbox mailbox=getImapMailbox(folder);
+ ImapMailbox mailbox=getImapMailbox(folder);
Iterator iterator
=mailbox.getMessages(GeneralMessageSetImpl.all(),MessageResult.MIME_MESSAGE);
List messages = IteratorUtils.toList(iterator);
MimeMessage[] mms=new MimeMessage[messages.size()];
@@ -136,7 +135,7 @@
}
public long[] getUids(String folder) throws MailboxManagerException {
- GeneralMailbox mailbox=getImapMailbox(folder);
+ ImapMailbox mailbox=getImapMailbox(folder);
Iterator iterator =
mailbox.getMessages(GeneralMessageSetImpl.all(),MessageResult.MINIMAL);
List messages = IteratorUtils.toList(iterator);
long[] uids=new long[messages.size()];
Modified:
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
(original)
+++
james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
Thu Dec 6 13:28:54 2007
@@ -36,7 +36,7 @@
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.GeneralMailbox;
+import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
import org.apache.james.mailboxmanager.manager.MailboxManager;
import
org.apache.james.mailboxmanager.mock.TorqueMailboxManagerProviderSingleton;
import
org.apache.james.mailboxmanager.redundant.AbstractMailRepositoryNativeTestCase;
@@ -46,7 +46,7 @@
AbstractMailRepositoryNativeTestCase {
private static final String TUSER_INBOX = "#mail.tuser.INBOX";
- GeneralMailbox shadowMailbox = null;
+ ImapMailbox shadowMailbox = null;
protected void configureRepository() throws Exception {
TorqueMailboxManagerProviderSingleton.reset();
@@ -129,7 +129,7 @@
}
- protected GeneralMailbox getShadowMailbox() {
+ protected ImapMailbox getShadowMailbox() {
if (shadowMailbox == null) {
try {
MailboxManager mailboxManager=
TorqueMailboxManagerProviderSingleton
Modified:
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
(original)
+++
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
Thu Dec 6 13:28:54 2007
@@ -43,7 +43,7 @@
import org.apache.james.mailboxmanager.SearchParameters;
import org.apache.james.mailboxmanager.UnsupportedCriteriaException;
import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
-import org.apache.james.mailboxmanager.mailbox.AbstractGeneralMailbox;
+import org.apache.james.mailboxmanager.mailbox.AbstractImapMailbox;
import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
import org.apache.james.mailboxmanager.torque.om.MailboxRow;
import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
@@ -68,7 +68,7 @@
import com.sun.mail.util.CRLFOutputStream;
import com.workingdogs.village.DataSetException;
-public class TorqueMailbox extends AbstractGeneralMailbox implements
ImapMailbox {
+public class TorqueMailbox extends AbstractImapMailbox implements ImapMailbox {
private boolean open = true;
Modified:
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=601862&r1=601861&r2=601862&view=diff
==============================================================================
---
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
(original)
+++
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
Thu Dec 6 13:28:54 2007
@@ -37,14 +37,12 @@
import org.apache.james.mailboxmanager.MailboxNotFoundException;
import org.apache.james.mailboxmanager.MessageResult;
import org.apache.james.mailboxmanager.impl.ListResultImpl;
-import org.apache.james.mailboxmanager.mailbox.GeneralMailbox;
import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
import org.apache.james.mailboxmanager.mailbox.Mailbox;
import org.apache.james.mailboxmanager.manager.MailboxExpression;
import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.torque.om.MailboxRow;
import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
-import org.apache.james.services.User;
import org.apache.torque.TorqueException;
import org.apache.torque.util.CountHelper;
import org.apache.torque.util.Criteria;
@@ -176,10 +174,10 @@
}
- public void copyMessages(GeneralMailbox from, GeneralMessageSet set,
String to) throws MailboxManagerException {
- GeneralMailbox toMailbox= getImapMailbox(to, false);
-
- Iterator it = from.getMessages(set, MessageResult.MIME_MESSAGE |
MessageResult.INTERNAL_DATE);
+ public void copyMessages(GeneralMessageSet set, String from, String to)
throws MailboxManagerException {
+ ImapMailbox toMailbox= getImapMailbox(to, false);
+ ImapMailbox fromMailbox = getImapMailbox(from, false);
+ Iterator it = fromMailbox.getMessages(set, MessageResult.MIME_MESSAGE
| MessageResult.INTERNAL_DATE);
while (it.hasNext()) {
final MessageResult result = (MessageResult) it.next();
final MimeMessage mimeMessage = result.getMimeMessage();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]