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 2008/12/29 00:03:36 UTC
svn commit: r729800 - in /james/protocols/imap/trunk: build-tools/
deployment/src/test/java/org/apache/james/imap/functional/
deployment/src/test/java/org/apache/james/imap/functional/jpa/
deployment/src/test/java/org/apache/james/mailboxmanager/torque/
Author: rdonkin
Date: Sun Dec 28 15:03:35 2008
New Revision: 729800
URL: http://svn.apache.org/viewvc?rev=729800&view=rev
Log:
Factor out separate host systems
Added:
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/FakeLogger.java
- copied, changed from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/FakeLogger.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/ImapHostSystem.java
- copied, changed from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/SimpleMailboxManagerProvider.java
- copied, changed from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleMailboxManagerProvider.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java
- copied, changed from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystemFactory.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java
- copied, changed from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UserDetails.java
- copied, changed from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/UserDetails.java
Removed:
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystemFactory.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/FakeLogger.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleMailboxManagerProvider.java
Modified:
james/protocols/imap/trunk/build-tools/common-build.xml
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/AuthenticatedStateTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ConcurrentSessionsTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/EventTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodySectionTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodyStructureTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchHeadersTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ListingTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/NonAuthenticatedStateTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/PartialFetchTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/RenameTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SearchTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SecurityTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedInboxTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedStateTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UidSearchTest.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
Modified: james/protocols/imap/trunk/build-tools/common-build.xml
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/build-tools/common-build.xml?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/build-tools/common-build.xml (original)
+++ james/protocols/imap/trunk/build-tools/common-build.xml Sun Dec 28 15:03:35 2008
@@ -248,6 +248,7 @@
<include name="${jars-prefix}processor-${version}.jar" />
<include name="${jars-prefix}seda-${version}.jar" />
<include name="${jars-prefix}torque-${version}.jar" />
+ <include name="${jars-prefix}jpa-${version}.jar" />
</fileset>
</path>
Copied: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/FakeLogger.java (from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/FakeLogger.java)
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/FakeLogger.java?p2=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/FakeLogger.java&p1=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/FakeLogger.java&r1=729782&r2=729800&rev=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/FakeLogger.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/FakeLogger.java Sun Dec 28 15:03:35 2008
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailboxmanager.torque;
+package org.apache.james.imap.functional;
import org.apache.commons.logging.Log;
Copied: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/ImapHostSystem.java (from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java)
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/ImapHostSystem.java?p2=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/ImapHostSystem.java&p1=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java&r1=729782&r2=729800&rev=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/ImapHostSystem.java Sun Dec 28 15:03:35 2008
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailboxmanager.torque;
+package org.apache.james.imap.functional;
import java.io.IOException;
import java.io.InputStream;
@@ -36,7 +36,7 @@
import org.apache.james.imap.main.ImapSessionImpl;
import org.apache.james.test.functional.HostSystem;
-public class TorqueHostSystem implements HostSystem {
+public abstract class ImapHostSystem implements HostSystem {
private ImapDecoder decoder;
@@ -44,21 +44,18 @@
private ImapProcessor processor;
- private Resetable dataReset;
-
private final Set users;
- public TorqueHostSystem() {
+ public ImapHostSystem() {
super();
users = new HashSet();
}
public void configure(final ImapDecoder decoder, final ImapEncoder encoder,
- final ImapProcessor processor, final Resetable dataReset) {
+ final ImapProcessor processor) {
this.decoder = decoder;
this.encoder = encoder;
this.processor = processor;
- this.dataReset = dataReset;
}
public HostSystem.Session newSession(Continuation continuation)
@@ -66,10 +63,12 @@
return new Session(continuation);
}
- public void reset() throws Exception {
+ public final void reset() throws Exception {
users.clear();
- dataReset.reset();
+ resetData();
}
+
+ protected abstract void resetData() throws Exception;
public String getHelloName() {
return "JAMES";
@@ -248,12 +247,5 @@
}
}
- public interface Resetable {
- public void reset() throws Exception;
- }
-
- public boolean addUser(String user, String password) throws Exception {
- TorqueMailboxManagerProviderSingleton.addUser(user, password);
- return true;
- }
+ public abstract boolean addUser(String user, String password) throws Exception;
}
Copied: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/SimpleMailboxManagerProvider.java (from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleMailboxManagerProvider.java)
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/SimpleMailboxManagerProvider.java?p2=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/SimpleMailboxManagerProvider.java&p1=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleMailboxManagerProvider.java&r1=729782&r2=729800&rev=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleMailboxManagerProvider.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/SimpleMailboxManagerProvider.java Sun Dec 28 15:03:35 2008
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailboxmanager.torque;
+package org.apache.james.imap.functional;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.manager.MailboxManager;
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/AuthenticatedStateTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/AuthenticatedStateTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/AuthenticatedStateTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/AuthenticatedStateTest.java Sun Dec 28 15:03:35 2008
@@ -24,6 +24,6 @@
public class AuthenticatedStateTest extends
AuthenticatedState {
public AuthenticatedStateTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ConcurrentSessionsTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ConcurrentSessionsTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ConcurrentSessionsTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ConcurrentSessionsTest.java Sun Dec 28 15:03:35 2008
@@ -25,7 +25,7 @@
ConcurrentSessions {
public ConcurrentSessionsTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/EventTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/EventTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/EventTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/EventTest.java Sun Dec 28 15:03:35 2008
@@ -24,7 +24,7 @@
public class EventTest extends Events {
public EventTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodySectionTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodySectionTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodySectionTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodySectionTest.java Sun Dec 28 15:03:35 2008
@@ -25,7 +25,7 @@
FetchBodySection {
public FetchBodySectionTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodyStructureTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodyStructureTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodyStructureTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchBodyStructureTest.java Sun Dec 28 15:03:35 2008
@@ -25,7 +25,7 @@
FetchBodyStructure {
public FetchBodyStructureTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchHeadersTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchHeadersTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchHeadersTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchHeadersTest.java Sun Dec 28 15:03:35 2008
@@ -24,7 +24,7 @@
public class FetchHeadersTest extends FetchHeaders {
public FetchHeadersTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/FetchTest.java Sun Dec 28 15:03:35 2008
@@ -24,6 +24,6 @@
public class FetchTest extends Fetch {
public FetchTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Copied: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java (from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystemFactory.java)
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java?p2=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java&p1=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystemFactory.java&r1=729782&r2=729800&rev=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystemFactory.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java Sun Dec 28 15:03:35 2008
@@ -20,17 +20,41 @@
package org.apache.james.imap.functional.jpa;
import java.io.File;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Locale;
+import org.apache.commons.configuration.BaseConfiguration;
import org.apache.commons.io.FileUtils;
import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
+import org.apache.james.imap.functional.ImapHostSystem;
+import org.apache.james.imap.jpa.om.MessageFlagsPeer;
+import org.apache.james.imap.jpa.om.MessageRowPeer;
import org.apache.james.imap.main.DefaultImapDecoderFactory;
import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
-import org.apache.james.mailboxmanager.torque.TorqueHostSystem;
-import org.apache.james.mailboxmanager.torque.TorqueMailboxManagerProviderSingleton;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
+import org.apache.james.mailboxmanager.torque.TorqueMailboxManager;
+import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
+import org.apache.james.mailboxmanager.torque.om.MessageBodyPeer;
+import org.apache.james.mailboxmanager.torque.om.MessageHeaderPeer;
+import org.apache.james.imap.functional.SimpleMailboxManagerProvider;
import org.apache.james.test.functional.HostSystem;
+import org.apache.torque.Torque;
+import org.apache.torque.util.BasePeer;
+import org.apache.torque.util.Transaction;
-public class JPAHostSystemFactory {
+public class JPAHostSystem extends ImapHostSystem {
+ private static TorqueMailboxManager TORQUE_MAILBOX_MANAGER;
+
+ private static SimpleUserManager USER_MANAGER;
+
+ private static SimpleMailboxManagerProvider PROVIDER;
+
+ public static final ImapHostSystem HOST = new JPAHostSystem();
+
public static final String META_DATA_DIRECTORY = "target/user-meta-data";
public static void resetUserMetaData() throws Exception {
@@ -42,24 +66,165 @@
dir.mkdirs();
}
- public static HostSystem createStandardImap() throws Exception {
+ public static HostSystem build() throws Exception {
- TorqueHostSystem host = TorqueMailboxManagerProviderSingleton.host;
+ ImapHostSystem host = HOST;
final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
resetUserMetaData();
- defaultImapProcessorFactory.configure(TorqueMailboxManagerProviderSingleton
- .getTorqueMailboxManagerProviderInstance());
+ defaultImapProcessorFactory.configure(getTorqueMailboxManagerProviderInstance());
host.configure(new DefaultImapDecoderFactory().buildImapDecoder(),
new DefaultImapEncoderFactory().buildImapEncoder(),
- defaultImapProcessorFactory.buildImapProcessor(),
- new TorqueHostSystem.Resetable() {
+ defaultImapProcessorFactory.buildImapProcessor());
+ return host;
+ }
- public void reset() throws Exception {
- TorqueMailboxManagerProviderSingleton.reset();
- resetUserMetaData();
- }
+ private static final String[] tableNames = new String[] {
+ MailboxRowPeer.TABLE_NAME, MessageRowPeer.TABLE_NAME,
+ MessageFlagsPeer.TABLE_NAME, MessageHeaderPeer.TABLE_NAME,
+ MessageBodyPeer.TABLE_NAME };
+
+ private static final String[] CREATE_STATEMENTS = {
+ "CREATE TABLE mailbox"
+ + "("
+ + " mailbox_id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY,"
+ + " name VARCHAR(255) NOT NULL,"
+ + " uid_validity BIGINT NOT NULL,"
+ + " last_uid BIGINT NOT NULL,"
+ + " message_count INTEGER default 0,"
+ + " size BIGINT default 0,"
+ + " PRIMARY KEY(mailbox_id),"
+ + " UNIQUE (name))",
+ " CREATE TABLE message"
+ + " ("
+ + " mailbox_id BIGINT NOT NULL,"
+ + " uid BIGINT NOT NULL,"
+ + " internal_date TIMESTAMP,"
+ + " size INTEGER,"
+ + " PRIMARY KEY(mailbox_id,uid),"
+ + " FOREIGN KEY (mailbox_id) REFERENCES mailbox (mailbox_id)"
+ + " ON DELETE CASCADE" + " )",
+ "CREATE TABLE message_flags"
+ + " ("
+ + " mailbox_id BIGINT NOT NULL,"
+ + " uid BIGINT NOT NULL,"
+ + " answered INTEGER default 0 NOT NULL,"
+ + " deleted INTEGER default 0 NOT NULL,"
+ + " draft INTEGER default 0 NOT NULL,"
+ + " flagged INTEGER default 0 NOT NULL,"
+ + " recent INTEGER default 0 NOT NULL,"
+ + " seen INTEGER default 0 NOT NULL,"
+ + " PRIMARY KEY(mailbox_id,uid),"
+ + " FOREIGN KEY (mailbox_id, uid) REFERENCES message (mailbox_id, uid)"
+ + " ON DELETE CASCADE" + " )",
+ "CREATE TABLE message_header"
+ + " ("
+ + " mailbox_id BIGINT NOT NULL,"
+ + " uid BIGINT NOT NULL,"
+ + " line_number INTEGER NOT NULL,"
+ + " field VARCHAR(256) NOT NULL,"
+ + " value VARCHAR(1024) NOT NULL,"
+ + " PRIMARY KEY(mailbox_id,uid,line_number),"
+ + " FOREIGN KEY (mailbox_id, uid) REFERENCES message (mailbox_id, uid)"
+ + " ON DELETE CASCADE" + " )",
+ "CREATE TABLE message_body"
+ + " ("
+ + " mailbox_id BIGINT NOT NULL,"
+ + " uid BIGINT NOT NULL,"
+ + " body BLOB NOT NULL,"
+ + " PRIMARY KEY(mailbox_id,uid),"
+ + " FOREIGN KEY (mailbox_id, uid) REFERENCES message (mailbox_id, uid)"
+ + " ON DELETE CASCADE" + " )" };
+
+ public static void initialize() throws Exception {
+ BaseConfiguration torqueConf = configureDefaults();
+ Connection conn = null;
+ Torque.init(torqueConf);
+ conn = Transaction.begin(MailboxRowPeer.DATABASE_NAME);
+
+ DatabaseMetaData dbMetaData = conn.getMetaData();
+
+ for (int i = 0; i < tableNames.length; i++) {
+ if (!tableExists(dbMetaData, tableNames[i])) {
+ BasePeer.executeStatement(CREATE_STATEMENTS[i], conn);
+ }
+ }
- });
- return host;
+ Transaction.commit(conn);
+ }
+
+ private static boolean tableExists(DatabaseMetaData dbMetaData,
+ String tableName) throws SQLException {
+ return (tableExistsCaseSensitive(dbMetaData, tableName)
+ || tableExistsCaseSensitive(dbMetaData, tableName
+ .toUpperCase(Locale.US)) || tableExistsCaseSensitive(
+ dbMetaData, tableName.toLowerCase(Locale.US)));
+ }
+
+ private static boolean tableExistsCaseSensitive(
+ DatabaseMetaData dbMetaData, String tableName) throws SQLException {
+ ResultSet rsTables = dbMetaData.getTables(null, null, tableName, null);
+ try {
+ boolean found = rsTables.next();
+ return found;
+ } finally {
+ if (rsTables != null) {
+ rsTables.close();
+ }
+ }
+ }
+
+ public static BaseConfiguration configureDefaults()
+ throws org.apache.commons.configuration.ConfigurationException {
+ BaseConfiguration torqueConf = new BaseConfiguration();
+ torqueConf.addProperty("torque.database.default", "mailboxmanager");
+ torqueConf.addProperty("torque.database.mailboxmanager.adapter",
+ "derby");
+ torqueConf.addProperty("torque.dsfactory.mailboxmanager.factory",
+ "org.apache.torque.dsfactory.SharedPoolDataSourceFactory");
+ torqueConf.addProperty(
+ "torque.dsfactory.mailboxmanager.connection.driver",
+ "org.apache.derby.jdbc.EmbeddedDriver");
+ torqueConf.addProperty(
+ "torque.dsfactory.mailboxmanager.connection.url",
+ "jdbc:derby:target/testdb;create=true");
+ torqueConf.addProperty(
+ "torque.dsfactory.mailboxmanager.connection.user", "app");
+ torqueConf.addProperty(
+ "torque.dsfactory.mailboxmanager.connection.password", "app");
+ torqueConf.addProperty(
+ "torque.dsfactory.mailboxmanager.pool.maxActive", "100");
+ return torqueConf;
}
+
+
+ public synchronized static MailboxManagerProvider getTorqueMailboxManagerProviderInstance()
+ throws Exception {
+ if (PROVIDER == null) {
+ getMailboxManager();
+ PROVIDER = new SimpleMailboxManagerProvider();
+ PROVIDER.setMailboxManager(TORQUE_MAILBOX_MANAGER);
+ }
+ return PROVIDER;
+
+ }
+
+ public boolean addUser(String user, String password) {
+ USER_MANAGER.addUser(user, password);
+ return true;
+ }
+
+ private static TorqueMailboxManager getMailboxManager() throws Exception {
+ if (TORQUE_MAILBOX_MANAGER == null) {
+ USER_MANAGER = new SimpleUserManager();
+ initialize();
+ TORQUE_MAILBOX_MANAGER = new TorqueMailboxManager(USER_MANAGER);
+ }
+ return TORQUE_MAILBOX_MANAGER;
+ }
+
+ public void resetData() throws Exception {
+ resetUserMetaData();
+ getMailboxManager().deleteEverything();
+ }
+
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ListingTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ListingTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ListingTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/ListingTest.java Sun Dec 28 15:03:35 2008
@@ -24,7 +24,7 @@
public class ListingTest extends Listing {
public ListingTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/NonAuthenticatedStateTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/NonAuthenticatedStateTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/NonAuthenticatedStateTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/NonAuthenticatedStateTest.java Sun Dec 28 15:03:35 2008
@@ -25,6 +25,6 @@
NonAuthenticatedState {
public NonAuthenticatedStateTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/PartialFetchTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/PartialFetchTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/PartialFetchTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/PartialFetchTest.java Sun Dec 28 15:03:35 2008
@@ -24,7 +24,7 @@
public class PartialFetchTest extends PartialFetch {
public PartialFetchTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/RenameTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/RenameTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/RenameTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/RenameTest.java Sun Dec 28 15:03:35 2008
@@ -24,7 +24,7 @@
public class RenameTest extends Rename {
public RenameTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SearchTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SearchTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SearchTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SearchTest.java Sun Dec 28 15:03:35 2008
@@ -24,6 +24,6 @@
public class SearchTest extends Search {
public SearchTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SecurityTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SecurityTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SecurityTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SecurityTest.java Sun Dec 28 15:03:35 2008
@@ -24,7 +24,7 @@
public class SecurityTest extends Security {
public SecurityTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectTest.java Sun Dec 28 15:03:35 2008
@@ -24,7 +24,7 @@
public class SelectTest extends Select {
public SelectTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedInboxTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedInboxTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedInboxTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedInboxTest.java Sun Dec 28 15:03:35 2008
@@ -24,6 +24,6 @@
public class SelectedInboxTest extends SelectedInbox {
public SelectedInboxTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedStateTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedStateTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedStateTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SelectedStateTest.java Sun Dec 28 15:03:35 2008
@@ -24,6 +24,6 @@
public class SelectedStateTest extends SelectedState {
public SelectedStateTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Copied: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java (from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java)
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java?p2=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java&p1=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java&r1=729782&r2=729800&rev=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java Sun Dec 28 15:03:35 2008
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailboxmanager.torque;
+package org.apache.james.imap.functional.jpa;
import java.util.Collection;
import java.util.HashMap;
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UidSearchTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UidSearchTest.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UidSearchTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UidSearchTest.java Sun Dec 28 15:03:35 2008
@@ -24,6 +24,6 @@
public class UidSearchTest extends UidSearch {
public UidSearchTest() throws Exception {
- super(JPAHostSystemFactory.createStandardImap());
+ super(JPAHostSystem.build());
}
}
Copied: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UserDetails.java (from r729782, james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/UserDetails.java)
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UserDetails.java?p2=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UserDetails.java&p1=james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/UserDetails.java&r1=729782&r2=729800&rev=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/UserDetails.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/UserDetails.java Sun Dec 28 15:03:35 2008
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailboxmanager.torque;
+package org.apache.james.imap.functional.jpa;
import java.util.Collection;
import java.util.HashSet;
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystem.java Sun Dec 28 15:03:35 2008
@@ -19,241 +19,20 @@
package org.apache.james.mailboxmanager.torque;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetEncoder;
-import java.util.HashSet;
-import java.util.Set;
+import org.apache.james.imap.functional.ImapHostSystem;
-import org.apache.james.api.imap.process.ImapProcessor;
-import org.apache.james.imap.decode.ImapDecoder;
-import org.apache.james.imap.encode.ImapEncoder;
-import org.apache.james.imap.main.ImapRequestHandler;
-import org.apache.james.imap.main.ImapSessionImpl;
-import org.apache.james.test.functional.HostSystem;
-
-public class TorqueHostSystem implements HostSystem {
-
- private ImapDecoder decoder;
-
- private ImapEncoder encoder;
-
- private ImapProcessor processor;
-
- private Resetable dataReset;
-
- private final Set users;
-
- public TorqueHostSystem() {
- super();
- users = new HashSet();
- }
-
- public void configure(final ImapDecoder decoder, final ImapEncoder encoder,
- final ImapProcessor processor, final Resetable dataReset) {
- this.decoder = decoder;
- this.encoder = encoder;
- this.processor = processor;
- this.dataReset = dataReset;
- }
-
- public HostSystem.Session newSession(Continuation continuation)
- throws Exception {
- return new Session(continuation);
- }
-
- public void reset() throws Exception {
- users.clear();
- dataReset.reset();
- }
-
- public String getHelloName() {
- return "JAMES";
- }
-
- public ImapDecoder getImapDecoder() {
- return decoder;
- }
-
- public ImapEncoder getImapEncoder() {
- return encoder;
- }
-
- public ImapProcessor getImapProcessor() {
- return processor;
- }
-
- public int getResetLength() {
- return Integer.MAX_VALUE;
- }
-
- public int countUsers() {
- return users.size();
- }
-
- public String getRealName(String name) {
- return name;
- }
-
- class Session implements HostSystem.Session {
- ByteBufferOutputStream out;
-
- ByteBufferInputStream in;
-
- ImapRequestHandler handler;
-
- ImapSessionImpl session;
-
- boolean isReadLast = true;
-
- public Session(Continuation continuation) {
- out = new ByteBufferOutputStream(continuation);
- in = new ByteBufferInputStream();
- handler = new ImapRequestHandler(decoder, processor, encoder);
- handler.setLog(new FakeLogger());
- session = new ImapSessionImpl();
- }
-
- public String readLine() throws Exception {
- if (!isReadLast) {
- handler.handleRequest(in, out, session);
- isReadLast = true;
- }
- final String result = out.nextLine();
- return result;
- }
-
- public void start() throws Exception {
- // Welcome message handled in the server
- out.write("* OK IMAP4rev1 Server ready\r\n");
- }
-
- public void stop() throws Exception {
-
- }
-
- public void writeLine(String line) throws Exception {
- isReadLast = false;
- in.nextLine(line);
- }
-
- public void forceConnectionClose(String byeMessage) {
- try {
- out.write(byeMessage);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- static class ByteBufferInputStream extends InputStream {
-
- ByteBuffer buffer = ByteBuffer.allocate(16384);
-
- CharsetEncoder encoder = Charset.forName("ASCII").newEncoder();
-
- boolean readLast = true;
-
- public int read() throws IOException {
- if (!readLast) {
- readLast = true;
- buffer.flip();
- }
- int result = -1;
- if (buffer.hasRemaining()) {
- result = buffer.get();
- }
- return result;
- }
-
- public void nextLine(String line) {
- if (buffer.position() > 0 && readLast) {
- buffer.compact();
- }
- encoder.encode(CharBuffer.wrap(line), buffer, true);
- buffer.put((byte) '\r');
- buffer.put((byte) '\n');
- readLast = false;
- }
- }
-
- static class ByteBufferOutputStream extends OutputStream {
- ByteBuffer buffer = ByteBuffer.allocate(65536);
-
- Charset ascii = Charset.forName("ASCII");
-
- Continuation continuation;
-
- boolean matchPlus = false;
-
- boolean matchCR = false;
-
- boolean matchLF = false;
-
- public ByteBufferOutputStream(Continuation continuation) {
- this.continuation = continuation;
- }
-
- public void write(String message) throws IOException {
- ascii.newEncoder().encode(CharBuffer.wrap(message), buffer, true);
- }
-
- public void write(int b) throws IOException {
- buffer.put((byte) b);
- if (b == '\n' && matchPlus && matchCR && matchLF) {
- matchPlus = false;
- matchCR = false;
- matchLF = false;
- continuation.doContinue();
- } else if (b == '\n') {
- matchLF = true;
- matchPlus = false;
- matchCR = false;
- } else if (b == '+' && matchLF) {
- matchPlus = true;
- matchCR = false;
- } else if (b == '\r' && matchPlus && matchLF) {
- matchCR = true;
- } else {
- matchPlus = false;
- matchCR = false;
- matchLF = false;
- }
- }
-
- public String nextLine() throws Exception {
- buffer.flip();
- byte last = 0;
- while (buffer.hasRemaining()) {
- byte next = buffer.get();
- if (last == '\r' && next == '\n') {
- break;
- }
- last = next;
- }
- final ByteBuffer readOnlyBuffer = buffer.asReadOnlyBuffer();
- readOnlyBuffer.flip();
- int limit = readOnlyBuffer.limit() - 2;
- if (limit < 0) {
- limit = 0;
- }
- readOnlyBuffer.limit(limit);
- String result = ascii.decode(readOnlyBuffer).toString();
- buffer.compact();
- return result;
- }
- }
-
- public interface Resetable {
- public void reset() throws Exception;
- }
+public class TorqueHostSystem extends ImapHostSystem {
public boolean addUser(String user, String password) throws Exception {
TorqueMailboxManagerProviderSingleton.addUser(user, password);
return true;
}
+
+ //@Override
+ protected void resetData() throws Exception {
+ TorqueMailboxManagerProviderSingleton.reset();
+ TorqueHostSystemFactory.resetUserMetaData();
+ }
+
+
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java Sun Dec 28 15:03:35 2008
@@ -23,9 +23,9 @@
import org.apache.commons.io.FileUtils;
import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
+import org.apache.james.imap.functional.ImapHostSystem;
import org.apache.james.imap.main.DefaultImapDecoderFactory;
import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
-import org.apache.james.mailboxmanager.torque.TorqueHostSystem.Resetable;
import org.apache.james.test.functional.HostSystem;
public class TorqueHostSystemFactory {
@@ -43,22 +43,14 @@
public static HostSystem createStandardImap() throws Exception {
- TorqueHostSystem host = TorqueMailboxManagerProviderSingleton.host;
+ ImapHostSystem host = TorqueMailboxManagerProviderSingleton.HOST;
final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
resetUserMetaData();
defaultImapProcessorFactory.configure(TorqueMailboxManagerProviderSingleton
.getTorqueMailboxManagerProviderInstance());
host.configure(new DefaultImapDecoderFactory().buildImapDecoder(),
new DefaultImapEncoderFactory().buildImapEncoder(),
- defaultImapProcessorFactory.buildImapProcessor(),
- new TorqueHostSystem.Resetable() {
-
- public void reset() throws Exception {
- TorqueMailboxManagerProviderSingleton.reset();
- resetUserMetaData();
- }
-
- });
+ defaultImapProcessorFactory.buildImapProcessor());
return host;
}
}
Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java?rev=729800&r1=729799&r2=729800&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java Sun Dec 28 15:03:35 2008
@@ -26,6 +26,8 @@
import java.util.Locale;
import org.apache.commons.configuration.BaseConfiguration;
+import org.apache.james.imap.functional.ImapHostSystem;
+import org.apache.james.imap.functional.SimpleMailboxManagerProvider;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
import org.apache.james.mailboxmanager.torque.TorqueMailboxManager;
import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
@@ -39,13 +41,11 @@
public class TorqueMailboxManagerProviderSingleton {
- // TODO: replicates code in server
private static final String[] tableNames = new String[] {
MailboxRowPeer.TABLE_NAME, MessageRowPeer.TABLE_NAME,
MessageFlagsPeer.TABLE_NAME, MessageHeaderPeer.TABLE_NAME,
MessageBodyPeer.TABLE_NAME };
- // TODO: replicates code in server
private static final String[] CREATE_STATEMENTS = {
"CREATE TABLE mailbox"
+ "("
@@ -98,7 +98,6 @@
+ " FOREIGN KEY (mailbox_id, uid) REFERENCES message (mailbox_id, uid)"
+ " ON DELETE CASCADE" + " )" };
- // TODO: replicates code in server
public static void initialize() throws Exception {
BaseConfiguration torqueConf = configureDefaults();
Connection conn = null;
@@ -110,16 +109,12 @@
for (int i = 0; i < tableNames.length; i++) {
if (!tableExists(dbMetaData, tableNames[i])) {
BasePeer.executeStatement(CREATE_STATEMENTS[i], conn);
- System.out.println("Created table " + tableNames[i]);
- System.out.println(CREATE_STATEMENTS[i]);
}
}
Transaction.commit(conn);
- System.out.println("MailboxManager has been initialized");
}
- // TODO: replicates code in server
private static boolean tableExists(DatabaseMetaData dbMetaData,
String tableName) throws SQLException {
return (tableExistsCaseSensitive(dbMetaData, tableName)
@@ -128,7 +123,6 @@
dbMetaData, tableName.toLowerCase(Locale.US)));
}
- // TODO: replicates code in server
private static boolean tableExistsCaseSensitive(
DatabaseMetaData dbMetaData, String tableName) throws SQLException {
ResultSet rsTables = dbMetaData.getTables(null, null, tableName, null);
@@ -142,7 +136,6 @@
}
}
- // TODO: replicates code in server
public static BaseConfiguration configureDefaults()
throws org.apache.commons.configuration.ConfigurationException {
BaseConfiguration torqueConf = new BaseConfiguration();
@@ -166,36 +159,36 @@
return torqueConf;
}
- private static TorqueMailboxManager torqueMailboxManager;
+ private static TorqueMailboxManager TORQUE_MAILBOX_MANAGER;
- private static SimpleUserManager userManager;
+ private static SimpleUserManager USER_MANAGER;
- private static SimpleMailboxManagerProvider provider;
+ private static SimpleMailboxManagerProvider PROVIDER;
- public static final TorqueHostSystem host = new TorqueHostSystem();
+ public static final ImapHostSystem HOST = new TorqueHostSystem();
public synchronized static MailboxManagerProvider getTorqueMailboxManagerProviderInstance()
throws Exception {
- if (provider == null) {
+ if (PROVIDER == null) {
getMailboxManager();
- provider = new SimpleMailboxManagerProvider();
- provider.setMailboxManager(torqueMailboxManager);
+ PROVIDER = new SimpleMailboxManagerProvider();
+ PROVIDER.setMailboxManager(TORQUE_MAILBOX_MANAGER);
}
- return provider;
+ return PROVIDER;
}
public static void addUser(String user, String password) {
- userManager.addUser(user, password);
+ USER_MANAGER.addUser(user, password);
}
private static TorqueMailboxManager getMailboxManager() throws Exception {
- if (torqueMailboxManager == null) {
- userManager = new SimpleUserManager();
+ if (TORQUE_MAILBOX_MANAGER == null) {
+ USER_MANAGER = new SimpleUserManager();
initialize();
- torqueMailboxManager = new TorqueMailboxManager(userManager);
+ TORQUE_MAILBOX_MANAGER = new TorqueMailboxManager(USER_MANAGER);
}
- return torqueMailboxManager;
+ return TORQUE_MAILBOX_MANAGER;
}
public static void reset() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org