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