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/22 07:37:25 UTC

svn commit: r925974 - in /james/imap/trunk: deployment/src/test/java/org/apache/james/imap/functional/jcr/ jcr/src/main/java/org/apache/james/imap/jcr/

Author: norman
Date: Mon Mar 22 06:37:24 2010
New Revision: 925974

URL: http://svn.apache.org/viewvc?rev=925974&view=rev
Log:
Move CND file loading to the Utils class (IMAP-120)

Modified:
    james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.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=925974&r1=925973&r2=925974&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 Mon Mar 22 06:37:24 2010
@@ -28,7 +28,7 @@ import org.apache.james.imap.functional.
 import org.apache.james.imap.functional.InMemoryUserManager;
 import org.apache.james.imap.jcr.JCRGlobalUserMailboxManager;
 import org.apache.james.imap.jcr.JCRGlobalUserSubscriptionManager;
-import org.apache.james.imap.jcr.JCRImapConstants;
+import org.apache.james.imap.jcr.JCRUtils;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.test.functional.HostSystem;
@@ -53,14 +53,19 @@ public class JCRHostSystem extends ImapH
         
         try {
             
+            String user = "user";
+            String pass = "pass";
+            String workspace = null;
             RepositoryConfig config = RepositoryConfig.create(new InputSource(this.getClass().getClassLoader().getResourceAsStream("test-repository.xml")), JACKRABBIT_HOME);
             repository =  RepositoryImpl.create(config);
 
-           
-             
+            
+            // Register imap cnd file
+            JCRUtils.registerCnd(repository, workspace, user, pass);
+            
             userManager = new InMemoryUserManager();
 
-            mailboxManager = new JCRGlobalUserMailboxManager(userManager, new JCRGlobalUserSubscriptionManager(repository, null, "user", "pass", JCRImapConstants.MAX_SCALING), repository, null, "user", "pass", JCRImapConstants.MAX_SCALING);
+            mailboxManager = new JCRGlobalUserMailboxManager(userManager, new JCRGlobalUserSubscriptionManager(repository, workspace, user, pass), repository, workspace, user, pass);
 
             final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
             resetUserMetaData();

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java?rev=925974&r1=925973&r2=925974&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java Mon Mar 22 06:37:24 2010
@@ -18,8 +18,6 @@
  ****************************************************************/
 package org.apache.james.imap.jcr;
 
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -33,7 +31,6 @@ import javax.jcr.SimpleCredentials;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.jcr.mail.JCRMailboxMapper;
 import org.apache.james.imap.mailbox.BadCredentialsException;
@@ -66,7 +63,6 @@ public class JCRMailboxManager extends S
         this.repository = repository;
         this.workspace = workspace;
         this.scaling = scaling;
-        registerCnd();
     }
 
     
@@ -74,19 +70,6 @@ public class JCRMailboxManager extends S
         this(authenticator, subscriber, repository, workspace, MAX_SCALING);
     }
     
-    protected void registerCnd() {
-        try {
-            Session session = repository.login(getWorkspace());
-            // Register the custom node types defined in the CND file
-            InputStream is = Thread.currentThread().getContextClassLoader()
-                                  .getResourceAsStream("org/apache/james/imap/jcr/imap.cnd");
-            CndImporter.registerNodeTypes(new InputStreamReader(is), session);
-            session.logout();
-        } catch (Exception e) {
-            throw new RuntimeException("Unable to register cnd file", e);
-        }    
-    }
-    
     /**
      * Return the scaling depth
      * 

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java?rev=925974&r1=925973&r2=925974&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java Mon Mar 22 06:37:24 2010
@@ -18,9 +18,6 @@
  ****************************************************************/
 package org.apache.james.imap.jcr;
 
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
 import javax.jcr.LoginException;
 import javax.jcr.NoSuchWorkspaceException;
 import javax.jcr.Repository;
@@ -30,7 +27,6 @@ import javax.jcr.SimpleCredentials;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.jcr.user.JCRSubscriptionMapper;
 import org.apache.james.imap.jcr.user.model.JCRSubscription;
@@ -58,7 +54,6 @@ public class JCRSubscriptionManager exte
         this.scaling = scaling;
         this.workspace = workspace;
         this.repository = repository;
-        registerCnd();
     }
 
 
@@ -66,19 +61,6 @@ public class JCRSubscriptionManager exte
         this(repository, workspace, MAX_SCALING);
     }
     
-    protected void registerCnd() {
-        try {
-            Session session = repository.login(getWorkspace());
-            // Register the custom node types defined in the CND file
-            InputStream is = Thread.currentThread().getContextClassLoader()
-                                  .getResourceAsStream("org/apache/james/imap/jcr/imap.cnd");
-            CndImporter.registerNodeTypes(new InputStreamReader(is), session);
-            session.logout();
-        } catch (Exception e) {
-            throw new RuntimeException("Unable to register cnd file", e);
-        }    
-    }
-
 
     /**
      * Return the scaling depth

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java?rev=925974&r1=925973&r2=925974&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRUtils.java Mon Mar 22 06:37:24 2010
@@ -18,18 +18,23 @@
  ****************************************************************/
 package org.apache.james.imap.jcr;
 
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.jcr.ItemExistsException;
 import javax.jcr.Node;
 import javax.jcr.PathNotFoundException;
+import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
 import javax.jcr.lock.LockException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.version.VersionException;
 
+import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.jackrabbit.util.Text;
 import org.apache.james.imap.mailbox.MailboxSession;
 
@@ -210,5 +215,37 @@ public class JCRUtils implements JCRImap
         }
     }
     
+
+    /**
+     * Register the imap CND file in the workspace
+     * 
+     * @param repository
+     * @param workspace
+     * @param username
+     * @param password
+     */
+    public static void registerCnd(Repository repository, String workspace, String username, String password) {
+        try {
+            Session session;
+            if (username == null) {
+                session = repository.login(workspace);
+            } else {
+                char pass[];
+                if (password == null) {
+                    pass = new char[0];
+                } else {
+                    pass = password.toCharArray();
+                }
+                session = repository.login(new SimpleCredentials(username, pass), workspace);
+            }
+            // Register the custom node types defined in the CND file
+            InputStream is = Thread.currentThread().getContextClassLoader()
+                                  .getResourceAsStream("org/apache/james/imap/jcr/imap.cnd");
+            CndImporter.registerNodeTypes(new InputStreamReader(is), session);
+            session.logout();
+        } catch (Exception e) {
+            throw new RuntimeException("Unable to register cnd file", e);
+        }    
+    }
     
 }



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