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:25:14 UTC
svn commit: r925833 - in /james/server/trunk: ./ jcr-store/
jcr-store/src/main/java/org/apache/james/jcr/
jcr-store/src/test/java/org/apache/james/jcr/ jcr-store/src/test/resources/
spring-deployment/
Author: norman
Date: Sun Mar 21 17:25:14 2010
New Revision: 925833
URL: http://svn.apache.org/viewvc?rev=925833&view=rev
Log:
Upgrade to jackrabbit 2.0.0 and add imap jcr implementation
Added:
james/server/trunk/jcr-store/src/test/resources/log4j.properties
james/server/trunk/jcr-store/src/test/resources/test-repository.xml
Modified:
james/server/trunk/jcr-store/pom.xml
james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/AbstractJCRRepository.java
james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRMailRepository.java
james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRUsersRepository.java
james/server/trunk/jcr-store/src/test/java/org/apache/james/jcr/JcrUserRepositoryTest.java
james/server/trunk/pom.xml
james/server/trunk/spring-deployment/pom.xml
Modified: james/server/trunk/jcr-store/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/jcr-store/pom.xml?rev=925833&r1=925832&r2=925833&view=diff
==============================================================================
--- james/server/trunk/jcr-store/pom.xml (original)
+++ james/server/trunk/jcr-store/pom.xml Sun Mar 21 17:25:14 2010
@@ -63,12 +63,6 @@
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-rmi</artifactId>
- <exclusions>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
@@ -83,6 +77,11 @@
<artifactId>jackrabbit-core</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.james</groupId>
@@ -105,7 +104,11 @@
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
</dependency>
-
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Modified: james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/AbstractJCRRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/AbstractJCRRepository.java?rev=925833&r1=925832&r2=925833&view=diff
==============================================================================
--- james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/AbstractJCRRepository.java (original)
+++ james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/AbstractJCRRepository.java Sun Mar 21 17:25:14 2010
@@ -34,11 +34,12 @@ import javax.jcr.query.QueryManager;
import org.apache.commons.logging.Log;
import org.apache.jackrabbit.util.ISO9075;
import org.apache.jackrabbit.util.Text;
+import org.apache.james.lifecycle.LogEnabled;
/**
* Framework for JCR repositories used by James.
*/
-class AbstractJCRRepository {
+public abstract class AbstractJCRRepository implements LogEnabled{
protected Log logger;
@@ -65,23 +66,18 @@ class AbstractJCRRepository {
*/
protected String path = "james";
- /**
- * For setter injection.
- */
- public AbstractJCRRepository(Log logger) {
- super();
- this.logger = logger;
+ public AbstractJCRRepository(String path) {
+ this.path = path;
}
/**
* Minimal constructor for injection.
* @param repository not null
*/
- public AbstractJCRRepository(Repository repository, Log logger) {
+ public AbstractJCRRepository(Repository repository) {
super();
this.repository = repository;
credentials = new SimpleCredentials("userid", "".toCharArray());
- this.logger = logger;
}
/**
@@ -94,14 +90,12 @@ class AbstractJCRRepository {
* @param path path (relative to root) of the user node within the workspace,
* or null to use default.
*/
- public AbstractJCRRepository(Repository repository, Credentials credentials, String workspace, String path,
- Log logger) {
+ public AbstractJCRRepository(Repository repository, Credentials credentials, String workspace, String path) {
super();
this.repository = repository;
this.credentials = credentials;
this.workspace = workspace;
this.path = path;
- this.logger = logger;
}
@@ -112,15 +106,7 @@ class AbstractJCRRepository {
public final Log getLogger() {
return logger;
}
-
- /**
- * Sets the current logger.
- * @param logger the logger to set, not null
- */
- public final void setLogger(Log logger) {
- this.logger = logger;
- }
-
+
/**
* Retuns the JCR content repository used as the mail repository.
*
@@ -221,4 +207,11 @@ class AbstractJCRRepository {
return iterator;
}
+ /*
+ *
+ */
+ public void setLog(Log logger) {
+ this.logger = logger;
+ }
+
}
\ No newline at end of file
Modified: james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRMailRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRMailRepository.java?rev=925833&r1=925832&r2=925833&view=diff
==============================================================================
--- james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRMailRepository.java (original)
+++ james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRMailRepository.java Sun Mar 21 17:25:14 2010
@@ -49,8 +49,6 @@ import javax.jcr.query.QueryManager;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.jackrabbit.util.ISO9075;
import org.apache.jackrabbit.util.Text;
import org.apache.james.core.MailImpl;
@@ -64,16 +62,10 @@ import org.apache.mailet.MailAddress;
public class JCRMailRepository extends AbstractJCRRepository implements MailRepository {
/**
- * Logger instance.
- */
- private static final Log LOGGER = LogFactory.getLog(JCRMailRepository.class.getName());
-
- /**
* For setter injection.
*/
public JCRMailRepository() {
- super(LOGGER);
- this.path = "james/mail";
+ super("james/mail");
}
/**
@@ -86,16 +78,16 @@ public class JCRMailRepository extends A
* @param path path (relative to root) of the user node within the workspace,
* or null to use default.
*/
- public JCRMailRepository(Repository repository, Credentials credentials, String workspace, String path, Log logger) {
- super(repository, credentials, workspace, path, logger);
+ public JCRMailRepository(Repository repository, Credentials credentials, String workspace, String path) {
+ super(repository, credentials, workspace, path);
}
/**
* Minimal constructor for injection.
* @param repository not null
*/
- public JCRMailRepository(Repository repository, Log logger) {
- super(repository, logger);
+ public JCRMailRepository(Repository repository) {
+ super(repository);
}
Modified: james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRUsersRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRUsersRepository.java?rev=925833&r1=925832&r2=925833&view=diff
==============================================================================
--- james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRUsersRepository.java (original)
+++ james/server/trunk/jcr-store/src/main/java/org/apache/james/jcr/JCRUsersRepository.java Sun Mar 21 17:25:14 2010
@@ -31,8 +31,6 @@ import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.james.api.user.User;
import org.apache.james.api.user.UsersRepository;
@@ -43,15 +41,12 @@ public class JCRUsersRepository extends
private static final String PASSWD_PROPERTY = "passwd";
private static final String USERNAME_PROPERTY = "username";
-
- private static final Log LOGGER = LogFactory.getLog(JCRMailRepository.class);
/**
* For setter injection.
*/
public JCRUsersRepository() {
- super(LOGGER);
- this.path = "users";
+ super("users");
}
/**
@@ -64,8 +59,8 @@ public class JCRUsersRepository extends
* @param path path (relative to root) of the user node within the workspace,
* or null to use default.
*/
- public JCRUsersRepository(Repository repository, Credentials credentials, String workspace, String path, Log logger) {
- super(repository, credentials, workspace, path, logger);
+ public JCRUsersRepository(Repository repository, Credentials credentials, String workspace, String path) {
+ super(repository, credentials, workspace, path);
}
/**
@@ -73,7 +68,7 @@ public class JCRUsersRepository extends
* @param repository not null
*/
public JCRUsersRepository(Repository repository) {
- super(repository, LOGGER);
+ super(repository);
this.path = "users";
}
@@ -427,8 +422,8 @@ public class JCRUsersRepository extends
*
* @return Iterator over a collection of Strings, each being one user in the repository.
*/
- public Iterator list() {
- final Collection userNames = new ArrayList();
+ public Iterator<String> list() {
+ final Collection<String> userNames = new ArrayList<String>();
try {
final Session session = login();
try {
Modified: james/server/trunk/jcr-store/src/test/java/org/apache/james/jcr/JcrUserRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/jcr-store/src/test/java/org/apache/james/jcr/JcrUserRepositoryTest.java?rev=925833&r1=925832&r2=925833&view=diff
==============================================================================
--- james/server/trunk/jcr-store/src/test/java/org/apache/james/jcr/JcrUserRepositoryTest.java (original)
+++ james/server/trunk/jcr-store/src/test/java/org/apache/james/jcr/JcrUserRepositoryTest.java Sun Mar 21 17:25:14 2010
@@ -20,8 +20,8 @@
package org.apache.james.jcr;
import java.io.File;
-import java.io.StringReader;
+import org.apache.commons.logging.impl.SimpleLog;
import org.apache.jackrabbit.core.RepositoryImpl;
import org.apache.jackrabbit.core.config.RepositoryConfig;
import org.apache.james.api.user.UsersRepository;
@@ -31,62 +31,12 @@ import org.xml.sax.InputSource;
public class JcrUserRepositoryTest extends MockUsersRepositoryTest {
private static final String JACKRABBIT_HOME = "target/jackrabbit";
-
- private static final String CONFIG =
- "<Repository>" +
- "<FileSystem class='org.apache.jackrabbit.core.fs.mem.MemoryFileSystem'>" +
- " <param name='path' value='${rep.home}/repository'/>" +
- "</FileSystem>" +
- "<Security appName='Jackrabbit'>" +
- " <AccessManager class='org.apache.jackrabbit.core.security.SimpleAccessManager'>" +
- " </AccessManager>" +
- " <LoginModule class='org.apache.jackrabbit.core.security.SimpleLoginModule'>" +
- " </LoginModule>" +
- "</Security>" +
- "<Workspaces rootPath='${rep.home}/workspaces' defaultWorkspace='default'/>" +
- " <Workspace name='${wsp.name}'>" +
- " <FileSystem class='org.apache.jackrabbit.core.fs.mem.MemoryFileSystem'>" +
- " <param name='path' value='${wsp.home}'/>" +
- " </FileSystem>" +
- " <PersistenceManager" +
- " class='org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager'>" +
- " <param name='url' value='jdbc:h2:${wsp.home}/db'/>" +
- " <param name='driver' value='org.h2.Driver'/>" +
- " <param name='schema' value='h2'/>" +
- " <param name='schemaObjectPrefix' value='${wsp.name}_'/>" +
- " </PersistenceManager>" +
- " <SearchIndex class='org.apache.jackrabbit.core.query.lucene.SearchIndex'>" +
- " <param name='path' value='${wsp.home}/index'/>" +
- " <param name='textFilterClasses' value='org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor'/>" +
- " <param name='extractorPoolSize' value='2'/>" +
- " <param name='supportHighlighting' value='true'/>" +
- " </SearchIndex>" +
- "</Workspace>" +
- "<Versioning rootPath='${rep.home}/version'>" +
- " <FileSystem class='org.apache.jackrabbit.core.fs.mem.MemoryFileSystem'>" +
- " <param name='path' value='${rep.home}/version' />" +
- " </FileSystem>" +
- " <PersistenceManager" +
- " class='org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager'>" +
- " <param name='url' value='jdbc:h2:${rep.home}/version/db'/>" +
- " <param name='driver' value='org.h2.Driver'/>" +
- " <param name='schema' value='h2'/>" +
- " <param name='schemaObjectPrefix' value='version_'/>" +
- " </PersistenceManager>" +
- " </Versioning>" +
- " <SearchIndex class='org.apache.jackrabbit.core.query.lucene.SearchIndex'>" +
- " <param name='path' value='${rep.home}/repository/index'/>" +
- " <param name='textFilterClasses' value='org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor'/>" +
- " <param name='extractorPoolSize' value='2'/>" +
- " <param name='supportHighlighting' value='true'/>" +
- " </SearchIndex>" +
- "</Repository>";
-
- RepositoryImpl repository;
+ private RepositoryImpl repository;
- protected UsersRepository getUsersRepository() throws Exception
- {
- return new JCRUsersRepository(repository);
+ protected UsersRepository getUsersRepository() throws Exception {
+ JCRUsersRepository repos = new JCRUsersRepository(repository);
+ repos.setLog(new SimpleLog("MockLog"));
+ return repos;
}
protected void setUp() throws Exception {
@@ -94,7 +44,7 @@ public class JcrUserRepositoryTest exten
if (home.exists()) {
delete(home);
}
- RepositoryConfig config = RepositoryConfig.create(new InputSource(new StringReader(CONFIG)), JACKRABBIT_HOME);
+ RepositoryConfig config = RepositoryConfig.create(new InputSource(this.getClass().getClassLoader().getResourceAsStream("test-repository.xml")), JACKRABBIT_HOME);
repository = RepositoryImpl.create(config);
super.setUp();
}
Added: james/server/trunk/jcr-store/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/james/server/trunk/jcr-store/src/test/resources/log4j.properties?rev=925833&view=auto
==============================================================================
--- james/server/trunk/jcr-store/src/test/resources/log4j.properties (added)
+++ james/server/trunk/jcr-store/src/test/resources/log4j.properties Sun Mar 21 17:25:14 2010
@@ -0,0 +1,6 @@
+log4j.rootLogger=WARN, A1
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+
+# Print the date in ISO 8601 format
+log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Added: james/server/trunk/jcr-store/src/test/resources/test-repository.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/jcr-store/src/test/resources/test-repository.xml?rev=925833&view=auto
==============================================================================
--- james/server/trunk/jcr-store/src/test/resources/test-repository.xml (added)
+++ james/server/trunk/jcr-store/src/test/resources/test-repository.xml Sun Mar 21 17:25:14 2010
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
+ "http://jackrabbit.apache.org/dtd/repository-1.6.dtd">
+<!-- Example Repository Configuration File
+ Used by
+ - org.apache.jackrabbit.core.config.RepositoryConfigTest.java
+ -
+-->
+<Repository>
+ <!--
+ virtual file system where the repository stores global state
+ (e.g. registered namespaces, custom node types, etc.)
+ -->
+ <FileSystem class='org.apache.jackrabbit.core.fs.mem.MemoryFileSystem'>
+ </FileSystem>
+ <!--
+ security configuration
+ -->
+ <Security appName="Jackrabbit">
+ <SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="default">
+ </SecurityManager>
+
+ <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager">
+ </AccessManager>
+
+ <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
+ <param name="adminId" value="admin"/>
+ </LoginModule>
+ </Security>
+
+ <Workspaces rootPath='${rep.home}/workspaces' defaultWorkspace='default'/>
+
+ <Workspace name='${wsp.name}'>
+ <FileSystem class='org.apache.jackrabbit.core.fs.mem.MemoryFileSystem'>
+ </FileSystem>
+ <!--
+ persistence manager of the workspace:
+ class: FQN of class implementing the PersistenceManager interface
+ -->
+ <PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager">
+ <param name="persistent" value="false"/>
+ </PersistenceManager>
+
+ <SearchIndex class='org.apache.jackrabbit.core.query.lucene.SearchIndex'>
+ <param name='path' value='${wsp.home}/index'/>
+ <param name='textFilterClasses' value='org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor'/>
+ <param name='extractorPoolSize' value='2'/>
+ <param name='supportHighlighting' value='true'/>
+ </SearchIndex>
+
+ </Workspace>
+
+ <!--
+ Configures the versioning
+ -->
+ <Versioning rootPath='${rep.home}/version'>
+ <FileSystem class='org.apache.jackrabbit.core.fs.mem.MemoryFileSystem'>
+ </FileSystem>
+
+ <PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager">
+ <param name="persistent" value="false"/>
+ </PersistenceManager>
+
+ </Versioning>
+ <!--
+ Search index for content that is shared repository wide
+ (/jcr:system tree, contains mainly versions)
+ -->
+ <SearchIndex class='org.apache.jackrabbit.core.query.lucene.SearchIndex'>
+ <param name='path' value='${rep.home}/repository/index'/>
+ <param name='textFilterClasses' value='org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor'/>
+ <param name='extractorPoolSize' value='2'/>
+ <param name='supportHighlighting' value='true'/>
+ </SearchIndex>
+
+</Repository>
Modified: james/server/trunk/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/pom.xml?rev=925833&r1=925832&r2=925833&view=diff
==============================================================================
--- james/server/trunk/pom.xml (original)
+++ james/server/trunk/pom.xml Sun Mar 21 17:25:14 2010
@@ -480,6 +480,11 @@
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
+ <artifactId>apache-james-imap-jcr</artifactId>
+ <version>0.1-M2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
<artifactId>apache-james-imap-store</artifactId>
<version>0.1-M2-SNAPSHOT</version>
<exclusions>
@@ -867,7 +872,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>1.2</version>
+ <version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
@@ -876,12 +881,6 @@
</dependency>
<dependency>
- <groupId>javax.jcr</groupId>
- <artifactId>jcr</artifactId>
- <version>1.0</version>
- </dependency>
-
- <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
@@ -960,28 +959,24 @@
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
- <version>1.0</version>
+ <version>2.0</version>
</dependency>
+
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-rmi</artifactId>
- <version>1.4.1</version>
- <exclusions>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- </exclusions>
+ <version>2.0.0</version>
</dependency>
+
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
- <version>1.4.2</version>
+ <version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>
- <version>1.4.6</version>
+ <version>2.0.0</version>
<scope>test</scope>
</dependency>
Modified: james/server/trunk/spring-deployment/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/spring-deployment/pom.xml?rev=925833&r1=925832&r2=925833&view=diff
==============================================================================
--- james/server/trunk/spring-deployment/pom.xml (original)
+++ james/server/trunk/spring-deployment/pom.xml Sun Mar 21 17:25:14 2010
@@ -361,6 +361,12 @@
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
+ <artifactId>apache-james-imap-jcr</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.james</groupId>
<artifactId>apache-james-imap-processor</artifactId>
<scope>runtime</scope>
</dependency>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org