Author: rdonkin
Date: Sat Jan 3 11:29:45 2009
New Revision: 731069
URL: http://svn.apache.org/viewvc?rev=731069&view=rev
Log:
Remove autocreate from API. Login tests for existing when creates when
necessary.
Modified:
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
Modified:
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
(original)
+++
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
Sat Jan 3 11:29:45 2009
@@ -54,7 +54,7 @@
public void setUp() throws Exception {
super.setUp();
mailboxManager.createMailbox(INBOX);
- mailbox = mailboxManager.getMailbox(INBOX, false);
+ mailbox = mailboxManager.getMailbox(INBOX);
mailboxSession = mailboxManager.createSession();
collector = new MailboxListenerCollector();
mailbox.addListener(collector);
Modified:
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
(original)
+++
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
Sat Jan 3 11:29:45 2009
@@ -65,17 +65,12 @@
this.entityManagerFactory = entityManagerFactory;
}
- public org.apache.james.imap.mailbox.Mailbox getMailbox(String
mailboxName, boolean autoCreate)
+ public org.apache.james.imap.mailbox.Mailbox getMailbox(String mailboxName)
throws MailboxException {
- return doGetMailbox(mailboxName, autoCreate);
+ return doGetMailbox(mailboxName);
}
- private JPAMailbox doGetMailbox(String mailboxName, boolean autoCreate)
- throws MailboxException {
- if (autoCreate && !existsMailbox(mailboxName)) {
- getLog().info("autocreated mailbox " + mailboxName);
- createMailbox(mailboxName);
- }
+ private JPAMailbox doGetMailbox(String mailboxName) throws
MailboxException {
try {
synchronized (mailboxes) {
final MailboxMapper mapper = createMailboxMapper();
@@ -128,13 +123,13 @@
if (index > 0 && count++ > 1) {
final String mailbox = namespaceName
.substring(0, index);
- if (!existsMailbox(mailbox)) {
+ if (!mailboxExists(mailbox)) {
doCreate(mailbox);
}
}
index = namespaceName.indexOf(HIERARCHY_DELIMITER,
++index);
}
- if (existsMailbox(namespaceName)) {
+ if (mailboxExists(namespaceName)) {
throw new MailboxExistsException(namespaceName);
} else {
doCreate(namespaceName);
@@ -186,7 +181,7 @@
getLog().debug("renameMailbox " + from + " to " + to);
try {
synchronized (mailboxes) {
- if (existsMailbox(to)) {
+ if (mailboxExists(to)) {
throw new MailboxExistsException(to);
}
@@ -228,8 +223,8 @@
public void copyMessages(MessageRange set, String from, String to,
MailboxSession session) throws MailboxException {
- JPAMailbox toMailbox = doGetMailbox(to, false);
- JPAMailbox fromMailbox = doGetMailbox(from, false);
+ JPAMailbox toMailbox = doGetMailbox(to);
+ JPAMailbox fromMailbox = doGetMailbox(from);
fromMailbox.copyTo(set, toMailbox, session);
}
@@ -278,7 +273,7 @@
// TODO implement subscriptions
}
- public boolean existsMailbox(String mailboxName)
+ public boolean mailboxExists(String mailboxName)
throws MailboxException {
try {
synchronized (mailboxes) {
Modified:
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
(original)
+++
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
Sat Jan 3 11:29:45 2009
@@ -77,16 +77,13 @@
*
* @param mailboxName
* the name of the mailbox, not null
- * @param autocreate
- * create this mailbox if it doesn't exist
* @return <code>ImapMailboxSession</code>, not null
* @throws MailboxException
* when the mailbox cannot be opened
* @throws MailboxNotFoundException
* when the given mailbox does not exist
*/
- Mailbox getMailbox(String mailboxName, boolean autocreate)
- throws MailboxException;
+ Mailbox getMailbox(String mailboxName) throws MailboxException;
/**
* Creates a new mailbox. Any intermediary mailboxes missing from the
@@ -144,7 +141,7 @@
ListResult[] list(MailboxExpression expression)
throws MailboxException;
- boolean existsMailbox(String mailboxName) throws MailboxException;
+ boolean mailboxExists(String mailboxName) throws MailboxException;
/**
* Creates a new session.
Modified:
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
(original)
+++
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
Sat Jan 3 11:29:45 2009
@@ -218,7 +218,7 @@
private Mailbox getMailbox(final ImapSession session, final
SelectedImapMailbox selected) throws MailboxException {
final String fullMailboxName = buildFullName(session,
selected.getName());
final MailboxManager mailboxManager = getMailboxManager(session);
- final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName,
false);
+ final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName);
return mailbox;
}
Modified:
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
(original)
+++
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
Sat Jan 3 11:29:45 2009
@@ -177,7 +177,7 @@
private void selectMailbox(String mailboxName, ImapSession session)
throws MailboxException {
final MailboxManager mailboxManager = getMailboxManager(session);
- final Mailbox mailbox = mailboxManager.getMailbox(mailboxName, false);
+ final Mailbox mailbox = mailboxManager.getMailbox(mailboxName);
final MailboxSession mailboxSession = ImapSessionUtils
.getMailboxSession(session);
Modified:
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
(original)
+++
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
Sat Jan 3 11:29:45 2009
@@ -73,7 +73,7 @@
final String fullMailboxName = buildFullName(session, mailboxName);
final MailboxManager mailboxManager = getMailboxManager(session);
- final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName,
false);
+ final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName);
appendToMailbox(mimeMessage, datetime, session, tag, command,
mailbox, responder, fullMailboxName);
Modified:
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
(original)
+++
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
Sat Jan 3 11:29:45 2009
@@ -62,7 +62,7 @@
final String fullMailboxName = buildFullName(session, mailboxName);
final MailboxManager mailboxManager = getMailboxManager(session);
final boolean mailboxExists = mailboxManager
- .existsMailbox(fullMailboxName);
+ .mailboxExists(fullMailboxName);
if (!mailboxExists) {
no(command, tag, responder,
HumanReadableTextKey.FAILURE_NO_SUCH_MAILBOX,
Modified:
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
(original)
+++
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
Sat Jan 3 11:29:45 2009
@@ -27,6 +27,7 @@
import org.apache.james.api.imap.process.ImapProcessor;
import org.apache.james.api.imap.process.ImapSession;
import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.imap.mailbox.MailboxExistsException;
import org.apache.james.imap.mailbox.MailboxManager;
import org.apache.james.imap.mailbox.MailboxManagerProvider;
import org.apache.james.imap.mailbox.MailboxSession;
@@ -68,7 +69,17 @@
ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY,
mailboxSession);
ImapSessionUtils.setUserName(session, userid);
- mailboxManager.getMailbox(buildFullName(session,
MailboxManager.INBOX), true);
+ final String inboxName = buildFullName(session,
MailboxManager.INBOX);
+ if (mailboxManager.mailboxExists(inboxName)) {
+ getLog().debug("INBOX exists. No need to create it.");
+ } else {
+ try {
+ getLog().debug("INBOX does not exist. Creating it.");
+ mailboxManager.createMailbox(inboxName);
+ } catch (MailboxExistsException e) {
+ getLog().debug("Mailbox created by concurrent call.
Safe to ignore this exception.");
+ }
+ }
okComplete(command, tag, responder);
} else {
final Integer currentNumberOfFailures = (Integer) session
Modified:
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
(original)
+++
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
Sat Jan 3 11:29:45 2009
@@ -67,8 +67,7 @@
}
final MailboxManager mailboxManager = getMailboxManager(session);
- final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName,
- false);
+ final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName);
final Long messages = messages(statusDataItems, mailboxSession,
mailbox);
Modified:
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL:
http://svn.apache.org/viewvc/james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
---
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
(original)
+++
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
Sat Jan 3 11:29:45 2009
@@ -71,17 +71,13 @@
this.userManager = userManager;
}
- public Mailbox getMailbox(String mailboxName, boolean autoCreate)
+ public Mailbox getMailbox(String mailboxName)
throws MailboxException {
- return doGetMailbox(mailboxName, autoCreate);
+ return doGetMailbox(mailboxName);
}
- private TorqueMailbox doGetMailbox(String mailboxName, boolean autoCreate)
+ private TorqueMailbox doGetMailbox(String mailboxName)
throws MailboxException {
- if (autoCreate && !existsMailbox(mailboxName)) {
- getLog().info("autocreated mailbox " + mailboxName);
- createMailbox(mailboxName);
- }
try {
synchronized (mailboxes) {
MailboxRow mailboxRow = MailboxRowPeer
@@ -132,13 +128,13 @@
if (index > 0 && count++ > 1) {
final String mailbox = namespaceName
.substring(0, index);
- if (!existsMailbox(mailbox)) {
+ if (!mailboxExists(mailbox)) {
doCreate(mailbox);
}
}
index = namespaceName.indexOf(HIERARCHY_DELIMITER,
++index);
}
- if (existsMailbox(namespaceName)) {
+ if (mailboxExists(namespaceName)) {
throw new MailboxExistsException(namespaceName);
} else {
doCreate(namespaceName);
@@ -186,7 +182,7 @@
getLog().debug("renameMailbox " + from + " to " + to);
try {
synchronized (mailboxes) {
- if (existsMailbox(to)) {
+ if (mailboxExists(to)) {
throw new MailboxExistsException(to);
}
// TODO put this into a serilizable transaction
@@ -227,8 +223,8 @@
public void copyMessages(MessageRange set, String from, String to,
MailboxSession session) throws MailboxException {
- TorqueMailbox toMailbox = doGetMailbox(to, false);
- TorqueMailbox fromMailbox = doGetMailbox(from, false);
+ TorqueMailbox toMailbox = doGetMailbox(to);
+ TorqueMailbox fromMailbox = doGetMailbox(from);
fromMailbox.copyTo(set, toMailbox, session);
}
@@ -278,7 +274,7 @@
// TODO implement subscriptions
}
- public boolean existsMailbox(String mailboxName)
+ public boolean mailboxExists(String mailboxName)
throws MailboxException {
Criteria c = new Criteria();
c.add(MailboxRowPeer.NAME, mailboxName);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]