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/21 18:40:59 UTC

svn commit: r925839 - 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: Sun Mar 21 17:40:59 2010
New Revision: 925839

URL: http://svn.apache.org/viewvc?rev=925839&view=rev
Log:
Register cnd file one class instancing (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

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=925839&r1=925838&r2=925839&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 Sun Mar 21 17:40:59 2010
@@ -19,14 +19,8 @@
 package org.apache.james.imap.functional.jcr;
 
 import java.io.File;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import javax.jcr.Session;
-import javax.jcr.SimpleCredentials;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
@@ -62,13 +56,7 @@ public class JCRHostSystem extends ImapH
             RepositoryConfig config = RepositoryConfig.create(new InputSource(this.getClass().getClassLoader().getResourceAsStream("test-repository.xml")), JACKRABBIT_HOME);
             repository =  RepositoryImpl.create(config);
 
-            Session session = repository.login(new SimpleCredentials("user", new char[0]),"default");
-            // Register the custom node types defined in the CND file
-            // TODO: should we move this to the MailboxManager implementation ?
-            InputStream is = Thread.currentThread().getContextClassLoader()
-                                  .getResourceAsStream("org/apache/james/imap/jcr/imap.cnd");
-            CndImporter.registerNodeTypes(new InputStreamReader(is), session);
-            session.logout();
+           
              
             userManager = new InMemoryUserManager();
 

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=925839&r1=925838&r2=925839&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 Sun Mar 21 17:40:59 2010
@@ -18,6 +18,8 @@
  ****************************************************************/
 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;
@@ -31,6 +33,7 @@ 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;
@@ -57,13 +60,28 @@ public class JCRMailboxManager extends S
     private final String workspace;
     private final Log logger = LogFactory.getLog(JCRMailboxManager.class);
     private final int scaling;
+    
     public JCRMailboxManager(final Authenticator authenticator, final Subscriber subscriber, final Repository repository, final String workspace, final int scaling) {
         super(authenticator, subscriber);
         this.repository = repository;
         this.workspace = workspace;
         this.scaling = scaling;
+        registerCnd();
     }
 
+    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");
+        }    
+    }
+    
     /**
      * 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=925839&r1=925838&r2=925839&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 Sun Mar 21 17:40:59 2010
@@ -18,6 +18,9 @@
  ****************************************************************/
 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;
@@ -27,6 +30,7 @@ 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;
@@ -54,6 +58,20 @@ public class JCRSubscriptionManager exte
         this.scaling = scaling;
         this.workspace = workspace;
         this.repository = repository;
+        registerCnd();
+    }
+
+    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");
+        }    
     }
 
 



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