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 jo...@apache.org on 2006/12/03 18:00:08 UTC
svn commit: r481811 - in /james/server/trunk/src:
java/org/apache/james/imapserver/
java/org/apache/james/mailboxmanager/manager/
java/org/apache/james/mailboxmanager/repository/
java/org/apache/james/mailboxmanager/torque/ test/org/apache/james/mailbo...
Author: joachim
Date: Sun Dec 3 09:00:05 2006
New Revision: 481811
URL: http://svn.apache.org/viewvc?view=rev&rev=481811
Log:
- INBOX is not autocreated anymore
- added createInbox(User)
Modified:
james/server/trunk/src/java/org/apache/james/imapserver/ImapSessionImpl.java
james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java
james/server/trunk/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java
james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java
james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
Modified: james/server/trunk/src/java/org/apache/james/imapserver/ImapSessionImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/imapserver/ImapSessionImpl.java?view=diff&rev=481811&r1=481810&r2=481811
==============================================================================
--- james/server/trunk/src/java/org/apache/james/imapserver/ImapSessionImpl.java (original)
+++ james/server/trunk/src/java/org/apache/james/imapserver/ImapSessionImpl.java Sun Dec 3 09:00:05 2006
@@ -209,6 +209,7 @@
mailboxManager.close();
}
mailboxManager=mailboxManagerProvider.getMailboxManagerInstance(user);
+ mailboxManager.createInbox(user);
}
return mailboxManager;
}
Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java?view=diff&rev=481811&r1=481810&r2=481811
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java Sun Dec 3 09:00:05 2006
@@ -65,6 +65,10 @@
*/
public interface MailboxManager {
+
+ public static final char HIERARCHY_DELIMITER='.';
+
+ public static final String USER_NAMESPACE="#mail";
/**
* get a session mailbox
@@ -74,7 +78,8 @@
* @return
* @throws MailboxManagerException
*/
- MailboxSession getMailboxSession(String mailboxName) throws MailboxManagerException;
+ MailboxSession getMailboxSession(String mailboxName, boolean autoCreate)
+ throws MailboxManagerException;
/**
* Supports
@@ -160,6 +165,9 @@
boolean existsMailbox(String mailboxName) throws MailboxManagerException;
void close();
+
+ // TODO maybe move createInbox to provider
+ boolean createInbox(User user) throws MailboxManagerException;
}
Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java?view=diff&rev=481811&r1=481810&r2=481811
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java Sun Dec 3 09:00:05 2006
@@ -39,11 +39,14 @@
MailboxSession getInboxSession(User user);
- /** @param authUser the authorized User for checking credentials
- @param mailboxName a logical/hierarchical mailbox name **/
+ /**
+ * @param authUser the authorized User for checking credentials
+ * @param mailboxName a logical/hierarchical mailbox name *
+ * @throws MailboxManagerException
+ */
- MailboxSession getMailboxSession(
- User authUser, String mailboxName);
+ MailboxSession getMailboxSession(User authUser, String mailboxName,
+ boolean autoCreate) throws MailboxManagerException;
/**
* removes all data (mailboxes, quota, acls...) that is associated
Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java?view=diff&rev=481811&r1=481810&r2=481811
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java Sun Dec 3 09:00:05 2006
@@ -348,6 +348,7 @@
String inbox = ns.getName() + ns.getHierarchyDelimter()
+ "INBOX";
+ getMailboxManager().createInbox(user);
mailboxSession = getMailboxManager().getImapMailboxSession(
inbox);
}
Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?view=diff&rev=481811&r1=481810&r2=481811
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java Sun Dec 3 09:00:05 2006
@@ -68,8 +68,12 @@
this.log=log;
}
- public MailboxSession getMailboxSession(String mailboxName)
- throws MailboxManagerException {
+ public MailboxSession getMailboxSession(String mailboxName,
+ boolean autoCreate) throws MailboxManagerException {
+ if (autoCreate && !existsMailbox(mailboxName)) {
+ getLog().info("autocreated mailbox " + mailboxName);
+ createMailbox(mailboxName);
+ }
return getImapMailboxSession(mailboxName);
}
@@ -80,34 +84,28 @@
return getImapMailboxSession(mailboxName);
}
+ public boolean createInbox(User user) throws MailboxManagerException {
+ // TODO should access getPersonalDefaultNameSpace...
+ String userInbox=USER_NAMESPACE+HIERARCHY_DELIMITER+user.getUserName()+HIERARCHY_DELIMITER+"INBOX";
+ if (!existsMailbox(userInbox)) {
+ createMailbox(userInbox);
+ getLog().info("autocreated Inbox " + userInbox);
+ return true;
+ } else {
+ getLog().debug("Inbox already exists " + userInbox);
+ return false;
+ }
+ }
+
+
+
public ImapMailboxSession getImapMailboxSession(String mailboxName)
throws MailboxManagerException {
-
- // prepare to auto-create users Inbox
-
- // TODO inbox-auto-creation for authUser is not optimal. Use a autocreate boolean in getSessionMailbox?
- String userInbox=getPersonalDefaultNamespace(authUser).getName()+HIERARCHY_DELIMITER+"INBOX";
- if (userInbox.length()==mailboxName.length()) {
- int del=userInbox.length()-5;
- if (userInbox.substring(0,del).equals(mailboxName.substring(0,del))) {
- if (userInbox.substring(del).equalsIgnoreCase(mailboxName.substring(del))) {
- mailboxName=userInbox;
- }
- }
- }
try {
synchronized (getMailboxCache()) {
MailboxRow mailboxRow = MailboxRowPeer
.retrieveByName(mailboxName);
- if (mailboxRow == null) {
- if (userInbox.equals(mailboxName)) {
- // do auto creation
- createMailbox(mailboxName);
- mailboxRow = MailboxRowPeer.retrieveByName(mailboxName);
- getLog().info("autocreated Inbox " + mailboxName);
- }
- }
if (mailboxRow != null) {
UidChangeTracker tracker = (UidChangeTracker) getMailboxCache()
Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java?view=diff&rev=481811&r1=481810&r2=481811
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java Sun Dec 3 09:00:05 2006
@@ -232,7 +232,7 @@
return null;
}
- public MailboxSession getMailboxSession(User authUser, String mailboxName) {
+ public MailboxSession getMailboxSession(User authUser, String mailboxName, boolean autoCreate) {
// TODO Auto-generated method stub
return null;
}
Modified: james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java?view=diff&rev=481811&r1=481810&r2=481811
==============================================================================
--- james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java (original)
+++ james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java Sun Dec 3 09:00:05 2006
@@ -37,6 +37,7 @@
import org.apache.james.mailboxmanager.MessageResult;
import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
import org.apache.james.mailboxmanager.mailbox.GeneralMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.mock.MockUser;
import org.apache.james.mailboxmanager.mock.TorqueMailboxManagerProviderSingleton;
import org.apache.james.mailboxmanager.redundant.AbstractMailRepositoryNativeTestCase;
@@ -45,6 +46,7 @@
public class TorqueMailboxManagerMailRepositoryNativeTestCase extends
AbstractMailRepositoryNativeTestCase {
+ private static final String TUSER_INBOX = "#mail.tuser.INBOX";
GeneralMailboxSession shadowMailbox = null;
protected void configureRepository() throws Exception {
@@ -57,8 +59,8 @@
Configuration conf = db
.build(
new ByteArrayInputStream(
- ("<repository destinationURL=\"mailboxmanager://users/tuser\" type=\"MAIL\"></repository>").getBytes()),
- "repository");
+ ("<repository destinationURL=\"mailboxmanager://#mail/tuser\" postfix=\".INBOX\" translateDelimiters=\"true\" type=\"MAIL\"></repository>")
+ .getBytes()), "repository");
mailboxManagerMailRepository.configure(conf);
mailboxManagerMailRepository.initialize();
mailboxManagerMailRepository.setMailboxManagerProvider(TorqueMailboxManagerProviderSingleton
@@ -135,10 +137,13 @@
protected GeneralMailboxSession getShadowMailbox() {
if (shadowMailbox == null) {
try {
- shadowMailbox = TorqueMailboxManagerProviderSingleton
- .getTorqueMailboxManagerProviderInstance()
- .getMailboxManagerInstance(new MockUser())
- .getGeneralMailboxSession("#mail.tuser.INBOX");
+ MailboxManager mailboxManager= TorqueMailboxManagerProviderSingleton
+ .getTorqueMailboxManagerProviderInstance()
+ .getMailboxManagerInstance(new MockUser());
+ if (!mailboxManager.existsMailbox(TUSER_INBOX)) {
+ mailboxManager.createMailbox(TUSER_INBOX);
+ }
+ shadowMailbox = mailboxManager.getGeneralMailboxSession(TUSER_INBOX);
} catch (Exception e) {
throw new RuntimeException(e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org