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 ad...@apache.org on 2016/11/14 10:53:30 UTC
[1/7] james-project git commit: JAMES-1842: Change searching for
subject because 'the' is a stop word -- Written by Quynhn
Repository: james-project
Updated Branches:
refs/heads/master e37e92fca -> a0050bd11
JAMES-1842: Change searching for subject because 'the' is a stop word -- Written by Quynhn
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/33e39c77
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/33e39c77
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/33e39c77
Branch: refs/heads/master
Commit: 33e39c77f771c4287ee703f5c3087ae4bd742a3d
Parents: b6cd9e2
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Nov 9 16:09:56 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 9 16:09:56 2016 +0700
----------------------------------------------------------------------
dockerfiles/compilation/java-6/compile.sh | 4 +-
.../run/spring/destination/conf/indexer.xml | 2 +-
.../META-INF/spring/mailbox-cassandra.xml | 1 +
.../org/apache/james/mailbox/jpa/JPAId.java | 7 +
.../resources/META-INF/spring/mailbox-jpa.xml | 2 +
mailbox/lucene/pom.xml | 16 --
.../META-INF/spring/mailbox-index-lucene.xml | 9 +-
.../META-INF/spring/mailbox-memory.xml | 2 +
.../META-INF/spring/mailbox-index-lucene.xml | 43 ++++
mailbox/src/site/xdoc/mailbox-spring.xml | 1 -
.../imap/scripts/UidSearchAtomsIndexer.test | 4 +-
mpt/impl/imap-mailbox/lucenesearch/pom.xml | 238 +++++++++++++++++++
.../lucenesearch/LuceneSearchMailboxTest.java | 74 ++++++
.../LuceneSearchMailboxTestModule.java | 42 ++++
.../host/LuceneSearchHostSystem.java | 194 +++++++++++++++
mpt/impl/imap-mailbox/pom.xml | 7 +
mpt/pom.xml | 11 +
.../app/src/main/resources/indexer-template.xml | 4 +-
.../app/spring/JamesAppSpringMainTest.java | 7 +-
server/app/src/test/resources/events.xml | 90 +++++++
server/app/src/test/resources/indexer.xml | 33 +++
.../src/test/resources/managesieveserver.xml | 63 +++++
server/app/src/test/resources/quota.xml | 53 +++++
...erConfigurationBeanFactoryPostProcessor.java | 3 +
...oxConfigurationBeanFactoryPostProcessor.java | 5 +
25 files changed, 883 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/dockerfiles/compilation/java-6/compile.sh
----------------------------------------------------------------------
diff --git a/dockerfiles/compilation/java-6/compile.sh b/dockerfiles/compilation/java-6/compile.sh
index 55182ea..4655c0f 100755
--- a/dockerfiles/compilation/java-6/compile.sh
+++ b/dockerfiles/compilation/java-6/compile.sh
@@ -44,9 +44,9 @@ git checkout $SHA1
# Compilation
if [ "$SKIPTESTS" = "skipTests" ]; then
- mvn package -DskipTests -Pjpa
+ mvn package -DskipTests -Pjpa,lucene,with-assembly
else
- mvn package -Pjpa
+ mvn package -Pjpa,lucene,with-assembly
fi
# Retrieve result
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/dockerfiles/run/spring/destination/conf/indexer.xml
----------------------------------------------------------------------
diff --git a/dockerfiles/run/spring/destination/conf/indexer.xml b/dockerfiles/run/spring/destination/conf/indexer.xml
index e349f8f..51591ab 100644
--- a/dockerfiles/run/spring/destination/conf/indexer.xml
+++ b/dockerfiles/run/spring/destination/conf/indexer.xml
@@ -19,5 +19,5 @@
-->
<indexer>
- <provider>lazyIndex</provider>
+ <provider>luceneIndex</provider>
</indexer>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml b/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
index 331f322..3d40aad 100644
--- a/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
+++ b/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
@@ -23,6 +23,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+ <bean id="cassandra-mailboxIdFactory" class="org.apache.james.mailbox.cassandra.CassandraId.Factory" />
<!--
Mailbox Cassandra
-->
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAId.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAId.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAId.java
index 8a5eb88..343476f 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAId.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAId.java
@@ -22,6 +22,13 @@ import org.apache.james.mailbox.model.MailboxId;
public class JPAId implements MailboxId {
+ public static class Factory implements MailboxId.Factory {
+ @Override
+ public JPAId fromString(String serialized) {
+ return of(Long.parseLong(serialized));
+ }
+ }
+
public static JPAId of(long value) {
return new JPAId(value);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml b/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
index ecb471f..223187c 100644
--- a/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
+++ b/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
@@ -29,6 +29,8 @@
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
+ <bean id="jpa-mailboxIdFactory" class="org.apache.james.mailbox.jpa.JPAId.Factory" />
+
<bean id="jpa-mailboxmanager" class="org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager" init-method="init">
<constructor-arg index="0" ref="jpa-sessionMapperFactory"/>
<constructor-arg index="1" ref="authenticator"/>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/lucene/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/lucene/pom.xml b/mailbox/lucene/pom.xml
index fe381b5..de0612d 100644
--- a/mailbox/lucene/pom.xml
+++ b/mailbox/lucene/pom.xml
@@ -107,21 +107,5 @@
<activeByDefault>true</activeByDefault>
</activation>
</profile>
- <profile>
- <id>exclude-lucene</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>**/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
</profiles>
</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml b/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
index e49bb49..18a2c1a 100644
--- a/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
+++ b/mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
@@ -31,13 +31,12 @@
<constructor-arg index="0" ref="luceneIndex"/>
</bean>
<bean id="luceneIndex" class="org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex">
- <constructor-arg index="0" ref="maildir-sessionMapperFactory"/>
- <constructor-arg index="1" ref="ramDirectory"/>
- <constructor-arg index="2" value="false"/>
- <constructor-arg index="3" value="true"/>
+ <constructor-arg index="0" ref="messageMapperFactory"/>
+ <constructor-arg index="1" ref="mailboxIdFactory"/>
+ <constructor-arg index="2" type="org.apache.lucene.store.Directory" ref="fsDirectory"/>
<property name="enableSuffixMatch" value="true"/>
</bean>
- <bean id="ramDirectory" class="org.apache.lucene.store.FSDirectory" factory-method="open">
+ <bean id="fsDirectory" class="org.apache.lucene.store.FSDirectory" factory-method="open">
<constructor-arg index="0" value="../var/store/lucene"/>
</bean>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml b/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
index 8789871..1beac65 100644
--- a/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
+++ b/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
@@ -23,6 +23,8 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+ <bean id="memory-mailboxIdFactory" class="org.apache.james.mailbox.inmemory.InMemoryId.Factory" />
+
<!--
Mailbox Memory
-->
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/spring/src/test/resources/META-INF/spring/mailbox-index-lucene.xml
----------------------------------------------------------------------
diff --git a/mailbox/spring/src/test/resources/META-INF/spring/mailbox-index-lucene.xml b/mailbox/spring/src/test/resources/META-INF/spring/mailbox-index-lucene.xml
new file mode 100644
index 0000000..d645b30
--- /dev/null
+++ b/mailbox/spring/src/test/resources/META-INF/spring/mailbox-index-lucene.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <!--
+ Mailbox Lucene
+ -->
+
+ <bean id="lazyIndex" class="org.apache.james.mailbox.store.search.LazyMessageSearchIndex">
+ <constructor-arg index="0" ref="luceneIndex"/>
+ </bean>
+ <bean id="luceneIndex" class="org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex">
+ <constructor-arg index="0" ref="messageMapperFactory"/>
+ <constructor-arg index="1" ref="mailboxIdFactory"/>
+ <constructor-arg index="2" type="org.apache.lucene.store.Directory" ref="fsDirectory"/>
+ <property name="enableSuffixMatch" value="true"/>
+ </bean>
+ <bean id="fsDirectory" class="org.apache.lucene.store.FSDirectory" factory-method="open">
+ <constructor-arg index="0" value="../var/store/lucene"/>
+ </bean>
+ <alias name="jpa-mailboxIdFactory" alias="mailboxIdFactory"/>
+</beans>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mailbox/src/site/xdoc/mailbox-spring.xml
----------------------------------------------------------------------
diff --git a/mailbox/src/site/xdoc/mailbox-spring.xml b/mailbox/src/site/xdoc/mailbox-spring.xml
index 5d18494..f12e08e 100644
--- a/mailbox/src/site/xdoc/mailbox-spring.xml
+++ b/mailbox/src/site/xdoc/mailbox-spring.xml
@@ -49,7 +49,6 @@
<li>spring-mailbox-jpa.xml</li>
<li>spring-mailbox-authenticator.xml</li>
<li>spring-mailbox-locker.xml</li>
- <li>spring-mailbox-lucene.xml</li>
</ul>
<p>Each mailbox configuration file is used to declare beans that will instantiate all components
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
index 9c5fc26..aecc249 100644
--- a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
+++ b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
@@ -2111,7 +2111,7 @@ S: \* 2 FETCH \(FLAGS \(\\Answered \\Deleted \\Flagged \\Recent \\Seen\)\)
S: \* 3 FETCH \(FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Recent\)\)
S: A99 OK STORE completed\.
-LOG INFO Waiting for ElasticSearch to index data
+LOG INFO Waiting for Indexer to index data
WAIT 5000
@@ -2314,7 +2314,7 @@ S: \* 1 EXISTS
S: \* 1 RECENT
S: A202 OK (\[.+\] )?APPEND completed\.
-LOG INFO Waiting for ElasticSearch to index data
+LOG INFO Waiting for Indexer to index data
WAIT 1000
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mpt/impl/imap-mailbox/lucenesearch/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/pom.xml b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
new file mode 100644
index 0000000..e88550d
--- /dev/null
+++ b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>apache-james-mpt-imapmailbox</artifactId>
+ <groupId>org.apache.james</groupId>
+ <version>3.0.0-beta5-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>apache-james-mpt-imapmailbox-jpa-lucene</artifactId>
+ <name>Apache James MPT Imap Mailbox - LuceneSearch</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mpt-imapmailbox-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-jpa</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>disable-build-for-older-jdk</id>
+ <activation>
+ <jdk>(,1.8)</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-jar</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>jar</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>test-jar</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-compile</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>default-testCompile</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-test</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-install-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-install</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-resources</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>default-testResources</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-descriptor</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>build-for-jdk-8</id>
+ <activation>
+ <jdk>[1.8,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-lucene</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-lucene</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-jpa</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-store</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mpt-imapmailbox-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>fully.qualified.MainClass</mainClass>
+ </manifest>
+ </archive>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>animal-sniffer-java-8</id>
+ <activation>
+ <jdk>[1.8,)</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-maven-plugin</artifactId>
+ <configuration>
+ <signature>
+ <groupId>org.codehaus.mojo.signature</groupId>
+ <artifactId>java18</artifactId>
+ <version>1.0</version>
+ </signature>
+ </configuration>
+ <executions>
+ <execution>
+ <id>check_java_8</id>
+ <phase>test</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTest.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTest.java
new file mode 100644
index 0000000..193849e
--- /dev/null
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTest.java
@@ -0,0 +1,74 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.james.mpt.imapmailbox.lucenesearch;
+
+import org.apache.james.mpt.imapmailbox.suite.AuthenticatedState;
+import org.apache.james.mpt.imapmailbox.suite.ConcurrentSessions;
+import org.apache.james.mpt.imapmailbox.suite.Events;
+import org.apache.james.mpt.imapmailbox.suite.Expunge;
+import org.apache.james.mpt.imapmailbox.suite.Fetch;
+import org.apache.james.mpt.imapmailbox.suite.FetchBodySection;
+import org.apache.james.mpt.imapmailbox.suite.FetchBodyStructure;
+import org.apache.james.mpt.imapmailbox.suite.FetchHeaders;
+import org.apache.james.mpt.imapmailbox.suite.Listing;
+import org.apache.james.mpt.imapmailbox.suite.MailboxAnnotation;
+import org.apache.james.mpt.imapmailbox.suite.Move;
+import org.apache.james.mpt.imapmailbox.suite.NonAuthenticatedState;
+import org.apache.james.mpt.imapmailbox.suite.PartialFetch;
+import org.apache.james.mpt.imapmailbox.suite.QuotaTest;
+import org.apache.james.mpt.imapmailbox.suite.Rename;
+import org.apache.james.mpt.imapmailbox.suite.Security;
+import org.apache.james.mpt.imapmailbox.suite.Select;
+import org.apache.james.mpt.imapmailbox.suite.SelectedInbox;
+import org.apache.james.mpt.imapmailbox.suite.SelectedState;
+import org.apache.james.mpt.imapmailbox.suite.UidSearchOnIndex;
+import org.apache.james.mpt.imapmailbox.suite.UserFlagsSupport;
+import org.apache.james.mpt.onami.test.OnamiSuite;
+import org.apache.james.mpt.onami.test.annotation.GuiceModules;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@RunWith(OnamiSuite.class)
+@Suite.SuiteClasses({
+ AuthenticatedState.class,
+ ConcurrentSessions.class,
+ Events.class,
+ Expunge.class,
+ Fetch.class,
+ FetchBodySection.class,
+ FetchBodyStructure.class,
+ FetchHeaders.class,
+ Listing.class,
+ NonAuthenticatedState.class,
+ PartialFetch.class,
+ Rename.class,
+ Security.class,
+ Select.class,
+ QuotaTest.class,
+ UserFlagsSupport.class,
+ Move.class,
+ SelectedInbox.class,
+ SelectedState.class,
+ MailboxAnnotation.class,
+ UidSearchOnIndex.class
+})
+@GuiceModules({LuceneSearchMailboxTestModule.class})
+public class LuceneSearchMailboxTest {
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java
new file mode 100644
index 0000000..474cc5d
--- /dev/null
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java
@@ -0,0 +1,42 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.james.mpt.imapmailbox.lucenesearch;
+
+import org.apache.james.mpt.api.HostSystem;
+import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+
+public class LuceneSearchMailboxTestModule extends AbstractModule {
+ @Override
+ protected void configure() {
+ bind(HostSystem.class).to(ImapHostSystem.class);
+ }
+
+ @Provides
+ @Singleton
+ public ImapHostSystem provideImapHostSystem() throws Exception {
+ return new LuceneSearchHostSystem();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
new file mode 100644
index 0000000..d0cfc2c
--- /dev/null
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
@@ -0,0 +1,194 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.james.mpt.imapmailbox.lucenesearch.host;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+
+import javax.persistence.EntityManagerFactory;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.james.imap.api.process.ImapProcessor;
+import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
+import org.apache.james.imap.main.DefaultImapDecoderFactory;
+import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
+import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.SubscriptionManager;
+import org.apache.james.mailbox.acl.GroupMembershipResolver;
+import org.apache.james.mailbox.acl.MailboxACLResolver;
+import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
+import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
+import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.jpa.JPAId;
+import org.apache.james.mailbox.jpa.JPAId.Factory;
+import org.apache.james.mailbox.jpa.JPAMailboxSessionMapperFactory;
+import org.apache.james.mailbox.jpa.JPASubscriptionManager;
+import org.apache.james.mailbox.jpa.mail.JPAModSeqProvider;
+import org.apache.james.mailbox.jpa.mail.JPAUidProvider;
+import org.apache.james.mailbox.jpa.mail.model.JPAMailbox;
+import org.apache.james.mailbox.jpa.mail.model.JPAProperty;
+import org.apache.james.mailbox.jpa.mail.model.JPAUserFlag;
+import org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMessage;
+import org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMessage;
+import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
+import org.apache.james.mailbox.jpa.user.model.JPASubscription;
+import org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex;
+import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.store.FakeAuthenticator;
+import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
+import org.apache.james.mailbox.store.quota.NoQuotaManager;
+import org.apache.james.mpt.api.ImapFeatures;
+import org.apache.james.mpt.api.ImapFeatures.Feature;
+import org.apache.james.mpt.host.JamesImapHostSystem;
+import org.apache.james.mpt.imapmailbox.MailboxCreationDelegate;
+import org.apache.lucene.store.FSDirectory;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Throwables;
+import com.google.common.io.Files;
+
+public class LuceneSearchHostSystem extends JamesImapHostSystem {
+ public static final String META_DATA_DIRECTORY = "target/user-meta-data";
+ private static final ImapFeatures SUPPORTED_FEATURES = ImapFeatures.of(Feature.NAMESPACE_SUPPORT);
+
+ private File tempFile;
+ private OpenJPAMailboxManager mailboxManager;
+ private FakeAuthenticator userManager;
+ private EntityManagerFactory entityManagerFactory;
+
+ public boolean addUser(String user, String password) throws Exception {
+ userManager.addUser(user, password);
+ return true;
+ }
+
+ @Override
+ public void beforeTest() throws Exception {
+ this.tempFile = Files.createTempDir();
+ initFields();
+ }
+
+ @Override
+ public void resetData() throws Exception {
+ tempFile.deleteOnExit();
+
+ resetUserMetaData();
+ MailboxSession session = mailboxManager.createSystemSession("test", LoggerFactory.getLogger("TestLog"));
+ mailboxManager.startProcessingRequest(session);
+ mailboxManager.deleteEverything(session);
+ mailboxManager.endProcessingRequest(session);
+ mailboxManager.logout(session, false);
+
+ }
+
+ public void resetUserMetaData() throws Exception {
+ File dir = new File(META_DATA_DIRECTORY);
+ if (dir.exists()) {
+ FileUtils.deleteDirectory(dir);
+ }
+ dir.mkdirs();
+ }
+
+ private void initFields() {
+ HashMap<String, String> properties = new HashMap<String, String>();
+
+ // Configure OpenJPA for H2 Memory Database
+ properties.put("openjpa.ConnectionDriverName", org.h2.Driver.class.getName());
+ properties.put("openjpa.ConnectionURL", "jdbc:h2:mem:mailboxintegration;DB_CLOSE_DELAY=-1"); // Memory H2 database
+
+ // Configure OpenJPA Tables creation
+ properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)"); // Create Foreign Keys
+ properties.put("openjpa.jdbc.MappingDefaults", "ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict");
+ properties.put("openjpa.jdbc.SchemaFactory", "native(ForeignKeys=true)");
+ properties.put("openjpa.jdbc.MappingDefaults", "ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade");
+
+
+ // Configure OpenJPA Cache
+ properties.put("openjpa.jdbc.QuerySQLCache", "false");
+
+ // Configure OpenJPA Log
+ properties.put("openjpa.Log", "JDBC=WARN, SQL=WARN, Runtime=WARN");
+ //properties.put("openjpa.RuntimeUnenhancedClasses", "warn");
+
+ // Configure OpenJPA Metadata
+ properties.put("openjpa.MetaDataFactory", "jpa(Types=" +
+ JPAMailbox.class.getName() + ";" +
+ AbstractJPAMailboxMessage.class.getName() + ";" +
+ JPAMailboxMessage.class.getName() + ";" +
+ JPAProperty.class.getName() + ";" +
+ JPAUserFlag.class.getName() + ";" +
+ JPASubscription.class.getName() + ")");
+
+ userManager = new FakeAuthenticator();
+ entityManagerFactory = OpenJPAPersistence.getEntityManagerFactory(properties);
+ JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
+ JPAUidProvider uidProvider = new JPAUidProvider(locker, entityManagerFactory);
+ JPAModSeqProvider modSeqProvider = new JPAModSeqProvider(locker, entityManagerFactory);
+ JPAMailboxSessionMapperFactory factory = new JPAMailboxSessionMapperFactory(entityManagerFactory, uidProvider, modSeqProvider);
+
+ try {
+ JPAId.Factory mailboxIdFactory = new Factory();
+ FSDirectory fsDirectory = FSDirectory.open(tempFile);
+ LuceneMessageSearchIndex searchIndex = new LuceneMessageSearchIndex(factory, mailboxIdFactory, fsDirectory);
+ searchIndex.setEnableSuffixMatch(true);
+
+ MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
+ GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
+ MessageParser messageParser = new MessageParser();
+
+ mailboxManager = new OpenJPAMailboxManager(factory, userManager, locker, false, aclResolver, groupMembershipResolver, messageParser);
+ mailboxManager.setMessageSearchIndex(searchIndex);
+
+ mailboxManager.init();
+
+ SubscriptionManager subscriptionManager = new JPASubscriptionManager(factory);
+
+ final ImapProcessor defaultImapProcessorFactory =
+ DefaultImapProcessorFactory.createDefaultProcessor(
+ mailboxManager,
+ subscriptionManager,
+ new NoQuotaManager(),
+ new DefaultQuotaRootResolver(factory));
+
+ configure(new DefaultImapDecoderFactory().buildImapDecoder(),
+ new DefaultImapEncoderFactory().buildImapEncoder(),
+ defaultImapProcessorFactory);
+
+ } catch (IOException e) {
+ throw Throwables.propagate(e);
+ } catch (MailboxException e) {
+ throw Throwables.propagate(e);
+ }
+ }
+
+ @Override
+ public void createMailbox(MailboxPath mailboxPath) throws Exception{
+ new MailboxCreationDelegate(mailboxManager).createMailbox(mailboxPath);
+ }
+
+ @Override
+ public boolean supports(Feature... features) {
+ return SUPPORTED_FEATURES.supports(features);
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mpt/impl/imap-mailbox/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/pom.xml b/mpt/impl/imap-mailbox/pom.xml
index 31fd9b2..9e392df 100644
--- a/mpt/impl/imap-mailbox/pom.xml
+++ b/mpt/impl/imap-mailbox/pom.xml
@@ -43,6 +43,7 @@
<module>jcr</module>
<module>jpa</module>
<module>maildir</module>
+ <module>lucenesearch</module>
</modules>
<dependencyManagement>
@@ -101,6 +102,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mpt-imapmailbox-jpa-lucene</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</dependencyManagement>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/mpt/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/pom.xml b/mpt/pom.xml
index 78191cc..99375bb 100644
--- a/mpt/pom.xml
+++ b/mpt/pom.xml
@@ -211,6 +211,17 @@
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-lucene</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-lucene</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
<artifactId>apache-james-mailbox-maildir</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/app/src/main/resources/indexer-template.xml
----------------------------------------------------------------------
diff --git a/server/app/src/main/resources/indexer-template.xml b/server/app/src/main/resources/indexer-template.xml
index c8282b0..8fd7248 100644
--- a/server/app/src/main/resources/indexer-template.xml
+++ b/server/app/src/main/resources/indexer-template.xml
@@ -27,7 +27,7 @@
<indexer>
<!-- supported providers are: -->
- <!-- lazyIndex, elasticsearch -->
+ <!-- lazyIndex, luceneIndex, elasticsearch -->
<!-- -->
- <provider>lazyIndex</provider>
+ <provider>luceneIndex</provider>
</indexer>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/app/src/test/java/org/apache/james/app/spring/JamesAppSpringMainTest.java
----------------------------------------------------------------------
diff --git a/server/app/src/test/java/org/apache/james/app/spring/JamesAppSpringMainTest.java b/server/app/src/test/java/org/apache/james/app/spring/JamesAppSpringMainTest.java
index e578249..aa0d4f5 100644
--- a/server/app/src/test/java/org/apache/james/app/spring/JamesAppSpringMainTest.java
+++ b/server/app/src/test/java/org/apache/james/app/spring/JamesAppSpringMainTest.java
@@ -18,14 +18,15 @@
****************************************************************/
package org.apache.james.app.spring;
-import org.junit.Ignore;
+import org.hamcrest.CoreMatchers;
+import org.junit.Assume;
import org.junit.Test;
public class JamesAppSpringMainTest {
-
+
@Test
- @Ignore(value="Test sometimes breaks on the integration build - see JAMES-1555")
public void testServer() throws Exception {
+ Assume.assumeThat(System.getProperty("java.version"), CoreMatchers.startsWith("1.6"));
JamesAppSpringMain.main(null);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/app/src/test/resources/events.xml
----------------------------------------------------------------------
diff --git a/server/app/src/test/resources/events.xml b/server/app/src/test/resources/events.xml
new file mode 100644
index 0000000..536278a
--- /dev/null
+++ b/server/app/src/test/resources/events.xml
@@ -0,0 +1,90 @@
+<?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.
+ -->
+
+<!--
+ This template file can be used as example for James Server configuration
+ DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+-->
+
+<events>
+ <!-- By default the event system is in memory based, providing better performances but is not
+ distributed and won't do the work with multiples servers -->
+ <type>default</type>
+
+ <!-- Do you want to wait for MailboxListeners to be executed before returning result to the user ?
+
+ If yes set this to synchronous
+ If no set this to asynchronous
+ If you want to use default supported behaviour exposed by listeners set this to mixed
+ -->
+ <delivery>synchronous</delivery>
+
+ <!-- Broadcast event system will send messages to all your James servers.
+
+ It is the only viable options if you rely on Mailbox Listeners that do not perform well in a distributed system.
+
+ Here follows a non exhaustive list of such Mailbox Listeners :
+ - Memory quota based system
+ - Lucene based search system
+
+ Workload is higher because event needs to be serialized and de serialized.
+
+ Also note that depending on the publisher you use, messages might be either lost or duplicated, implying wrong
+ indexing or wrong quota count on network partitions.
+
+ Here follows a sample configuration :
+ -->
+ <!--
+ <type>broadcast</type>
+ <serialization>json</serialization>
+ <publisher>kafka</publisher>
+ -->
+
+ <!--
+ Further notes on the choice you had here :
+
+ serialization : you have to choices : either json or message-pack
+
+ message-pack is a binary representation for json, and is 2 times lighter by average, but is 2 time slower to serialize and de serialize.
+ This choice allows you to trade compute against network.
+
+ publisher : Publish - subscribe used. The only current implementation is Kafka.
+ -->
+
+ <!-- Registered event system
+
+ Scalable event system based on registration : each James server listen on his own topic and manage registrations on
+ mailbox paths in order to receive events interesting him.
+
+ This configuration does not support distributed unfriendly Mailbox Listeners (see the non exhaustive list above) for obvious reasons.
+ -->
+ <!--
+ <type>registered</type>
+ <serialization>json</serialization>
+ <registration>cassandra</registration>
+ <publisher>kafka</publisher>
+ -->
+
+ <!--
+ The only registration system available is Cassandra, used in an available fashion. This means there is no warranties,
+ either at least one delivery nor at most one delivery. But you get the certitude that the system will always be available.
+ -->
+
+</events>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/app/src/test/resources/indexer.xml
----------------------------------------------------------------------
diff --git a/server/app/src/test/resources/indexer.xml b/server/app/src/test/resources/indexer.xml
new file mode 100644
index 0000000..8fd7248
--- /dev/null
+++ b/server/app/src/test/resources/indexer.xml
@@ -0,0 +1,33 @@
+<?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.
+ -->
+
+<!--
+ This template file can be used as example for James Server configuration
+ DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+-->
+
+<!-- See http://james.apache.org/server/3/config.html for usage -->
+
+<indexer>
+ <!-- supported providers are: -->
+ <!-- lazyIndex, luceneIndex, elasticsearch -->
+ <!-- -->
+ <provider>luceneIndex</provider>
+</indexer>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/app/src/test/resources/managesieveserver.xml
----------------------------------------------------------------------
diff --git a/server/app/src/test/resources/managesieveserver.xml b/server/app/src/test/resources/managesieveserver.xml
new file mode 100644
index 0000000..22e7a53
--- /dev/null
+++ b/server/app/src/test/resources/managesieveserver.xml
@@ -0,0 +1,63 @@
+<?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.
+ -->
+
+<!--
+ This template file can be used as example for James Server configuration
+ DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+-->
+
+<!-- See http://james.apache.org/server/3/config.html for usage -->
+
+<managesieveservers>
+
+ <managesieveserver enabled="true">
+
+ <jmxName>managesieveserver</jmxName>
+
+ <bind>0.0.0.0:4190</bind>
+
+ <connectionBacklog>200</connectionBacklog>
+
+ <tls socketTLS="false" startTLS="false">
+ <!-- To create a new keystore execute:
+ keytool -genkey -alias james -keyalg RSA -keystore /path/to/james/conf/keystore
+ -->
+ <keystore>file://conf/keystore</keystore>
+ <secret>james72laBalle</secret>
+ <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
+ <!-- The algorithm is optional and only needs to be specified when using something other
+ than the Sun JCE provider - You could use IbmX509 with IBM Java runtime. -->
+ <algorithm>SunX509</algorithm>
+ </tls>
+
+ <!-- connection timeout in secconds -->
+ <connectiontimeout>360</connectiontimeout>
+
+ <!-- Set the maximum simultaneous incoming connections for this service -->
+ <connectionLimit>0</connectionLimit>
+
+ <!-- Set the maximum simultaneous incoming connections per IP for this service -->
+ <connectionLimitPerIP>0</connectionLimitPerIP>
+ <maxmessagesize>0</maxmessagesize>
+ <addressBracketsEnforcement>true</addressBracketsEnforcement>
+
+ </managesieveserver>
+
+</managesieveservers>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/app/src/test/resources/quota.xml
----------------------------------------------------------------------
diff --git a/server/app/src/test/resources/quota.xml b/server/app/src/test/resources/quota.xml
new file mode 100644
index 0000000..91d4e6a
--- /dev/null
+++ b/server/app/src/test/resources/quota.xml
@@ -0,0 +1,53 @@
+<?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.
+ -->
+
+<!--
+ This template file can be used as example for James Server configuration
+ DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+-->
+
+<!-- See http://james.apache.org/server/3/config.html for usage -->
+
+<!--
+ This configuration file allows you to customize the way quota are handled on this server.
+ You need to rename it in quota.xml so that it gets interpreted by James on startup.
+
+ The different configuration options are detailed here.
+
+ Read RFC-2087 for full details.
+-->
+
+<quota>
+ <quotaRootResolver>
+ <provider>default</provider>
+ </quotaRootResolver>
+ <currentQuotaManager>
+ <provider>inmemory</provider>
+ </currentQuotaManager>
+ <maxQuotaManager>
+ <provider>inmemory</provider>
+ </maxQuotaManager>
+ <quotaManager>
+ <provider>store</provider>
+ </quotaManager>
+ <updates>
+ <provider>event</provider>
+ </updates>
+</quota>
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/IndexerConfigurationBeanFactoryPostProcessor.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/IndexerConfigurationBeanFactoryPostProcessor.java b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/IndexerConfigurationBeanFactoryPostProcessor.java
index b28396b..adbd3b1 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/IndexerConfigurationBeanFactoryPostProcessor.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/IndexerConfigurationBeanFactoryPostProcessor.java
@@ -56,6 +56,9 @@ public class IndexerConfigurationBeanFactoryPostProcessor implements BeanFactory
} else if (provider.equalsIgnoreCase("elasticsearch")) {
indexer = "elasticsearch-listener";
reIndexer = "reindexer-impl";
+ } else if (provider.equalsIgnoreCase("luceneIndex")) {
+ indexer = "luceneIndex";
+ reIndexer = "fake-reindexer";
}
if (indexer == null)
http://git-wip-us.apache.org/repos/asf/james-project/blob/33e39c77/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/MailboxConfigurationBeanFactoryPostProcessor.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/MailboxConfigurationBeanFactoryPostProcessor.java b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/MailboxConfigurationBeanFactoryPostProcessor.java
index f33a6cb..db2625c 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/MailboxConfigurationBeanFactoryPostProcessor.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/MailboxConfigurationBeanFactoryPostProcessor.java
@@ -52,16 +52,19 @@ public class MailboxConfigurationBeanFactoryPostProcessor implements BeanFactory
String subscription = null;
String messageMapperFactory = null;
String mailboxIdDeserializer = null;
+ String mailboxIdFactory = null;
if (provider.equalsIgnoreCase("jpa")) {
mailbox = "jpa-mailboxmanager";
subscription = "jpa-subscriptionManager";
messageMapperFactory = "jpa-sessionMapperFactory";
mailboxIdDeserializer = "jpa-mailbox-id-deserializer";
+ mailboxIdFactory = "jpa-mailboxIdFactory";
} else if (provider.equalsIgnoreCase("memory")) {
mailbox = "memory-mailboxmanager";
subscription = "memory-subscriptionManager";
messageMapperFactory = "memory-sessionMapperFactory";
mailboxIdDeserializer = "memory-mailbox-id-deserializer";
+ mailboxIdFactory = "memory-mailboxIdFactory";
} else if (provider.equalsIgnoreCase("jcr")) {
mailbox = "jcr-mailboxmanager";
subscription = "jcr-subscriptionManager";
@@ -82,6 +85,7 @@ public class MailboxConfigurationBeanFactoryPostProcessor implements BeanFactory
subscription = "cassandra-subscriptionManager";
messageMapperFactory = "cassandra-sessionMapperFactory";
mailboxIdDeserializer = "cassandra-mailbox-id-deserializer";
+ mailboxIdFactory = "cassandra-mailboxIdFactory";
}
if (mailbox == null)
@@ -90,6 +94,7 @@ public class MailboxConfigurationBeanFactoryPostProcessor implements BeanFactory
registry.registerAlias(subscription, "subscriptionManager");
registry.registerAlias(messageMapperFactory, "messageMapperFactory");
registry.registerAlias(mailboxIdDeserializer, "mailbox-id-deserializer");
+ registry.registerAlias(mailboxIdFactory, "mailboxIdFactory");
} catch (ConfigurationException e) {
throw new FatalBeanException("Unable to config the mailboxmanager", e);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[3/7] james-project git commit: JAMES-1842: JPA and Lucene,
delete spring-mailbox-lucene.xml because it's no longer in use
Posted by ad...@apache.org.
JAMES-1842: JPA and Lucene, delete spring-mailbox-lucene.xml because it's no longer in use
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/6b1d5430
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/6b1d5430
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/6b1d5430
Branch: refs/heads/master
Commit: 6b1d54304f484541dc327998ac412ab6124ff0e1
Parents: 33e39c7
Author: Quynh Nguyen <qn...@linagora.com>
Authored: Wed Oct 19 10:31:33 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 9 16:10:06 2016 +0700
----------------------------------------------------------------------
.../META-INF/spring/spring-mailbox.xml | 4 +-
.../org/apache/james/spring-mailbox-lucene.xml | 44 --------------------
2 files changed, 3 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/6b1d5430/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
----------------------------------------------------------------------
diff --git a/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml b/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
index 33e557c..182d1c1 100644
--- a/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
+++ b/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
@@ -28,9 +28,11 @@
<import resource="classpath:META-INF/spring/mailbox-locker.xml"/>
<!-- TODO: fix dependency issues with lucene and JCR and re-enable -->
- <!--<import resource="classpath:META-INF/spring/mailbox-index-lucene.xml" />-->
<import resource="classpath:META-INF/spring/mailbox-jpa.xml"/>
+ <import resource="classpath:META-INF/spring/mailbox-index-lucene.xml" />
+<!-- <import resource="classpath:META-INF/spring/mailbox-elasticsearch.xml"/> -->
+
<!-- TODO: update spring context creation to match new Jackrabbit version -->
<!--<import resource="classpath:META-INF/spring/mailbox-jcr.xml" />-->
http://git-wip-us.apache.org/repos/asf/james-project/blob/6b1d5430/mailbox/spring/src/test/resources/META-INF/org/apache/james/spring-mailbox-lucene.xml
----------------------------------------------------------------------
diff --git a/mailbox/spring/src/test/resources/META-INF/org/apache/james/spring-mailbox-lucene.xml b/mailbox/spring/src/test/resources/META-INF/org/apache/james/spring-mailbox-lucene.xml
deleted file mode 100644
index 506b68f..0000000
--- a/mailbox/spring/src/test/resources/META-INF/org/apache/james/spring-mailbox-lucene.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <!--
- Mailbox Lucene
- -->
-
- <bean id="lazyIndex" class="org.apache.james.mailbox.store.search.LazyMessageSearchIndex">
- <constructor-arg index="0" ref="luceneIndex"/>
- </bean>
- <bean id="luceneIndex" class="org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex">
- <constructor-arg index="0" ref="maildir-sessionMapperFactory"/>
- <constructor-arg index="1" ref="ramDirectory"/>
- <constructor-arg index="2" value="false"/>
- <constructor-arg index="3" value="true"/>
- <property name="enableSuffixMatch" value="true"/>
- </bean>
- <bean id="ramDirectory" class="org.apache.lucene.store.FSDirectory" factory-method="open">
- <constructor-arg index="0" value="target/var/store/lucene"/>
- </bean>
-
-</beans>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[4/7] james-project git commit: JAMES-1842: Change searching for
subject because 'the' is a stop word
Posted by ad...@apache.org.
JAMES-1842: Change searching for subject because 'the' is a stop word
Stops words are ignored by ElasticSearch as they convey no context knownledge
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/94249b40
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/94249b40
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/94249b40
Branch: refs/heads/master
Commit: 94249b4097ac48da0f84f69795ce73dc94ee254d
Parents: a4c4175
Author: Quynh Nguyen <qn...@linagora.com>
Authored: Wed Nov 9 14:11:33 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 9 16:10:50 2016 +0700
----------------------------------------------------------------------
.../org/apache/james/imap/scripts/UidSearchAtomsIndexer.test | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/94249b40/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
index aecc249..ce9f6f7 100644
--- a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
+++ b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
@@ -2233,8 +2233,8 @@ C: A127 UID SEARCH SMALLER 20000
S: \* SEARCH 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
S: A127 OK SEARCH completed\.
-C: A128 UID SEARCH SUBJECT the
-S: \* SEARCH
+C: A128 UID SEARCH SUBJECT "hello"
+S: \* SEARCH 26 27
S: A128 OK SEARCH completed\.
C: A129 UID SEARCH SUBJECT "William Shakespeare"
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[6/7] james-project git commit: JAMES-1842 Add profile for MPT
testing and run it on java 6
Posted by ad...@apache.org.
JAMES-1842 Add profile for MPT testing and run it on java 6
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2d55c4cb
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2d55c4cb
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2d55c4cb
Branch: refs/heads/master
Commit: 2d55c4cb51b2989f48ab722397c9bf8ec2023dd8
Parents: ee4a608
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Nov 9 15:27:27 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 9 16:14:57 2016 +0700
----------------------------------------------------------------------
dockerfiles/compilation/java-6/compile.sh | 4 +-
mpt/impl/imap-mailbox/lucenesearch/pom.xml | 212 +++---------------------
mpt/impl/imap-mailbox/pom.xml | 10 +-
3 files changed, 33 insertions(+), 193 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/2d55c4cb/dockerfiles/compilation/java-6/compile.sh
----------------------------------------------------------------------
diff --git a/dockerfiles/compilation/java-6/compile.sh b/dockerfiles/compilation/java-6/compile.sh
index 4655c0f..b0c1f82 100755
--- a/dockerfiles/compilation/java-6/compile.sh
+++ b/dockerfiles/compilation/java-6/compile.sh
@@ -44,9 +44,9 @@ git checkout $SHA1
# Compilation
if [ "$SKIPTESTS" = "skipTests" ]; then
- mvn package -DskipTests -Pjpa,lucene,with-assembly
+ mvn package -DskipTests -Pjpa,lucene,jpa-lucene,with-assembly
else
- mvn package -Pjpa,lucene,with-assembly
+ mvn package -Pjpa,lucene,jpa-lucene,with-assembly
fi
# Retrieve result
http://git-wip-us.apache.org/repos/asf/james-project/blob/2d55c4cb/mpt/impl/imap-mailbox/lucenesearch/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/pom.xml b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
index a707ac0..2476d6a 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/pom.xml
+++ b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
@@ -33,12 +33,32 @@
<dependencies>
<dependency>
<groupId>org.apache.james</groupId>
- <artifactId>apache-james-mpt-imapmailbox-core</artifactId>
+ <artifactId>apache-james-mailbox-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-lucene</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-lucene</artifactId>
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
<artifactId>apache-james-mailbox-jpa</artifactId>
- <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mailbox-store</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-james-mpt-imapmailbox-core</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
@@ -47,192 +67,4 @@
</dependency>
</dependencies>
- <profiles>
- <profile>
- <id>disable-build-for-older-jdk</id>
- <activation>
- <jdk>(,1.8)</jdk>
- </activation>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>default-jar</id>
- <phase>none</phase>
- </execution>
- <execution>
- <id>jar</id>
- <phase>none</phase>
- </execution>
- <execution>
- <id>test-jar</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <executions>
- <execution>
- <id>default-compile</id>
- <phase>none</phase>
- </execution>
- <execution>
- <id>default-testCompile</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <executions>
- <execution>
- <id>default-test</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-source-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-sources</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-install-plugin</artifactId>
- <executions>
- <execution>
- <id>default-install</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>default-resources</id>
- <phase>none</phase>
- </execution>
- <execution>
- <id>default-testResources</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-site-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-descriptor</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>build-for-jdk-8</id>
- <activation>
- <jdk>[1.8,)</jdk>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.james</groupId>
- <artifactId>apache-james-mailbox-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.james</groupId>
- <artifactId>apache-james-mailbox-lucene</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.james</groupId>
- <artifactId>apache-james-mailbox-lucene</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.james</groupId>
- <artifactId>apache-james-mailbox-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.james</groupId>
- <artifactId>apache-james-mailbox-store</artifactId>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.james</groupId>
- <artifactId>apache-james-mpt-imapmailbox-core</artifactId>
- </dependency>
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <mainClass>fully.qualified.MainClass</mainClass>
- </manifest>
- </archive>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>animal-sniffer-java-8</id>
- <activation>
- <jdk>[1.8,)</jdk>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>animal-sniffer-maven-plugin</artifactId>
- <configuration>
- <signature>
- <groupId>org.codehaus.mojo.signature</groupId>
- <artifactId>java18</artifactId>
- <version>1.0</version>
- </signature>
- </configuration>
- <executions>
- <execution>
- <id>check_java_8</id>
- <phase>test</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/2d55c4cb/mpt/impl/imap-mailbox/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/pom.xml b/mpt/impl/imap-mailbox/pom.xml
index 9e392df..e4e13d9 100644
--- a/mpt/impl/imap-mailbox/pom.xml
+++ b/mpt/impl/imap-mailbox/pom.xml
@@ -120,6 +120,7 @@
<maildir.includes>empty</maildir.includes>
<cyrus.includes>empty</cyrus.includes>
<elasticsearch.includes>empty</elasticsearch.includes>
+ <jpa-lucene.includes>empty</jpa-lucene.includes>
</properties>
<profiles>
@@ -154,6 +155,12 @@
</properties>
</profile>
<profile>
+ <id>jpa-lucene</id>
+ <properties>
+ <jpa-lucene.includes>**/lucenesearch/**/*.java</jpa-lucene.includes>
+ </properties>
+ </profile>
+ <profile>
<id>maildir</id>
<properties>
<maildir.includes>**/maildir/**/*.java</maildir.includes>
@@ -185,7 +192,8 @@
<exclude>**/suite/**/*.java</exclude>
</excludes>
<includes>
- <include>${cassandra.includes}, ${hbase.includes}, ${inmemory.includes}, ${jcr.includes}, ${jpa.includes}, ${maildir.includes}, ${cyrus.includes}, ${elasticsearch.includes}</include>
+ <include>${cassandra.includes}, ${hbase.includes}, ${inmemory.includes}, ${jcr.includes}, ${jpa.includes}, ${maildir.includes}, ${cyrus.includes},
+${elasticsearch.includes}, ${jpa-lucene.includes}</include>
</includes>
</configuration>
</plugin>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[5/7] james-project git commit: JAMES-1842: Searches should be done
on rare patterns with indexer
Posted by ad...@apache.org.
JAMES-1842: Searches should be done on rare patterns with indexer
Threshold changes accross Index implementations. Searched patterns should appear only in one message, with ambiguity.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ee4a608f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ee4a608f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ee4a608f
Branch: refs/heads/master
Commit: ee4a608fd406055bd00c5f3d00358221c88ee84b
Parents: 94249b4
Author: Quynh Nguyen <qn...@linagora.com>
Authored: Wed Nov 9 14:20:46 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 9 16:12:21 2016 +0700
----------------------------------------------------------------------
.../org/apache/james/imap/scripts/UidSearchAtomsIndexer.test | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/ee4a608f/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
index ce9f6f7..54aa2c7 100644
--- a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
+++ b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
@@ -2133,8 +2133,8 @@ C: A105 UID SEARCH BCC example.org
S: \* SEARCH
S: A105 OK SEARCH completed\.
-C: A103 UID SEARCH BODY "nothing worthy prove"
-S: \* SEARCH 30 31 32 38 39
+C: A103 UID SEARCH BODY "limping sway"
+S: \* SEARCH 31
S: A103 OK SEARCH completed\.
C: A104 UID SEARCH CC tim
@@ -2241,8 +2241,8 @@ C: A129 UID SEARCH SUBJECT "William Shakespeare"
S: \* SEARCH 30 32 38 39
S: A129 OK SEARCH completed\.
-C: A130 UID SEARCH TEXT "nothing worthy prove"
-S: \* SEARCH 30 31 32 37 38 39
+C: A130 UID SEARCH TEXT "limping sway"
+S: \* SEARCH 31
S: A130 OK SEARCH completed\.
C: A131 UID SEARCH UID 1:4
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[2/7] james-project git commit: JAMES-1842: update james version to
3.0.0-beta6-SNAPSHOT of new module
Posted by ad...@apache.org.
JAMES-1842: update james version to 3.0.0-beta6-SNAPSHOT of new module
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a4c41758
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a4c41758
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a4c41758
Branch: refs/heads/master
Commit: a4c417584dcffcd917802306ccfc6b5cef3ae3bc
Parents: 6b1d543
Author: Quynh Nguyen <qn...@linagora.com>
Authored: Tue Nov 8 17:30:34 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 9 16:10:06 2016 +0700
----------------------------------------------------------------------
mpt/impl/imap-mailbox/lucenesearch/pom.xml | 2 +-
.../imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/a4c41758/mpt/impl/imap-mailbox/lucenesearch/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/pom.xml b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
index e88550d..a707ac0 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/pom.xml
+++ b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
@@ -24,7 +24,7 @@
<parent>
<artifactId>apache-james-mpt-imapmailbox</artifactId>
<groupId>org.apache.james</groupId>
- <version>3.0.0-beta5-SNAPSHOT</version>
+ <version>3.0.0-beta6-SNAPSHOT</version>
</parent>
<artifactId>apache-james-mpt-imapmailbox-jpa-lucene</artifactId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/a4c41758/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
index d0cfc2c..ec669fd 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
@@ -52,8 +52,10 @@ import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
import org.apache.james.mailbox.jpa.user.model.JPASubscription;
import org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex;
import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.FakeAuthenticator;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
import org.apache.james.mailbox.store.quota.NoQuotaManager;
@@ -155,8 +157,9 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem {
MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
MessageParser messageParser = new MessageParser();
+ MessageId.Factory messageIdFactory = new DefaultMessageId.Factory();
- mailboxManager = new OpenJPAMailboxManager(factory, userManager, locker, false, aclResolver, groupMembershipResolver, messageParser);
+ mailboxManager = new OpenJPAMailboxManager(factory, userManager, locker, false, aclResolver, groupMembershipResolver, messageParser, messageIdFactory);
mailboxManager.setMessageSearchIndex(searchIndex);
mailboxManager.init();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[7/7] james-project git commit: Merge remote-tracking branch
'quynhn/JPA_Lucene'
Posted by ad...@apache.org.
Merge remote-tracking branch 'quynhn/JPA_Lucene'
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a0050bd1
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a0050bd1
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a0050bd1
Branch: refs/heads/master
Commit: a0050bd113294820fbe337a23c774bed8d345e4b
Parents: e37e92f 2d55c4c
Author: Antoine Duprat <ad...@apache.org>
Authored: Mon Nov 14 11:53:06 2016 +0100
Committer: Antoine Duprat <ad...@apache.org>
Committed: Mon Nov 14 11:53:06 2016 +0100
----------------------------------------------------------------------
dockerfiles/compilation/java-6/compile.sh | 4 +-
.../run/spring/destination/conf/indexer.xml | 2 +-
.../META-INF/spring/mailbox-cassandra.xml | 1 +
.../org/apache/james/mailbox/jpa/JPAId.java | 7 +
.../resources/META-INF/spring/mailbox-jpa.xml | 2 +
mailbox/lucene/pom.xml | 16 --
.../META-INF/spring/mailbox-index-lucene.xml | 9 +-
.../META-INF/spring/mailbox-memory.xml | 2 +
.../META-INF/spring/spring-mailbox.xml | 4 +-
.../org/apache/james/spring-mailbox-lucene.xml | 44 -----
.../META-INF/spring/mailbox-index-lucene.xml | 43 ++++
mailbox/src/site/xdoc/mailbox-spring.xml | 1 -
.../imap/scripts/UidSearchAtomsIndexer.test | 16 +-
mpt/impl/imap-mailbox/lucenesearch/pom.xml | 70 +++++++
.../lucenesearch/LuceneSearchMailboxTest.java | 74 +++++++
.../LuceneSearchMailboxTestModule.java | 42 ++++
.../host/LuceneSearchHostSystem.java | 197 +++++++++++++++++++
mpt/impl/imap-mailbox/pom.xml | 17 +-
mpt/pom.xml | 11 ++
.../app/src/main/resources/indexer-template.xml | 4 +-
.../app/spring/JamesAppSpringMainTest.java | 7 +-
server/app/src/test/resources/events.xml | 90 +++++++++
server/app/src/test/resources/indexer.xml | 33 ++++
.../src/test/resources/managesieveserver.xml | 63 ++++++
server/app/src/test/resources/quota.xml | 53 +++++
...erConfigurationBeanFactoryPostProcessor.java | 3 +
...oxConfigurationBeanFactoryPostProcessor.java | 5 +
27 files changed, 736 insertions(+), 84 deletions(-)
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org