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 no...@apache.org on 2010/03/17 08:23:23 UTC

svn commit: r924179 - in /james/imap/trunk: deployment/src/test/java/org/apache/james/imap/functional/jcr/ deployment/src/test/resources/ protocol-tester/src/main/java/org/apache/james/test/functional/ seda/src/test/java/org/apache/james/imap/functional/

Author: norman
Date: Wed Mar 17 07:23:22 2010
New Revision: 924179

URL: http://svn.apache.org/viewvc?rev=924179&view=rev
Log:
fix JCR junit setup (IMAP-93)

Modified:
    james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java
    james/imap/trunk/deployment/src/test/resources/log4j.properties
    james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractProtocolTestFramework.java
    james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractSimpleScriptedTestProtocol.java
    james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForAuthenticatedState.java
    james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForNonAuthenticatedState.java

Modified: james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java?rev=924179&r1=924178&r2=924179&view=diff
==============================================================================
--- james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java (original)
+++ james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java Wed Mar 17 07:23:22 2010
@@ -19,8 +19,12 @@
 package org.apache.james.imap.functional.jcr;
 
 import java.io.File;
+import java.io.FileInputStream;
+
+import javax.jcr.Repository;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.TransientRepository;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
@@ -44,35 +48,30 @@ public class JCRHostSystem extends ImapH
 
     private static final String JACKRABBIT_HOME = "deployment/target/jackrabbit";
     public static final String META_DATA_DIRECTORY = "target/user-meta-data";
-    private TransientRepository repository;
-
-    private javax.jcr.Session session;
+    private RepositoryImpl repository;
     
     public JCRHostSystem() throws Exception {
-        
-        File home = new File(JACKRABBIT_HOME);
-        if (home.exists()) {
-            FileUtils.deleteDirectory(home);
-        }
 
-        RepositoryConfig config = RepositoryConfig.create(new InputSource(this.getClass().getClassLoader().getResourceAsStream("test-repository.xml")), JACKRABBIT_HOME);
-        repository = new TransientRepository(config);
-        session = repository.login();
-
-        userManager = new InMemoryUserManager();
-          
-
-        
-        mailboxManager = new JCRGlobalUserMailboxManager(userManager, new JCRGlobalUserSubscriptionManager(repository, null, "user", "pass"), repository, null, "user", "pass");
-        
-        final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
-        resetUserMetaData();
-        mailboxManager.deleteEverything();
-        
-        defaultImapProcessorFactory.configure(mailboxManager);
-        configure(new DefaultImapDecoderFactory().buildImapDecoder(),
-                new DefaultImapEncoderFactory().buildImapEncoder(),
-                defaultImapProcessorFactory.buildImapProcessor());
+        delete(new File(JACKRABBIT_HOME));
+        try {
+            
+            RepositoryConfig config = RepositoryConfig.create(new InputSource(new FileInputStream("deployment/src/test/resources/test-repository.xml")), JACKRABBIT_HOME);
+            repository =  RepositoryImpl.create(config);
+
+            userManager = new InMemoryUserManager();
+
+            mailboxManager = new JCRGlobalUserMailboxManager(userManager, new JCRGlobalUserSubscriptionManager(repository, null, "user", "pass"), repository, null, "user", "pass");
+
+            final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
+            resetUserMetaData();
+            mailboxManager.deleteEverything();
+
+            defaultImapProcessorFactory.configure(mailboxManager);
+            configure(new DefaultImapDecoderFactory().buildImapDecoder(), new DefaultImapEncoderFactory().buildImapEncoder(), defaultImapProcessorFactory.buildImapProcessor());
+        } catch (Exception e) {
+            shutdownRepository();
+            throw e;
+        }
     }
 
    
@@ -97,9 +96,34 @@ public class JCRHostSystem extends ImapH
 
     @Override
     public void afterTests() throws Exception {
-        session.logout();
-        repository.shutdown();
-        repository = null;
+        shutdownRepository();
+    }
+    
+    private void shutdownRepository() throws Exception{
+        if (repository != null) {
+            repository.shutdown();
+            repository = null;
+        }
+        
+        
+        //File home = new File(JACKRABBIT_HOME);
+        //delete(home);
+    }
+    
+    private void delete(File home) throws Exception{
+        if (home.exists()) {
+            File[] files = home.listFiles();
+            for (int i = 0;i < files.length; i++) {
+                File f = files[i];
+                if (f.isDirectory()) {
+                    delete(f);
+                } else {
+                    f.delete();
+                }            
+            }
+            home.delete();
+            FileUtils.deleteDirectory(home);
+        }
     }
 
 

