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 17:33:25 UTC
svn commit: r481795 - in /james/server/sandbox/mailbox-namespaces/src: conf/
java/org/apache/james/imapserver/ java/org/apache/james/mailboxmanager/impl/
java/org/apache/james/mailboxmanager/mailstore/
java/org/apache/james/mailboxmanager/manager/ java...
Author: joachim
Date: Sun Dec 3 08:33:23 2006
New Revision: 481795
URL: http://svn.apache.org/viewvc?view=rev&rev=481795
Log:
- MailboxManagerMailRepository works for all namespaces now
- INBOX is not autocreated anymore
- added createInbox(User)
Added:
james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/repository/
james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepositoryTest.java
Modified:
james/server/sandbox/mailbox-namespaces/src/conf/james-config.xml
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/imapserver/ImapSessionImpl.java
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/DefaultMailboxManagerProvider.java
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/mailstore/MailStoreMailboxManager.java
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
Modified: james/server/sandbox/mailbox-namespaces/src/conf/james-config.xml
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/conf/james-config.xml?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/conf/james-config.xml (original)
+++ james/server/sandbox/mailbox-namespaces/src/conf/james-config.xml Sun Dec 3 08:33:23 2006
@@ -74,7 +74,7 @@
<inboxRepository>
<repository destinationURL="dbfile://maildb/inbox/" type="MAIL"/>
</inboxRepository>
- -->
+ -->
<!-- TEMPORARY DEFAULT: dbfile using Derby -->
<!-- Alternative inbox repository definition for mbox use. -->
@@ -90,7 +90,8 @@
-->
<!-- Experimental IMAP support -->
<inboxRepository>
- <repository destinationURL="mailboxmanager://users/" type="MAIL" />
+ <repository destinationURL="mailboxmanager://#mail/"
+ postfix=".INBOX" translateDelimiters="true" type="MAIL" />
</inboxRepository>
</James>
@@ -139,7 +140,7 @@
<repository destinationURL="file://var/mail/system/"
type="MAIL"/>
</target>
- </mount>
+ </mount>
<mount>
<point point="#mail.user1"/>
<target
@@ -1256,8 +1257,8 @@
</mailstore>
- <!-- The Mailstore block used by mailboxmanager -->
-
+ <!-- The Mailstore block used by mailboxmanager -->
+
<mailboxmanager-mailstore>
<repositories>
<repository class="org.apache.james.mailboxmanager.repository.MailboxManagerMailRepository">
@@ -1397,7 +1398,7 @@
</mailboxmanager-mailstore>
-
+
<!-- The User Storage block -->
<users-store>
<!-- Configure User Repositories here. -->
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/imapserver/ImapSessionImpl.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/imapserver/ImapSessionImpl.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/imapserver/ImapSessionImpl.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/imapserver/ImapSessionImpl.java Sun Dec 3 08:33:23 2006
@@ -209,6 +209,7 @@
mailboxManager.close();
}
mailboxManager=mailboxManagerProvider.getMailboxManagerInstance(user);
+ mailboxManager.createInbox(user);
}
return mailboxManager;
}
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/DefaultMailboxManagerProvider.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/DefaultMailboxManagerProvider.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/DefaultMailboxManagerProvider.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/DefaultMailboxManagerProvider.java Sun Dec 3 08:33:23 2006
@@ -68,7 +68,7 @@
}
public MailboxSession getInboxSession(User user) throws MailboxManagerException {
- return getMailboxManagerInstance(user).getMailboxSession(getInboxName(user));
+ return getMailboxManagerInstance(user).getMailboxSession(getInboxName(user),true);
}
public MailboxManager getMailboxManagerInstance(User user)
@@ -76,9 +76,10 @@
return getMailboxManagerFactory().getMailboxManagerInstance(user);
}
- public MailboxSession getMailboxSession(User authUser, String mailboxName)
- throws MailboxManagerException {
- return getMailboxManagerInstance(authUser).getMailboxSession(mailboxName);
+ public MailboxSession getMailboxSession(User authUser, String mailboxName,
+ boolean autoCreate) throws MailboxManagerException {
+ return getMailboxManagerInstance(authUser).getMailboxSession(
+ mailboxName, autoCreate);
}
public Namespaces getNamespaces(User forUser) {
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java Sun Dec 3 08:33:23 2006
@@ -123,9 +123,9 @@
.getImapMailboxSession(mailboxName);
}
- public MailboxSession getMailboxSession(String mailboxName)
- throws MailboxManagerException {
- return getMailboxManager(mailboxName).getMailboxSession(mailboxName);
+ public MailboxSession getMailboxSession(String mailboxName,
+ boolean autoCreate) throws MailboxManagerException {
+ return getMailboxManager(mailboxName).getMailboxSession(mailboxName, autoCreate);
}
public ListResult[] list(String base, String expression, boolean subscribed)
@@ -163,6 +163,11 @@
public void setUser(User user) {
this.user = user;
+ }
+
+ public boolean createInbox(User user) throws MailboxManagerException {
+ String userInbox=USER_NAMESPACE+HIERARCHY_DELIMITER+user.getUserName()+HIERARCHY_DELIMITER+"INBOX";
+ return getMailboxManager(userInbox).createInbox(user);
}
}
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/mailstore/MailStoreMailboxManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/mailstore/MailStoreMailboxManager.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/mailstore/MailStoreMailboxManager.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/mailstore/MailStoreMailboxManager.java Sun Dec 3 08:33:23 2006
@@ -69,8 +69,8 @@
throw new RuntimeException("operation not supported");
}
- public MailboxSession getMailboxSession(String mailboxName)
- throws MailboxManagerException {
+ public MailboxSession getMailboxSession(String mailboxName,
+ boolean autoCreate) throws MailboxManagerException {
return mailstoreMailboxCache.getMailboxSession(mailboxName);
}
@@ -100,6 +100,10 @@
public void setUser(User user) {
this.user=user;
+ }
+
+ public boolean createInbox(User user) throws MailboxManagerException {
+ return false;
}
}
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManager.java Sun Dec 3 08:33:23 2006
@@ -26,6 +26,7 @@
import org.apache.james.mailboxmanager.mailbox.GeneralMailboxSession;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
import org.apache.james.mailboxmanager.mailbox.MailboxSession;
+import org.apache.james.services.User;
/**
@@ -62,6 +63,10 @@
*/
public interface MailboxManager {
+
+ public static final char HIERARCHY_DELIMITER='.';
+
+ public static final String USER_NAMESPACE="#mail";
/**
* get a session mailbox
@@ -71,7 +76,8 @@
* @return
* @throws MailboxManagerException
*/
- MailboxSession getMailboxSession(String mailboxName) throws MailboxManagerException;
+ MailboxSession getMailboxSession(String mailboxName, boolean autoCreate)
+ throws MailboxManagerException;
/**
* Supports
@@ -135,6 +141,9 @@
boolean existsMailbox(String mailboxName) throws MailboxManagerException;
void close();
+
+ // TODO maybe move createInbox to provider
+ boolean createInbox(User user) throws MailboxManagerException;
}
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java Sun Dec 3 08:33:23 2006
@@ -47,8 +47,8 @@
* @throws MailboxManagerException
*/
- MailboxSession getMailboxSession(
- User authUser, String mailboxName) throws MailboxManagerException;
+ MailboxSession getMailboxSession(User authUser, String mailboxName,
+ boolean autoCreate) throws MailboxManagerException;
/**
* removes all data (mailboxes, quota, acls...) that is associated
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepository.java Sun Dec 3 08:33:23 2006
@@ -53,6 +53,11 @@
public class MailboxManagerMailRepository extends AbstractMailRepository
implements Configurable, Serviceable {
+ private static final String PREFIX = "mailboxmanager://";
+
+ // TODO extract delimiter from namespaces
+ private static final String DL = ".";
+
/**
* used to map keys to uid and vice versa
*/
@@ -61,8 +66,8 @@
private MailboxGateKeeper mailboxGateKeeper;
private MailboxManagerProvider mailboxManagerProvider;
-
- private User user;
+
+ private String mailboxName;
protected String addMessage(MimeMessage message) throws MessagingException {
try {
@@ -339,7 +344,8 @@
throw new RuntimeException("use<1 !");
}
if (mailboxSession == null) {
- mailboxSession = getMailboxManagerProvider().getInboxSession(user);
+ mailboxSession = getMailboxManagerProvider().getMailboxSession(
+ null, mailboxName, true);
}
return mailboxSession;
}
@@ -357,22 +363,38 @@
public void configure(Configuration conf) throws ConfigurationException {
// fetch user name
-
- String destinationUrl = conf.getAttribute("destinationURL");
- if (destinationUrl.endsWith("/")) {
- destinationUrl = destinationUrl.substring(0, destinationUrl
- .length() - 1);
+ String destinationURL = conf.getAttribute("destinationURL");
+ String postfix = conf.getAttribute("postfix", null);
+ boolean translateDelimiter=conf.getAttributeAsBoolean("translateDelimiters",false);
+
+ // transform the URL
+ String name = destinationURL;
+
+ // remove protocol prefix
+ if (!name.startsWith(PREFIX)) {
+ throw new ConfigurationException("url has to start with "+PREFIX);
+ }
+ name=name.substring(PREFIX.length());
+
+
+ // translate delimiter
+ if (translateDelimiter) {
+ // remove trailing /
+ if (name.endsWith("/")) {
+ name = name.substring(0, name.length() - 1);
+ }
+ name=name.replaceAll("/", DL);
+ }
+
+ // append postfix
+ if (postfix!=null) {
+ name += postfix;
}
- String userName = destinationUrl.substring(destinationUrl
- .lastIndexOf('/') + 1);
+
getLogger().info(
- "Configured for user: '" + userName + "' URL: '"
- + destinationUrl + "'");
- setUser(new DefaultJamesUser(userName, "none"));
- }
-
- public void setUser(User user) {
- this.user = user;
+ "Configured for mailbox: '" + name + "' URL: '"
+ + destinationURL + "' translateDelimiter: "+translateDelimiter);
+ setMailboxName(name);
}
public void service(ServiceManager serviceManager) throws ServiceException {
@@ -389,6 +411,14 @@
log = new SimpleLog("MailboxManagerMailRepository");
}
return log;
+ }
+
+ String getMailboxName() {
+ return mailboxName;
+ }
+
+ public void setMailboxName(String mailboxName) {
+ this.mailboxName = mailboxName;
}
}
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java Sun Dec 3 08:33:23 2006
@@ -46,10 +46,6 @@
import org.apache.torque.util.Criteria;
public class TorqueMailboxManager implements MailboxManager {
-
- public static final char HIERARCHY_DELIMITER='.';
-
- public static final String USER_NAMESPACE="#mail";
private static Random random;
private MailboxCache mailboxCache;
@@ -64,8 +60,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);
}
@@ -76,35 +76,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?
- // FIXME should access getPersonalDefaultNameSpace...
- String userInbox=USER_NAMESPACE+HIERARCHY_DELIMITER+authUser.getUserName()+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()
Added: james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepositoryTest.java?view=auto&rev=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepositoryTest.java (added)
+++ james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/repository/MailboxManagerMailRepositoryTest.java Sun Dec 3 08:33:23 2006
@@ -0,0 +1,109 @@
+/****************************************************************
+ * 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.repository;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import junit.framework.TestCase;
+
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.james.test.mock.avalon.MockLogger;
+import org.xml.sax.SAXException;
+
+public class MailboxManagerMailRepositoryTest extends TestCase {
+
+ protected MailboxManagerMailRepository mailboxManagerMailRepository;
+
+ public void setUp() {
+ mailboxManagerMailRepository = new MailboxManagerMailRepository();
+ ContainerUtil.enableLogging(mailboxManagerMailRepository,
+ new MockLogger());
+ }
+
+ public void testConfigurePostfix() throws ConfigurationException,
+ SAXException, IOException {
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#mail/tuser/", ".INBOX", true));
+ assertEquals("#mail.tuser.INBOX", mailboxManagerMailRepository
+ .getMailboxName());
+
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#mail/tuser", ".NEWBOX", true));
+ assertEquals("#mail.tuser.NEWBOX", mailboxManagerMailRepository
+ .getMailboxName());
+
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#mail/tuser", ".NEWBOX", false));
+ assertEquals("#mail/tuser.NEWBOX", mailboxManagerMailRepository
+ .getMailboxName());
+
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#mail/tuser/", ".NEWBOX", false));
+ assertEquals("#mail/tuser/.NEWBOX", mailboxManagerMailRepository
+ .getMailboxName());
+ }
+
+ public void testConfigure() throws ConfigurationException,
+ SAXException, IOException {
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#system/tuser/", null, true));
+ assertEquals("#system.tuser", mailboxManagerMailRepository
+ .getMailboxName());
+
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#system/tuser", null, true));
+ assertEquals("#system.tuser", mailboxManagerMailRepository
+ .getMailboxName());
+
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#system/tuser", null, false));
+ assertEquals("#system/tuser", mailboxManagerMailRepository
+ .getMailboxName());
+
+ mailboxManagerMailRepository.configure(get(
+ "mailboxmanager://#system/tuser/", null, false));
+ assertEquals("#system/tuser/", mailboxManagerMailRepository
+ .getMailboxName());
+ }
+
+ protected Configuration get(String url, String postfix,
+ boolean translateDelimiter) throws ConfigurationException,
+ SAXException, IOException {
+ String trans = "";
+ if (translateDelimiter) {
+ trans = "translateDelimiters=\"true\" ";
+ }
+ if (postfix != null) {
+ postfix = "postfix=\"" + postfix + "\" ";
+ } else {
+ postfix = "";
+ }
+ String configXml = "<repository destinationURL=\"" + url + "\" " + postfix
+ + trans + "type=\"MAIL\" />";
+ InputStream stream=new ByteArrayInputStream(configXml.getBytes());
+ return new DefaultConfigurationBuilder().build(stream);
+ }
+
+}
Modified: james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java?view=diff&rev=481795&r1=481794&r2=481795
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java Sun Dec 3 08:33:23 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