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