Modified: james/imap/trunk/deployment/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/resources/log4j.properties?rev=924179&r1=924178&r2=924179&view=diff
==============================================================================
--- james/imap/trunk/deployment/src/test/resources/log4j.properties (original)
+++ james/imap/trunk/deployment/src/test/resources/log4j.properties Wed Mar 17 07:23:22 2010
@@ -1,4 +1,4 @@
-log4j.rootLogger=INGO, A1
+log4j.rootLogger=WARN, A1
 log4j.appender.A1=org.apache.log4j.ConsoleAppender
 log4j.appender.A1.layout=org.apache.log4j.PatternLayout
 

Modified: james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractProtocolTestFramework.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractProtocolTestFramework.java?rev=924179&r1=924178&r2=924179&view=diff
==============================================================================
--- james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractProtocolTestFramework.java (original)
+++ james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractProtocolTestFramework.java Wed Mar 17 07:23:22 2010
@@ -19,6 +19,7 @@
 
 package org.apache.james.test.functional;
 
+import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 
@@ -42,20 +43,28 @@ public abstract class AbstractProtocolTe
     /** The Protocol session which is run after the testElements. */
     protected ProtocolSession postElements = new ProtocolSession();
 
-    private static HostSystem hostSystem;
+    private HostSystem hostSystem;
     
     private final String userName;
     private final String password;
 
     public AbstractProtocolTestFramework(HostSystem hostSystem, String userName, String password) throws Exception {
-        AbstractProtocolTestFramework.hostSystem = hostSystem;
+        this.hostSystem = hostSystem;
         this.userName = userName;
         this.password = password;
+    }
+
+    @Before
+    public void setUp() throws Exception {
         hostSystem.beforeTests();
+        setUpEnvironment();
 
     }
 
-
+    @After
+    public void tearDown() throws Exception {
+        hostSystem.afterTests();
+    }
     protected void continueAfterFailure() {
         preElements.setContinueAfterFailure(true);
         testElements.setContinueAfterFailure(true);
@@ -111,15 +120,9 @@ public abstract class AbstractProtocolTe
     /**
      * Initialises the UsersRepository and ImapHost on first call.
      */
-    @Before
     public void setUpEnvironment() throws Exception {
         hostSystem.reset();
         hostSystem.addUser(userName, password);
     }
     
-    
-    @AfterClass
-    public static void afterTests() throws Exception {
-        hostSystem.afterTests();
-    }
 }

Modified: james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractSimpleScriptedTestProtocol.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractSimpleScriptedTestProtocol.java?rev=924179&r1=924178&r2=924179&view=diff
==============================================================================
--- james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractSimpleScriptedTestProtocol.java (original)
+++ james/imap/trunk/protocol-tester/src/main/java/org/apache/james/test/functional/AbstractSimpleScriptedTestProtocol.java Wed Mar 17 07:23:22 2010
@@ -56,6 +56,7 @@ public abstract class AbstractSimpleScri
 
     @After
     public void tearDown() throws Exception {
+        super.tearDown();
         Locale.setDefault(BASE_DEFAULT_LOCALE);
     }
 

Modified: james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForAuthenticatedState.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForAuthenticatedState.java?rev=924179&r1=924178&r2=924179&view=diff
==============================================================================
--- james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForAuthenticatedState.java (original)
+++ james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForAuthenticatedState.java Wed Mar 17 07:23:22 2010
@@ -71,6 +71,7 @@ public abstract class FrameworkForAuthen
      */
     @Before
     public void setUp() throws Exception {
+        super.setUp();
         addTestFile("Welcome.test", preElements);
         addLogin(USER, PASSWORD);
     }

Modified: james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForNonAuthenticatedState.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForNonAuthenticatedState.java?rev=924179&r1=924178&r2=924179&view=diff
==============================================================================
--- james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForNonAuthenticatedState.java (original)
+++ james/imap/trunk/seda/src/test/java/org/apache/james/imap/functional/FrameworkForNonAuthenticatedState.java Wed Mar 17 07:23:22 2010
@@ -52,6 +52,8 @@ public abstract class FrameworkForNonAut
      */
     @Before
     public void setUp() throws Exception {
+        super.setUp();
+
         addTestFile("Welcome.test", preElements);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org