svn commit: r1710203 - /james/project/trunk/src/site/xdoc/index.xml

2015-10-23 Thread matthieu
Author: matthieu
Date: Fri Oct 23 13:06:47 2015
New Revision: 1710203

URL: http://svn.apache.org/viewvc?rev=1710203=rev
Log:
fix 2.3.2.1 release broken copy/paste in index.xml

Modified:
james/project/trunk/src/site/xdoc/index.xml

Modified: james/project/trunk/src/site/xdoc/index.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/src/site/xdoc/index.xml?rev=1710203=1710202=1710203=diff
==
--- james/project/trunk/src/site/xdoc/index.xml (original)
+++ james/project/trunk/src/site/xdoc/index.xml Fri Oct 23 13:06:47 2015
@@ -393,8 +393,6 @@
   Apache James Server 
2.3.2.1 fixes a security issue - Please upgrade!!!
   
   
-  April/2012 - 
-
   Jun/2012 - 
   Apache James Hupa 
0.0.2 released
   



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



svn commit: r1710532 - /james/project/trunk/server/karaf/distribution/pom.xml

2015-10-26 Thread matthieu
Author: matthieu
Date: Mon Oct 26 08:45:18 2015
New Revision: 1710532

URL: http://svn.apache.org/viewvc?rev=1710532=rev
Log:
JAMES-1624 move add-to-repo action to install phase

This tasks takes artifacts from maven repository and put them in
target/ directory. It actually needs these artifacts to be installed,
and it obviously fails if they are missing.

Modified:
james/project/trunk/server/karaf/distribution/pom.xml

Modified: james/project/trunk/server/karaf/distribution/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/karaf/distribution/pom.xml?rev=1710532=1710531=1710532=diff
==
--- james/project/trunk/server/karaf/distribution/pom.xml (original)
+++ james/project/trunk/server/karaf/distribution/pom.xml Mon Oct 26 08:45:18 
2015
@@ -121,7 +121,7 @@
 
 
 add-features-to-repo
-compile
+install
 
 add-features-to-repo
 



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



svn commit: r1711269 - in /james/project/trunk: backends-common/cassandra/src/main/resources/ backends-common/cassandra/src/main/resources/META-INF/ mailbox/cassandra/src/main/resources/META-INF/sprin

2015-10-29 Thread matthieu
Author: matthieu
Date: Thu Oct 29 14:15:07 2015
New Revision: 1711269

URL: http://svn.apache.org/viewvc?rev=1711269=rev
Log:
JAMES-1588 Spring configuration

Added:
james/project/trunk/backends-common/cassandra/src/main/resources/
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/

james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
Modified:

james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml

james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml

Added: 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml?rev=1711269=auto
==
--- 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 (added)
+++ 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 Thu Oct 29 14:15:07 2015
@@ -0,0 +1,87 @@
+
+
+
+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
+  http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd;>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Modified: 
james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml?rev=1711269=1711268=1711269=diff
==
--- 
james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
 (original)
+++ 
james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
 Thu Oct 29 14:15:07 2015
@@ -26,7 +26,10 @@
 
-
+
 
 
 
@@ -36,64 +39,44 @@
 
 
 
-
+
 
 
 
-
+
 
 
 
 
 
 
-
+
 
 
 
-
+
 
 
 
 
 
-
+
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
 
 
 

Modified: 
james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml?rev=1711269=1711268=1711269=diff
==
--- 
james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
 (original)
+++ 
james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
 Thu Oct 29 14:15:07 2015
@@ -25,6 +25,8 @@
   http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
   http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd;>
 
+
+
 
 
+
 



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



svn commit: r1711271 - in /james/project/trunk/backends-common/cassandra/src: main/java/org/apache/james/backends/cassandra/init/ main/java/org/apache/james/backends/cassandra/utils/ main/resources/ME

2015-10-29 Thread matthieu
Author: matthieu
Date: Thu Oct 29 14:15:52 2015
New Revision: 1711271

URL: http://svn.apache.org/viewvc?rev=1711271=rev
Log:
JAMES-1588 Introduce a Cassandra module aggregator

Added:

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraModuleComposite.java
  - copied, changed from r1711269, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesCreator.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/Collectors.java
  - copied, changed from r1711269, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesCreator.java

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/CollectorsTest.java
Modified:

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTableManager.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesCreator.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SessionWithInitializedTablesFactory.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SpringStaticSessionFactory.java

james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterSingleton.java

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java

Copied: 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraModuleComposite.java
 (from r1711269, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesCreator.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraModuleComposite.java?p2=james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraModuleComposite.java=james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesCreator.java=1711269=1711271=1711271=diff
==
--- 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesCreator.java
 (original)
+++ 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraModuleComposite.java
 Thu Oct 29 14:15:52 2015
@@ -19,30 +19,46 @@
 
 package org.apache.james.backends.cassandra.init;
 
+import java.util.Arrays;
 import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
 
-import com.datastax.driver.core.Session;
-import com.datastax.driver.core.UserType;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
+import org.apache.james.backends.cassandra.components.CassandraIndex;
 import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.backends.cassandra.components.CassandraTable;
 import org.apache.james.backends.cassandra.components.CassandraType;
+import org.apache.james.backends.cassandra.utils.Collectors;
 
-public class CassandraTypesCreator {
+public class CassandraModuleComposite implements CassandraModule {
+
+private final ImmutableList tables;
+private final ImmutableList index;
 private final ImmutableList types;
-private final Session session;
 
-public CassandraTypesCreator(List modules, Session 
session) {
-this.types = ImmutableList.copyOf(modules.stream()
+public CassandraModuleComposite(CassandraModule... modules) {
+tables = Arrays.stream(modules)
+.flatMap(module -> module.moduleTables().stream())
+.collect(Collectors.toImmutableList());
+index = Arrays.stream(modules)
+.flatMap(module -> module.moduleIndex().stream())
+.collect(Collectors.toImmutableList());
+types = Arrays.stream(modules)
 .flatMap(module -> module.moduleTypes().stream())
-.collect(Collectors.toList()));
-this.session = session;
+.collect(Collectors.toImmutableList());
+}
+
+@Override
+public List moduleTables() {
+return tables;
 }
 
-public void initializeTypes() {
-types.forE

svn commit: r1711263 - in /james/project/trunk/backends-common/cassandra: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/james/ src/main/java/or

2015-10-29 Thread matthieu
Author: matthieu
Date: Thu Oct 29 14:12:12 2015
New Revision: 1711263

URL: http://svn.apache.org/viewvc?rev=1711263=rev
Log:
JAMES-1588 Creating cassandra project

Added:
james/project/trunk/backends-common/cassandra/
james/project/trunk/backends-common/cassandra/pom.xml
james/project/trunk/backends-common/cassandra/src/
james/project/trunk/backends-common/cassandra/src/main/
james/project/trunk/backends-common/cassandra/src/main/java/
james/project/trunk/backends-common/cassandra/src/main/java/org/
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraConstants.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraUtils.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/FunctionRunnerWithRetry.java

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/LightweightTransactionException.java
james/project/trunk/backends-common/cassandra/src/test/
james/project/trunk/backends-common/cassandra/src/test/java/
james/project/trunk/backends-common/cassandra/src/test/java/org/
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/FunctionRunnerWithRetryTest.java

Added: james/project/trunk/backends-common/cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/pom.xml?rev=1711263=auto
==
--- james/project/trunk/backends-common/cassandra/pom.xml (added)
+++ james/project/trunk/backends-common/cassandra/pom.xml Thu Oct 29 14:12:12 
2015
@@ -0,0 +1,200 @@
+
+
+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;>
+
+4.0.0
+
+
+james-backends-common
+org.apache.james
+1.8.3-SNAPSHOT
+
+
+apache-james-backends-cassandra
+Apache James Cassandra backend
+
+
+
+disable-build-for-older-jdk
+
+(,1.8)
+
+
+
+
+maven-jar-plugin
+
+
+default-jar
+none
+
+
+jar
+none
+
+
+test-jar
+none
+
+
+
+
+maven-compiler-plugin
+
+
+default-compile
+none
+
+
+default-testCompile
+none
+
+
+
+
+maven-surefire-plugin
+
+
+default-test
+none
+
+
+
+
+maven-source-plugin
+
+
+attach-sources
+none
+
+
+
+
+maven-install-plugin
+
+
+  

svn commit: r1711264 - in /james/project/trunk: mailbox/ mailbox/zoo-seq-provider/ server/ server/container/core/ server/container/mailbox-adapter/ server/data/data-file/ server/data/data-hbase/ serve

2015-10-29 Thread matthieu
Author: matthieu
Date: Thu Oct 29 14:12:43 2015
New Revision: 1711264

URL: http://svn.apache.org/viewvc?rev=1711264=rev
Log:
JAMES-1588 Guava 16.0 is needed to launch Cassandra Session

Modified:
james/project/trunk/mailbox/pom.xml
james/project/trunk/mailbox/zoo-seq-provider/pom.xml
james/project/trunk/server/container/core/pom.xml
james/project/trunk/server/container/mailbox-adapter/pom.xml
james/project/trunk/server/data/data-file/pom.xml
james/project/trunk/server/data/data-hbase/pom.xml
james/project/trunk/server/data/data-jcr/pom.xml
james/project/trunk/server/data/data-jdbc/pom.xml
james/project/trunk/server/data/data-jpa/pom.xml
james/project/trunk/server/data/data-library/pom.xml
james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml
james/project/trunk/server/dns-service/dnsservice-library/pom.xml
james/project/trunk/server/karaf/integration/pom.xml
james/project/trunk/server/mailet/mailets/pom.xml
james/project/trunk/server/pom.xml
james/project/trunk/server/queue/queue-activemq/pom.xml

james/project/trunk/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java

james/project/trunk/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java

Modified: james/project/trunk/mailbox/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/pom.xml?rev=1711264=1711263=1711264=diff
==
--- james/project/trunk/mailbox/pom.xml (original)
+++ james/project/trunk/mailbox/pom.xml Thu Oct 29 14:12:43 2015
@@ -120,7 +120,7 @@
 4.11
 1.9.0
 1.9.0
-13.0
+16.0
 1.7.1
 2.3.3
 2.1.5

Modified: james/project/trunk/mailbox/zoo-seq-provider/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/zoo-seq-provider/pom.xml?rev=1711264=1711263=1711264=diff
==
--- james/project/trunk/mailbox/zoo-seq-provider/pom.xml (original)
+++ james/project/trunk/mailbox/zoo-seq-provider/pom.xml Thu Oct 29 14:12:43 
2015
@@ -64,6 +64,11 @@
 ${curator.version}
 
 
+com.google.guava
+guava
+13.0
+
+
 com.netflix.curator
 curator-framework
 ${curator.version}

Modified: james/project/trunk/server/container/core/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/core/pom.xml?rev=1711264=1711263=1711264=diff
==
--- james/project/trunk/server/container/core/pom.xml (original)
+++ james/project/trunk/server/container/core/pom.xml Thu Oct 29 14:12:43 2015
@@ -61,6 +61,10 @@
 apache-mailet-base
 
 
+com.google.guava
+guava
+
+
 commons-io
 commons-io
 

Modified: james/project/trunk/server/container/mailbox-adapter/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/mailbox-adapter/pom.xml?rev=1711264=1711263=1711264=diff
==
--- james/project/trunk/server/container/mailbox-adapter/pom.xml (original)
+++ james/project/trunk/server/container/mailbox-adapter/pom.xml Thu Oct 29 
14:12:43 2015
@@ -63,6 +63,10 @@
 slf4j-api
 
 
+com.google.guava
+guava
+
+
 junit
 junit
 test

Modified: james/project/trunk/server/data/data-file/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/pom.xml?rev=1711264=1711263=1711264=diff
==
--- james/project/trunk/server/data/data-file/pom.xml (original)
+++ james/project/trunk/server/data/data-file/pom.xml Thu Oct 29 14:12:43 2015
@@ -60,6 +60,10 @@
 apache-mailet-api
 
 
+com.google.guava
+guava
+
+
 commons-configuration
 commons-configuration
 

Modified: james/project/trunk/server/data/data-hbase/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/pom.xml?rev=1711264=1711263=1711264=diff
==
--- james/project/trunk/server/data/data-hbase/pom.xml (original)
+++ james/project/trunk/server/data/data-hbase/pom.xml Thu Oct 29 14:12:43 2015
@@ -98,6 +98,12 @@
 
 
 
+com.google.guava
+guava
+test
+13.0
+
+
 junit
 junit
 test

Modified: james/project/trunk/server/data/data-jcr/pom.xml
URL

svn commit: r1711267 - /james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SpringStaticSessionFactory.java

2015-10-29 Thread matthieu
Author: matthieu
Date: Thu Oct 29 14:13:27 2015
New Revision: 1711267

URL: http://svn.apache.org/viewvc?rev=1711267=rev
Log:
JAMES-1588 Provide Session factory bridge for Spring

Added:

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SpringStaticSessionFactory.java

Added: 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SpringStaticSessionFactory.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SpringStaticSessionFactory.java?rev=1711267=auto
==
--- 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SpringStaticSessionFactory.java
 (added)
+++ 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SpringStaticSessionFactory.java
 Thu Oct 29 14:13:27 2015
@@ -0,0 +1,38 @@
+/
+ * 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.backends.cassandra.init;
+
+import java.util.List;
+
+import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.Session;
+import org.apache.james.backends.cassandra.components.CassandraModule;
+
+public class SpringStaticSessionFactory {
+
+public static Session createSession(Cluster cluster, String keyspace, 
List modules) {
+return new 
SessionWithInitializedTablesFactory(modules).createSession(cluster, keyspace);
+}
+
+public static Session createSession(Cluster cluster, List 
modules) {
+return new 
SessionWithInitializedTablesFactory(modules).createSession(cluster);
+}
+
+}
\ No newline at end of file



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



svn commit: r1711268 - in /james/project/trunk: mailbox/pom.xml server/pom.xml

2015-10-29 Thread matthieu
Author: matthieu
Date: Thu Oct 29 14:13:42 2015
New Revision: 1711268

URL: http://svn.apache.org/viewvc?rev=1711268=rev
Log:
JAMES-1588 Upgrade to Spring 3.2.14

Modified:
james/project/trunk/mailbox/pom.xml
james/project/trunk/server/pom.xml

Modified: james/project/trunk/mailbox/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/pom.xml?rev=1711268=1711267=1711268=diff
==
--- james/project/trunk/mailbox/pom.xml (original)
+++ james/project/trunk/mailbox/pom.xml Thu Oct 29 14:13:42 2015
@@ -97,7 +97,7 @@
 2.5.1
 0.94.27
 1.0.1
-3.2.13.RELEASE
+3.2.14.RELEASE
 2.4
 2.6
 1.6

Modified: james/project/trunk/server/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/pom.xml?rev=1711268=1711267=1711268=diff
==
--- james/project/trunk/server/pom.xml (original)
+++ james/project/trunk/server/pom.xml Thu Oct 29 14:13:42 2015
@@ -127,7 +127,7 @@
 0.6-SNAPSHOT
 2.5.1-SNAPSHOT
 1.6.4-SNAPSHOT
-3.2.13.RELEASE
+3.2.14.RELEASE
 1.1.1
 1.3.170
 
1.0.1-SNAPSHOT



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



svn commit: r1711274 - in /james/project/trunk: mailbox/ mailbox/cassandra/ mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/ mailbox/cassandra/src/main/java/org/apache/james/mailbox

2015-10-29 Thread matthieu
Author: matthieu
Date: Thu Oct 29 14:17:52 2015
New Revision: 1711274

URL: http://svn.apache.org/viewvc?rev=1711274=rev
Log:
JAMES-1588 Use cassandra backend

Added:

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxModule.java
Removed:

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraConstants.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraTableManager.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraTypesProvider.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/ClusterFactory.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/ClusterWithKeyspaceCreatedFactory.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/SessionFactory.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/FunctionRunnerWithRetry.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraClusterSingleton.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTypeProviderTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/FunctionRunnerWithRetryTest.java
Modified:
james/project/trunk/mailbox/cassandra/pom.xml

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactoryTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
james/project/trunk/mailbox/hbase/pom.xml
james/project/trunk/mailbox/pom.xml
james/project/trunk/mpt/impl/imap-mailbox/cassandra/pom.xml

james/project/trunk/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
james/project/trunk/mpt/pom.xml
james/project/trunk/server/app/pom.xml
james/project/trunk/server/pom.xml

Modified: james/project/trunk/mailbox/cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/pom.xml?rev=1711274=1711273=1711274=diff
==
--- james/project/trunk/mailbox/cassandra/pom.xml (original)
+++ james/project/trunk/mailbox/cassandra/pom.xml Thu Oct 29 14:17:52 2015
@@ -176,6 +176,10 @@
 
 
 ${project.groupId}
+apache-james-backends-cassandra
+
+
+${project.groupId}
 apache-james-mailbox-api
 
 
@@ -195,6 +199,12 @@
 
 
 ${project.groupId}
+apache-james-backends-cassandra
+test
+test-jar

svn commit: r1710619 - in /james/project/trunk: ./ dockerfiles/ dockerfiles/compilation/ dockerfiles/compilation/java-8/ dockerfiles/destination/

2015-10-26 Thread matthieu
Author: matthieu
Date: Mon Oct 26 15:11:18 2015
New Revision: 1710619

URL: http://svn.apache.org/viewvc?rev=1710619=rev
Log:
JAMES-1628 Provide environment for JAVA 8 compilation (cassandra profile)

   Contributed by Antoine Duprat and Raphael Ouazana

Added:
james/project/trunk/dockerfiles/
james/project/trunk/dockerfiles/compilation/
james/project/trunk/dockerfiles/compilation/java-8/
james/project/trunk/dockerfiles/compilation/java-8/Dockerfile
james/project/trunk/dockerfiles/compilation/java-8/compile.sh   (with props)
james/project/trunk/dockerfiles/destination/
james/project/trunk/dockerfiles/destination/.gitignore
Modified:
james/project/trunk/README.txt

Modified: james/project/trunk/README.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/README.txt?rev=1710619=1710618=1710619=diff
==
--- james/project/trunk/README.txt (original)
+++ james/project/trunk/README.txt Mon Oct 26 15:11:18 2015
@@ -41,4 +41,26 @@ In short, just follow the 'standard' pro
 Don't forget to add your key to http://www.apache.org/dist/james/KEYS
 
 $ ssh people.apache.org
-$ cd /www/www.apache.org/dist/james
\ No newline at end of file
+$ cd /www/www.apache.org/dist/james
+
+
+Howto check the compilation
+===
+
+In order to have a standard compilation environment, we introduce Dockerfiles.
+
+* Java 8
+First step, you have to build the Docker image
+$ docker build -t james/project dockerfiles/compilation/java-8
+
+In order to run the build, you have to launch the following command:
+$ docker run -v $PWD/.m2:/root/.m2 -v $PWD:/origin -v 
$PWD/dockerfiles/destination:/destination -t james/project -s SHA1
+
+Where:
+
+- $PWD/.m2:/root/.m2: is the first volume used to share the maven repository, 
+as we don't want to download all dependencies on each build
+- $PWD/dockerfiles/destination:/destination: is the third volume used to get 
the compiled elements, 
+as it is needed by the container that will run James.
+- SHA1 (optional): is the given git SHA1 of the james-project repository to 
build or trunk if none.
+- -s option: given tests will not be played while building. Not specifying 
means play tests.

Added: james/project/trunk/dockerfiles/compilation/java-8/Dockerfile
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-8/Dockerfile?rev=1710619=auto
==
--- james/project/trunk/dockerfiles/compilation/java-8/Dockerfile (added)
+++ james/project/trunk/dockerfiles/compilation/java-8/Dockerfile Mon Oct 26 
15:11:18 2015
@@ -0,0 +1,24 @@
+# Build James
+#
+# VERSION  1.0
+
+FROM java:openjdk-8-jdk
+
+ENV GIT_VERSION 1:2.1.4-2.1
+
+# Install Maven
+WORKDIR /root
+RUN wget 
http://mirrors.ircam.fr/pub/apache/maven/maven-3/3.3.1/binaries/apache-maven-3.3.1-bin.tar.gz
+RUN tar -xvf apache-maven-3.3.1-bin.tar.gz
+RUN ln -s /root/apache-maven-3.3.1/bin/mvn /usr/bin/mvn
+
+# Install git
+RUN apt-get update
+RUN apt-get install -y git="$GIT_VERSION"
+
+# Copy the script
+COPY compile.sh /root/compile.sh
+
+# Define the entrypoint
+WORKDIR /james-project
+ENTRYPOINT ["/root/compile.sh"]

Added: james/project/trunk/dockerfiles/compilation/java-8/compile.sh
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-8/compile.sh?rev=1710619=auto
==
--- james/project/trunk/dockerfiles/compilation/java-8/compile.sh (added)
+++ james/project/trunk/dockerfiles/compilation/java-8/compile.sh Mon Oct 26 
15:11:18 2015
@@ -0,0 +1,56 @@
+#!/bin/sh -e
+#
+
+printUsage() {
+   echo "Usage : "
+   echo "./compile.sh [-s | --skipTests] SHA1"
+   echo "-s: Skip test"
+   echo "SHA1: SHA1 to build (optional)"
+   exit 1
+}
+
+ORIGIN=/origin
+DESTINATION=/destination
+
+for arg in "$@"
+do
+   case $arg in
+  -s|--skipTests)
+ SKIPTESTS="skipTests"
+ ;;
+  -*)
+ echo "Invalid option: -$OPTARG"
+ printUsage
+ ;;
+  *)
+ if ! [ -z "$1" ]; then
+SHA1=$1
+ fi
+ ;;
+   esac
+   if [ "0" -lt "$#" ]; then
+  shift
+   fi
+done
+
+if [ -z "$SHA1" ]; then
+   SHA1=trunk
+fi
+
+# Sources retrieval
+git clone $ORIGIN/.
+git checkout $SHA1
+
+# Compilation
+
+if [ "$SKIPTESTS" = "skipTests" ]; then
+   mvn package -DskipTests -Pcassandra,exclude-lucene,with-assembly,with-jetm
+else
+   mvn package -Pcassandra,exclude-lucene,with-assembly,with-jetm
+fi
+
+# Retrieve result
+
+if [ $? -eq 0 ]; then
+   cp server/app/target/james-server-app-*-app.zip $DESTINATION
+fi

Propchange: james/project/trunk/dockerfiles/compilation/java-8/compile.sh
--

svn commit: r1710622 - in /james/project/trunk: README.txt dockerfiles/compilation/java-6/ dockerfiles/compilation/java-6/Dockerfile dockerfiles/compilation/java-6/compile.sh

2015-10-26 Thread matthieu
Author: matthieu
Date: Mon Oct 26 15:15:02 2015
New Revision: 1710622

URL: http://svn.apache.org/viewvc?rev=1710622=rev
Log:
JAMES-1628 Provide environment for JAVA 6 compilation

   Contributed by Antoine Duprat and Raphael Ouazana

Added:
james/project/trunk/dockerfiles/compilation/java-6/
james/project/trunk/dockerfiles/compilation/java-6/Dockerfile
james/project/trunk/dockerfiles/compilation/java-6/compile.sh   (with props)
Modified:
james/project/trunk/README.txt

Modified: james/project/trunk/README.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/README.txt?rev=1710622=1710621=1710622=diff
==
--- james/project/trunk/README.txt (original)
+++ james/project/trunk/README.txt Mon Oct 26 15:15:02 2015
@@ -48,6 +48,26 @@ Howto check the compilation
 ===
 
 In order to have a standard compilation environment, we introduce Dockerfiles.
+We need to check the compilation in both Java 6 & Java 8:
+- Java 6 is the historical Java release used in James.
+- Java 8 is used to compile the Cassandra backend.
+
+* Java 6
+First step, you have to build the Docker image
+$ docker build -t james/project dockerfiles/compilation/java-6
+
+In order to run the build, you have to launch the following command:
+$ docker run -v $PWD/.m2:/root/.m2 -v $PWD:/origin -v 
$PWD/dockerfiles/destination:/destination -t james/project -s SHA1
+
+Where:
+
+- $PWD/.m2:/root/.m2: is the first volume used to share the maven repository, 
+as we don't want to download all dependencies on each build
+- $PWD/dockerfiles/destination:/destination: is the third volume used to get 
the compiled elements, 
+as it is needed by the container that will run James.
+- SHA1 (optional): is the given git SHA1 of the james-project repository to 
build or trunk if none.
+- -s option: given tests will not be played while building. Not specifying 
means play tests.
+
 
 * Java 8
 First step, you have to build the Docker image

Added: james/project/trunk/dockerfiles/compilation/java-6/Dockerfile
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-6/Dockerfile?rev=1710622=auto
==
--- james/project/trunk/dockerfiles/compilation/java-6/Dockerfile (added)
+++ james/project/trunk/dockerfiles/compilation/java-6/Dockerfile Mon Oct 26 
15:15:02 2015
@@ -0,0 +1,24 @@
+# Build James
+#
+# VERSION  1.0
+
+FROM java:openjdk-6-jdk
+
+ENV GIT_VERSION 1:1.7.10.4-1+wheezy1
+
+# Install Maven
+WORKDIR /root
+RUN wget 
http://mirrors.ircam.fr/pub/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
+RUN tar -xvf apache-maven-3.2.5-bin.tar.gz
+RUN ln -s /root/apache-maven-3.2.5/bin/mvn /usr/bin/mvn
+
+# Install git
+RUN apt-get update
+RUN apt-get install -y git="$GIT_VERSION"
+
+# Copy the script
+COPY compile.sh /root/compile.sh
+
+# Define the entrypoint
+WORKDIR /james-parent
+ENTRYPOINT ["/root/compile.sh"]

Added: james/project/trunk/dockerfiles/compilation/java-6/compile.sh
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-6/compile.sh?rev=1710622=auto
==
--- james/project/trunk/dockerfiles/compilation/java-6/compile.sh (added)
+++ james/project/trunk/dockerfiles/compilation/java-6/compile.sh Mon Oct 26 
15:15:02 2015
@@ -0,0 +1,50 @@
+#!/bin/sh -e
+#
+
+printUsage() {
+   echo "Usage : "
+   echo "./compile.sh [-s | --skipTests] SHA1"
+   echo "-s : Skip test"
+   echo "SHA1: SHA1 to build (optional)"
+   exit 1
+}
+
+ORIGIN=/origin
+DESTINATION=/destination
+
+for arg in "$@"
+do
+   case $arg in
+  -s|--skipTests)
+ SKIPTESTS="skipTests"
+ ;;
+  -*)
+ echo "Invalid option: -$OPTARG"
+ printUsage
+ ;;
+  *)
+ if ! [ -z "$1" ]; then
+SHA1=$1
+ fi
+ ;;
+   esac
+   if [ "0" -lt "$#" ]; then
+  shift
+   fi
+done
+
+if [ -z "$SHA1" ]; then
+   SHA1=trunk
+fi
+
+# Sources retrieval
+git clone $ORIGIN/.
+git checkout $SHA1
+
+# Compilation
+
+if [ "$SKIPTESTS" = "skipTests" ]; then
+   mvn package -DskipTests
+else
+   mvn package
+fi

Propchange: james/project/trunk/dockerfiles/compilation/java-6/compile.sh
--
svn:executable = *



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



svn commit: r1710623 [1/2] - in /james/project/trunk: ./ dockerfiles/ dockerfiles/destination/conf/ dockerfiles/destination/conf/META-INF/ dockerfiles/destination/conf/lib/ dockerfiles/destination/var

2015-10-26 Thread matthieu
Author: matthieu
Date: Mon Oct 26 15:15:48 2015
New Revision: 1710623

URL: http://svn.apache.org/viewvc?rev=1710623=rev
Log:
JAMES-1628 Provide docker environment running James from build

   Contributed by Antoine Duprat and Raphael Ouazana

Added:
james/project/trunk/dockerfiles/Dockerfile
james/project/trunk/dockerfiles/destination/conf/
james/project/trunk/dockerfiles/destination/conf/META-INF/

james/project/trunk/dockerfiles/destination/conf/META-INF/jpa-mappings-template.xml

james/project/trunk/dockerfiles/destination/conf/META-INF/persistence-template.xml
james/project/trunk/dockerfiles/destination/conf/META-INF/persistence.xml
james/project/trunk/dockerfiles/destination/conf/cassandra.properties
james/project/trunk/dockerfiles/destination/conf/dnsservice.xml
james/project/trunk/dockerfiles/destination/conf/domainlist.xml
james/project/trunk/dockerfiles/destination/conf/elasticsearch.properties
james/project/trunk/dockerfiles/destination/conf/fetchmail.xml
james/project/trunk/dockerfiles/destination/conf/imapserver.xml
james/project/trunk/dockerfiles/destination/conf/indexer.xml
james/project/trunk/dockerfiles/destination/conf/james-database.properties
james/project/trunk/dockerfiles/destination/conf/jcr-repository.xml
james/project/trunk/dockerfiles/destination/conf/jmx.properties
james/project/trunk/dockerfiles/destination/conf/lib/
james/project/trunk/dockerfiles/destination/conf/lib/README.txt
james/project/trunk/dockerfiles/destination/conf/lmtpserver.xml
james/project/trunk/dockerfiles/destination/conf/log4j.properties
james/project/trunk/dockerfiles/destination/conf/mailbox.xml
james/project/trunk/dockerfiles/destination/conf/mailetcontainer.xml
james/project/trunk/dockerfiles/destination/conf/mailrepositorystore.xml
james/project/trunk/dockerfiles/destination/conf/managesieve.help.txt
james/project/trunk/dockerfiles/destination/conf/pop3server.xml
james/project/trunk/dockerfiles/destination/conf/quota.xml
james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml
james/project/trunk/dockerfiles/destination/conf/smtpserver.xml
james/project/trunk/dockerfiles/destination/conf/sqlResources.xml
james/project/trunk/dockerfiles/destination/conf/usersrepository.xml
james/project/trunk/dockerfiles/destination/var/
james/project/trunk/dockerfiles/destination/var/.gitignore
Modified:
james/project/trunk/README.txt

Modified: james/project/trunk/README.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/README.txt?rev=1710623=1710622=1710623=diff
==
--- james/project/trunk/README.txt (original)
+++ james/project/trunk/README.txt Mon Oct 26 15:15:48 2015
@@ -84,3 +84,77 @@ as we don't want to download all depende
 as it is needed by the container that will run James.
 - SHA1 (optional): is the given git SHA1 of the james-project repository to 
build or trunk if none.
 - -s option: given tests will not be played while building. Not specifying 
means play tests.
+
+Howto run James in Docker
+=
+
+This feature is only available for Java 8 / Cassandra mailbox backend yet.
+
+
+* Requirements
+You should have the zip resulting of the build in the 
./dockerfiles/destination folder.
+
+
+* Howto ?
+You need a running cassandra in docker. To achieve this run :
+$ docker run -d --name=cassandra cassandra
+
+You need a running ElasticSearch in docker. To achieve this run :
+$ docker run -d --name=elasticsearch elasticsearch:1.5.2
+
+We need to provide the key we will use for TLS. For obvious reasons, this is 
not provided in this git.
+
+Copy your TSL keys to destination/conf/keystore or generate it using the 
following command. The password must be james72laBalle to match default 
configuration.
+$ keytool -genkey -alias james -keyalg RSA -keystore 
dockerfiles/destination/conf/keystore
+
+Then we need to build james container :
+$ docker build -t james_run dockerfiles
+
+To run this container :
+$ docker run --hostname HOSTNAME -p "25:25" -p "110:110" -p "143:143" -p 
"465:465" -p "587:587" -p "993:993" --link cassandra:cassandra --link 
elasticsearch:elasticsearch --name james_run -t james_run
+
+Where :
+- HOSTNAME: is the hostname you want to give to your James container. This DNS 
entry will be used to send mail to your James server.
+
+
+* Useful commands
+
+** How to add a domain ?
+# Add DOMAIN to 127.0.0.1 in your host /etc/hosts
+$ docker exec james_run 
/root/james-server-app-3.0.0-beta5-SNAPSHOT/bin/james-cli.sh -h 127.0.0.1 -p 
 adddomain DOMAIN
+
+Where :
+- DOMAIN: is the domain you want to add.
+
+** How to add a user ?
+$ docker exec james_run 
/root/james-server-app-3.0.0-beta5-SNAPSHOT/bin/james-cli.sh -h 127.0.0.1 -p 
 adduser USER_MAIL_ADDRESS PASSWORD
+
+Where :

svn commit: r1710624 - in /james/project/trunk: README.txt dockerfiles/compilation/java-8/Dockerfile dockerfiles/compilation/java-8/integration_tests.sh

2015-10-26 Thread matthieu
Author: matthieu
Date: Mon Oct 26 15:16:09 2015
New Revision: 1710624

URL: http://svn.apache.org/viewvc?rev=1710624=rev
Log:
JAMES-1628 Provide a docker entry point playing integration tests on a running 
James

Contributed by Antoine Duprat and Raphael Ouazana

Added:
james/project/trunk/dockerfiles/compilation/java-8/integration_tests.sh   
(with props)
Modified:
james/project/trunk/README.txt
james/project/trunk/dockerfiles/compilation/java-8/Dockerfile

Modified: james/project/trunk/README.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/README.txt?rev=1710624=1710623=1710624=diff
==
--- james/project/trunk/README.txt (original)
+++ james/project/trunk/README.txt Mon Oct 26 15:16:09 2015
@@ -158,3 +158,26 @@ Where :
 - WORKDIR: is the absolute path to your james-parent workdir.
 
 Beware : you will have concurrency issues if multiple containers are running 
on this single volume.
+
+
+Running deployement Tests
+=
+
+We wrote some MPT (James' Mail Protocols Tests subproject) deployement tests 
to validate a James
+deployement.
+
+It uses the External-James module, that uses environment variables to locate a 
remote
+IMAP server and run integration tests against it.
+
+For that, the target James Server needs to be configured with a domain domain 
and a user imapuser
+with password password. Read above documentation to see how you can do this.
+
+You have to run MPT tests inside docker. As you need to use maven, the 
simplest option is to
+use james/parent image, and override the entry point ( as git and maven are 
already configured
+there ) :
+$ docker run -t --entrypoint="/root/integration_tests.sh" -v 
$PWD/.m2:/root/.m2 -v $PWD:/origin james/project JAMES_IP JAMES_PORT SHA1
+
+Where :
+ - JAMES_IP: IP address or DNS entry for your James server
+ - JAMES_PORT: Port allocated to James' IMAP port (should be 143).
+ - SHA1(optional): Branch to use in order to build integration tests or trunk

Modified: james/project/trunk/dockerfiles/compilation/java-8/Dockerfile
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-8/Dockerfile?rev=1710624=1710623=1710624=diff
==
--- james/project/trunk/dockerfiles/compilation/java-8/Dockerfile (original)
+++ james/project/trunk/dockerfiles/compilation/java-8/Dockerfile Mon Oct 26 
15:16:09 2015
@@ -18,6 +18,7 @@ RUN apt-get install -y git="$GIT_VERSION
 
 # Copy the script
 COPY compile.sh /root/compile.sh
+COPY integration_tests.sh /root/integration_tests.sh
 
 # Define the entrypoint
 WORKDIR /james-project

Added: james/project/trunk/dockerfiles/compilation/java-8/integration_tests.sh
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-8/integration_tests.sh?rev=1710624=auto
==
--- james/project/trunk/dockerfiles/compilation/java-8/integration_tests.sh 
(added)
+++ james/project/trunk/dockerfiles/compilation/java-8/integration_tests.sh Mon 
Oct 26 15:16:09 2015
@@ -0,0 +1,55 @@
+#!/bin/sh -e
+
+printUsage() {
+   echo "Usage : "
+   echo "./integration_tests.sh URL BRANCH JAMES_IP JAMES_IMAP_PORT"
+   echo "JAMES_IP: IP of the James server to be tests"
+   echo "JAMES_IMAP_PORT: Exposed IMAP port of this James server"
+   echo "SHA1(optional): Branch to build or trunk if none"
+   exit 1
+}
+
+ORIGIN=/origin
+
+for arg in "$@"
+do
+   case $arg in
+  -*)
+ echo "Invalid option: -$OPTARG"
+ printUsage
+ ;;
+  *)
+ if ! [ -z "$1" ]; then
+JAMES_ADDRESS=$1
+ fi
+ if ! [ -z "$2" ]; then
+JAMES_IMAP_PORT=$2
+ fi
+ if ! [ -z "$3" ]; then
+SHA1=$3
+ fi
+ ;;
+   esac
+done
+
+if [ -z "$JAMES_ADDRESS" ]; then
+   echo "You must provide a JAMES_ADDRESS"
+   printUsage
+fi
+
+if [ -z "$JAMES_IMAP_PORT" ]; then
+   echo "You must provide a JAMES_IMAP_PORT"
+   printUsage
+fi
+
+if [ -z "$SHA1" ]; then
+   SHA1=trunk
+fi
+
+export JAMES_ADDRESS=$JAMES_ADDRESS
+export JAMES_IMAP_PORT=$JAMES_IMAP_PORT
+
+git clone $ORIGIN/.
+git checkout $SHA1
+
+mvn -Dtest=ExternalJamesTest -DfailIfNoTests=false -pl 
org.apache.james:apache-james-mpt-external-james -am test

Propchange: 
james/project/trunk/dockerfiles/compilation/java-8/integration_tests.sh
--
svn:executable = *



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



svn commit: r1710623 [2/2] - in /james/project/trunk: ./ dockerfiles/ dockerfiles/destination/conf/ dockerfiles/destination/conf/META-INF/ dockerfiles/destination/conf/lib/ dockerfiles/destination/var

2015-10-26 Thread matthieu
Added: james/project/trunk/dockerfiles/destination/conf/smtpserver.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/smtpserver.xml?rev=1710623=auto
==
--- james/project/trunk/dockerfiles/destination/conf/smtpserver.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/smtpserver.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+smtpserver-global
+0.0.0.0:25
+200
+
+file://conf/keystore
+james72laBalle
+
org.bouncycastle.jce.provider.BouncyCastleProvider
+SunX509
+
+360
+0
+0
+false
+0.0.0.0/0
+true
+0
+true
+JAMES Linagora's SMTP awesome Server
+
+
+
+
+
+
+smtpserver-TLS
+0.0.0.0:465
+200
+
+file://conf/keystore
+james72laBalle
+
org.bouncycastle.jce.provider.BouncyCastleProvider
+SunX509
+
+360
+0
+0
+
+true
+0.0.0.0/0
+
+false
+0
+true
+JAMES Linagora's SMTP awesome Server
+
+
+
+
+
+
+smtpserver-authenticated
+0.0.0.0:587
+200
+
+file://conf/keystore
+james72laBalle
+
org.bouncycastle.jce.provider.BouncyCastleProvider
+SunX509
+
+360
+0
+0
+
+true
+0.0.0.0/0
+
+false
+0
+true
+JAMES Linagora's SMTP awesome Server
+
+
+
+
+
+
+
+

Added: james/project/trunk/dockerfiles/destination/conf/sqlResources.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/sqlResources.xml?rev=1710623=auto
==
--- james/project/trunk/dockerfiles/destination/conf/sqlResources.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/sqlResources.xml Mon Oct 
26 15:15:48 2015
@@ -0,0 +1,931 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+${table}
+
+
+SELECT username, pwdHash, pwdAlgorithm, 
useForwarding,
+forwardDestination, useAlias, alias
+FROM ${table}
+ORDER BY username
+
+
+
+
+
+SELECT username, pwdHash, pwdAlgorithm, useForwarding,
+forwardDestination, useAlias, alias
+FROM ${table}
+WHERE lower(username) = ?
+
+
+
+SELECT username, pwdHash, pwdAlgorithm, useForwarding,
+forwardDestination, useAlias, alias
+FROM ${table}
+WHERE username = ?
+
+
+
+INSERT INTO ${table}
+(username, pwdHash, pwdAlgorithm, useForwarding, 
forwardDestination, useAlias, alias)
+VALUES (?,?,?,?,?,?,?)
+
+
+
+UPDATE ${table} SET
+pwdHash = ?, pwdAlgorithm = ?, useForwarding = ?, 
forwardDestination = ?, useAlias = ?, alias = ?
+WHERE username = ?
+
+
+
+DELETE FROM ${table} WHERE username = ?
+
+
+CREATE CACHED TABLE ${table} 
(username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), 
useForwarding INTEGER, forwardDestination VARCHAR(255), useAlias INTEGER, alias 
VARCHAR(255), PRIMARY KEY(username))
+CREATE TABLE ${table} (username VARCHAR(64) 
NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding 
SMALLINT, forwardDestination VARCHAR(255), useAlias SMALLINT, alias 
VARCHAR(255), PRIMARY KEY(username))
+
+
+
+
+${table}
+
+
+SELECT username, pwdHash, pwdAlgorithm
+FROM ${table}
+
+
+
+INSERT INTO ${table}
+(username, pwdHash, pwdAlgorithm)
+VALUES (?,?,?)
+
+
+
+UPDATE ${table} SET
+pwdHash = ?, pwdAlgorithm = ?
+WHERE username = ?
+
+
+
+DELETE FROM ${table} WHERE username = ?
+
+
+CREATE CACHED TABLE ${table} 
(username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), 
PRIMARY KEY(username))
+CREATE TABLE ${table} (username VARCHAR(64) 
NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), PRIMARY 
KEY(username))
+
+
+
+
+ 

svn commit: r1714761 - in /james/project/trunk/protocols/pop3: pom.xml src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java

2015-11-17 Thread matthieu
Author: matthieu
Date: Tue Nov 17 11:40:45 2015
New Revision: 1714761

URL: http://svn.apache.org/viewvc?rev=1714761=rev
Log:
PROTOCOLS-114 migrate AbstractPOP3ServerTest to assertj

Modified:
james/project/trunk/protocols/pop3/pom.xml

james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java

Modified: james/project/trunk/protocols/pop3/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/protocols/pop3/pom.xml?rev=1714761=1714760=1714761=diff
==
--- james/project/trunk/protocols/pop3/pom.xml (original)
+++ james/project/trunk/protocols/pop3/pom.xml Tue Nov 17 11:40:45 2015
@@ -59,6 +59,11 @@
 junit
 test
 
+
+org.assertj
+assertj-core
+1.7.1
+
 
 
 
\ No newline at end of file

Modified: 
james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java?rev=1714761=1714760=1714761=diff
==
--- 
james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
 (original)
+++ 
james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
 Tue Nov 17 11:40:45 2015
@@ -18,11 +18,7 @@
  /
 package org.apache.james.protocols.pop3;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.assertj.core.api.Assertions.*;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -30,6 +26,7 @@ import java.io.Reader;
 import java.net.InetSocketAddress;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.regex.Pattern;
 
 import org.apache.commons.net.pop3.POP3Client;
 import org.apache.commons.net.pop3.POP3MessageInfo;
@@ -74,9 +71,8 @@ public abstract class AbstractPOP3Server
 POP3Client client =  createClient();
 client.connect(address.getAddress().getHostAddress(), 
address.getPort());
 
-assertFalse(client.login("invalid", "invalid"));
-   
-assertTrue(client.logout());
+assertThat(client.login("invalid", "invalid")).isFalse();
+assertThat(client.logout()).isTrue();

 } finally {
 if (server != null) {
@@ -102,13 +98,13 @@ public abstract class AbstractPOP3Server
 POP3Client client =  createClient();
 client.connect(address.getAddress().getHostAddress(), 
address.getPort());
 
-assertTrue(client.login("valid", "valid"));
+assertThat(client.login("valid", "valid")).isTrue();
 POP3MessageInfo[] info = client.listMessages();
-assertEquals(0, info.length);
+assertThat(info.length).isEqualTo(0);
 
 info = client.listUniqueIdentifiers();
-assertEquals(0, info.length);
-assertTrue(client.logout());
+assertThat(info.length).isEqualTo(0);
+assertThat(client.logout()).isTrue();

 } finally {
 if (server != null) {
@@ -134,38 +130,38 @@ public abstract class AbstractPOP3Server
 POP3Client client =  createClient();
 client.connect(address.getAddress().getHostAddress(), 
address.getPort());
 
-assertTrue(client.login("valid", "valid"));
+assertThat(client.login("valid", "valid")).isTrue();
 POP3MessageInfo[] info = client.listMessages();
-assertEquals(2, info.length);
-assertEquals((int) MESSAGE1.meta.getSize(), info[0].size);
-assertEquals((int) MESSAGE2.meta.getSize(), info[1].size);
-assertEquals(1, info[0].number);
-assertEquals(2, info[1].number);
+assertThat(info.length).isEqualTo(2);
+assertThat(info[0].size).isEqualTo((int) MESSAGE1.meta.getSize());
+assertThat(info[1].size).isEqualTo((int) MESSAGE2.meta.getSize());
+assertThat(info[0].number).isEqualTo(1);
+assertThat(info[1].number).isEqualTo(2);
 
 POP3MessageInfo mInfo = client.listMessage(1);
-assertEquals((int) MESSAGE1.meta.getSize(), mInfo.size);
-assertEquals(1, mInfo.number);
+assertThat(mInfo.size).isEqualTo((int) MESSAGE1.meta.

svn commit: r1714762 - /james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java

2015-11-17 Thread matthieu
Author: matthieu
Date: Tue Nov 17 11:40:50 2015
New Revision: 1714762

URL: http://svn.apache.org/viewvc?rev=1714762=rev
Log:
PROTOCOLS-114 fix an assertion that randomly fail on POP3 test suite

generate identifier can be negative and then doesn't match the
expected regex

Modified:

james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java

Modified: 
james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java?rev=1714762=1714761=1714762=diff
==
--- 
james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
 (original)
+++ 
james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
 Tue Nov 17 11:40:50 2015
@@ -471,7 +471,7 @@ public abstract class AbstractPOP3Server
 String welcomeMessage = client.getReplyString();
 
 // check for valid syntax that include all info needed for APOP
-assertThat(welcomeMessage.trim()).matches(Pattern.compile("\\+OK 
\\?\\d+\\.\\d+@.+\\> .+"));
+assertThat(welcomeMessage.trim()).matches(Pattern.compile("\\+OK 
\\<-?\\d+\\.\\d+@.+\\> .+"));
 
 assertThat(client.sendCommand("APOP invalid 
invalid")).isEqualTo(POP3Reply.ERROR);
 



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



svn commit: r1714760 - in /james/project/trunk: protocols/ server/ server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/

2015-11-17 Thread matthieu
Author: matthieu
Date: Tue Nov 17 11:40:37 2015
New Revision: 1714760

URL: http://svn.apache.org/viewvc?rev=1714760=rev
Log:
PROTOCOLS-114 Upgrading netty should fix the lock in SMTP and POP3 testsuite

Modified:
james/project/trunk/protocols/pom.xml
james/project/trunk/server/pom.xml

james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java

james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java

Modified: james/project/trunk/protocols/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/protocols/pom.xml?rev=1714760=1714759=1714760=diff
==
--- james/project/trunk/protocols/pom.xml (original)
+++ james/project/trunk/protocols/pom.xml Tue Nov 17 11:40:37 2015
@@ -47,7 +47,7 @@
 
 1.6
 UTF-8
-3.3.1.Final
+3.10.5.Final
 0.8.0-SNAPSHOT
 0.6-SNAPSHOT
 3.2

Modified: james/project/trunk/server/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/pom.xml?rev=1714760=1714759=1714760=diff
==
--- james/project/trunk/server/pom.xml (original)
+++ james/project/trunk/server/pom.xml Tue Nov 17 11:40:37 2015
@@ -163,7 +163,7 @@
 2.0
 1.2
 3.12
-3.3.1.Final
+3.10.5.Final
 
1.0.1
 1.2.1
 5.0.0

Modified: 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java?rev=1714760=1714759=1714760=diff
==
--- 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
 (original)
+++ 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
 Tue Nov 17 11:40:37 2015
@@ -216,9 +216,9 @@ public class ImapRequestFrameDecoder ext
 }
 }
 
-@SuppressWarnings("unchecked")
 @Override
-protected ChannelBuffer 
createCumulationDynamicBuffer(ChannelHandlerContext ctx) {
+protected synchronized ChannelBuffer 
newCumulationBuffer(ChannelHandlerContext ctx, int minimumCapacity) {
+@SuppressWarnings("unchecked")
 Map<String, Object> attachment = (Map<String, Object>) 
ctx.getAttachment();
 int size = (Integer) attachment.get(NEEDED_DATA);
 
@@ -229,7 +229,7 @@ public class ImapRequestFrameDecoder ext
 if (size > 0) {
 return ChannelBuffers.dynamicBuffer(size, 
ctx.getChannel().getConfig().getBufferFactory());
 }
-return super.createCumulationDynamicBuffer(ctx);
+return super.newCumulationBuffer(ctx, minimumCapacity);
 }
 }
 

Modified: 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java?rev=1714760=1714759=1714760=diff
==
--- 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java
 (original)
+++ 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java
 Tue Nov 17 11:40:37 2015
@@ -56,9 +56,12 @@ public class SwitchableDelimiterBasedFra
}
}
 
+   
+   
@Override
-   protected synchronized ChannelBuffer 
createCumulationDynamicBuffer(final ChannelHandlerContext ctx) {
-   this.cumulation = super.createCumulationDynamicBuffer(ctx);
-   return this.cumulation;
+   protected synchronized ChannelBuffer 
newCumulationBuffer(ChannelHandlerContext ctx, int minimumCapacity) {
+   this.cumulation = super.newCumulationBuffer(ctx, minimumCapacity);
+   return this.cumulation;
}
+   
 }
\ No newline at end of file



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



svn commit: r1714763 - /james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java

2015-11-17 Thread matthieu
Author: matthieu
Date: Tue Nov 17 11:40:55 2015
New Revision: 1714763

URL: http://svn.apache.org/viewvc?rev=1714763=rev
Log:
fixup! PROTOCOLS-114 Upgrading netty should fix the lock in SMTP and POP3 
testsuite

Modified:

james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java

Modified: 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java?rev=1714763=1714762=1714763=diff
==
--- 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java
 (original)
+++ 
james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableDelimiterBasedFrameDecoder.java
 Tue Nov 17 11:40:55 2015
@@ -28,7 +28,6 @@ import org.jboss.netty.handler.codec.fra
 public class SwitchableDelimiterBasedFrameDecoder extends 
DelimiterBasedFrameDecoder {
 
private volatile boolean framingEnabled = true;
-   private volatile ChannelBuffer cumulation;
 
public SwitchableDelimiterBasedFrameDecoder(final int maxFrameLength, 
final boolean stripDelimiter, final ChannelBuffer... delimiters) {
super(maxFrameLength, stripDelimiter, delimiters);
@@ -55,13 +54,5 @@ public class SwitchableDelimiterBasedFra
Channels.fireMessageReceived(ctx, spareBytes);
}
}
-
-   
-   
-   @Override
-   protected synchronized ChannelBuffer 
newCumulationBuffer(ChannelHandlerContext ctx, int minimumCapacity) {
-   this.cumulation = super.newCumulationBuffer(ctx, minimumCapacity);
-   return this.cumulation;
-   }

 }
\ No newline at end of file



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



svn commit: r1714789 - /james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java

2015-11-17 Thread matthieu
Author: matthieu
Date: Tue Nov 17 14:16:39 2015
New Revision: 1714789

URL: http://svn.apache.org/viewvc?rev=1714789=rev
Log:
JAMES-1641 CassandraDomainList must be initialized and used as a singleton

Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java?rev=1714789=1714788=1714789=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
 Tue Nov 17 14:16:39 2015
@@ -21,17 +21,47 @@ package org.apache.james.modules.data;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.cassandra.CassandraDomainList;
+import org.apache.james.modules.protocols.IMAPServerModule;
+import org.apache.james.utils.ConfigurationPerformer;
+import org.apache.james.utils.ConfigurationProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Scope;
+import com.google.inject.Scopes;
+import com.google.inject.Singleton;
 import com.google.inject.multibindings.Multibinder;
 
 public class CassandraDomainListModule extends AbstractModule {
 
+private static final Logger LOGGER = 
LoggerFactory.getLogger(DomainList.class);
+
 @Override
 public void configure() {
+bind(CassandraDomainList.class).in(Scopes.SINGLETON);
 bind(DomainList.class).to(CassandraDomainList.class);
-Multibinder cassandraDataDefinitions = 
Multibinder.newSetBinder(binder(), CassandraModule.class);
-
cassandraDataDefinitions.addBinding().to(org.apache.james.domainlist.cassandra.CassandraDomainListModule.class);
+Multibinder.newSetBinder(binder(), 
CassandraModule.class).addBinding().to(org.apache.james.domainlist.cassandra.CassandraDomainListModule.class);
+Multibinder.newSetBinder(binder(), 
ConfigurationPerformer.class).addBinding().to(CassandraDomainListConfigurationPerformer.class);
 }
+
+@Singleton
+public static class CassandraDomainListConfigurationPerformer implements 
ConfigurationPerformer {
 
+private final ConfigurationProvider configurationProvider;
+private final CassandraDomainList cassandraDomainList;
+
+@Inject
+public CassandraDomainListConfigurationPerformer(ConfigurationProvider 
configurationProvider, CassandraDomainList cassandraDomainList) {
+this.configurationProvider = configurationProvider;
+this.cassandraDomainList = cassandraDomainList;
+}
+
+@Override
+public void initModule() throws Exception {
+cassandraDomainList.setLog(LOGGER);
+
cassandraDomainList.configure(configurationProvider.getConfiguration("domainlist"));
+}
+}
 }



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



svn commit: r1711978 - in /james/project/trunk/server: data/data-api/src/main/java/org/apache/james/rrt/lib/ data/data-file/src/test/java/org/apache/james/rrt/file/ data/data-hbase/src/main/java/org/a

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:44:40 2015
New Revision: 1711978

URL: http://svn.apache.org/viewvc?rev=1711978=rev
Log:
JAMES-1595 create a Builder to handle add and addAll on Mappings

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java

james/project/trunk/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java

james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/mock/MockRecipientRewriteTableManagementImpl.java

james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711978=1711977=1711978=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:44:40 2015
@@ -28,8 +28,6 @@ public interface Mappings extends Iterab
 
 Mappings addAll(Mappings toAdd);
 
-void add(String mapping);
-
 boolean contains(String mapping);
 
 int size();

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java?rev=1711978=1711977=1711978=diff
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
 Mon Nov  2 13:44:40 2015
@@ -28,10 +28,13 @@ import org.apache.james.rrt.lib.Abstract
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
+import org.apache.james.rrt.lib.MappingsImpl.Builder;
 import org.apache.james.rrt.lib.RecipientRewriteTableUtil;
 import org.junit.Before;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Optional;
+
 /**
  * Test the XML Virtual User Table implementation.
  */
@@ -59,31 +62,33 @@ public class XMLRecipientRewriteTableTes
 
 Mappings mappings = virtualUserTable.getUserDomainMappings(user, 
domain);
 
-if (mappings == null) {
-mappings = MappingsImpl.empty();
-} else {
+if (mappings != null) {
 removeMappingsFromConfig(user, domain, mappings);
 }
 
+Builder builder = 
MappingsImpl.from(Optional.fromNullable(mappings).or(MappingsImpl.empty()));
+
 if (type == ERROR_TYPE) {
-mappings.add(RecipientRewriteTable.ERROR_PREFIX + mapping);
+builder.add(RecipientRewriteTable.ERROR_PREFIX + mapping);
 } else if (type == REGEX_TYPE) {
-mappings.add(RecipientRewriteTable.REGEX_PREFIX + mapping);
+builder.add(RecipientRewriteTable.REGEX_PREFIX + mapping);
 } else if (type == ADDRESS_TYPE) {
-mappings.add(mapping);
+builder.add(mapping);
 } else if (type == ALIASDOMAIN_TYPE) {
-mappings.add(RecipientRewriteTable.ALIASDOMAIN_PREFIX + mapping);
+builder.add(RecipientRewriteTable.ALIASDOMAIN_PREFIX + mapping);
 }
 
-if (mappings.size() > 0) {
+Mappings updatedMappings = builder.build();
+
+if (!updatedMappings.isEmpty()) {
 defaultConfiguration.addProperty("mapping", user + "@" + domain + 
"=" + RecipientRewriteTableUtil.
-CollectionToMapping(mappings));
+CollectionToMapping(updatedMappings));
 }
 
 try {
 virtualUserTable.configure(defaul

svn commit: r1711981 - in /james/project/trunk/server/data: data-api/src/main/java/org/apache/james/rrt/lib/ data-hbase/src/main/java/org/apache/james/rrt/hbase/ data-library/src/main/java/org/apache/

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:45:39 2015
New Revision: 1711981

URL: http://svn.apache.org/viewvc?rev=1711981=rev
Log:
JAMES-1595 Mappings internal list is now immutable and not published anymore

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711981=1711980=1711981=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:45:39 2015
@@ -20,12 +20,9 @@
 
 package org.apache.james.rrt.lib;
 
-import java.util.Collection;
 
 public interface Mappings extends Iterable {
 
-Collection getMappings();
-
 boolean contains(String mapping);
 
 int size();

Modified: 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java?rev=1711981=1711980=1711981=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
 Mon Nov  2 13:45:39 2015
@@ -65,7 +65,7 @@ public class HBaseRecipientRewriteTable
 Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
 if (map != null && map.size() != 0) {
 Mappings updatedMappings = 
MappingsImpl.from(map).add(mapping).build();
-doUpdateMapping(fixedUser, fixedDomain, 
RecipientRewriteTableUtil.CollectionToMapping(updatedMappings.getMappings()));
+doUpdateMapping(fixedUser, fixedDomain, 
RecipientRewriteTableUtil.CollectionToMapping(updatedMappings));
 } else {
 doAddMapping(fixedUser, fixedDomain, mapping);
 }

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1711981=1711980=1711981=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 Mon Nov  2 13:45:39 2015
@@ -86,10 +86,10 @@ public class MappingsImpl implements Map
 
 }
 
-private final Collection mappings;
+private final ImmutableList mappings;
 
 private MappingsImpl(Collection mappings) {
-this.mappings = mappings;
+this.mappings = ImmutableList.copyOf(mappings);
 }
 
 @Override
@@ -98,12 +98,6 @@ public class MappingsImpl implements Map
 }
 
 @Override
-public Collection getMappings() {
-return mappings;
-}
-
-
-@Override
 public boolean contains(String mapping) {
 return mappings.contains(mapping);
 }



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



svn commit: r1711979 - in /james/project/trunk/server: data/data-api/src/main/java/org/apache/james/rrt/lib/ data/data-hbase/src/main/java/org/apache/james/rrt/hbase/ data/data-library/src/main/java/o

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:45:00 2015
New Revision: 1711979

URL: http://svn.apache.org/viewvc?rev=1711979=rev
Log:
JAMES-1595 remove addAll method from Mappings, use builder instead

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711979=1711978=1711979=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:45:00 2015
@@ -26,8 +26,6 @@ public interface Mappings extends Iterab
 
 Collection getMappings();
 
-Mappings addAll(Mappings toAdd);
-
 boolean contains(String mapping);
 
 int size();

Modified: 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java?rev=1711979=1711978=1711979=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
 Mon Nov  2 13:45:00 2015
@@ -37,7 +37,6 @@ import org.apache.james.rrt.hbase.def.HR
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
-import org.apache.james.rrt.lib.MappingsImpl.Builder;
 import org.apache.james.rrt.lib.RecipientRewriteTableUtil;
 import org.apache.james.system.hbase.TablePool;
 import org.slf4j.Logger;
@@ -83,7 +82,7 @@ public class HBaseRecipientRewriteTable
 try {
 table = TablePool.getInstance().getRecipientRewriteTable();
 // Optimize this to only make one call.
-feedUserDomainMappingsList(table, user, domain, list);
+return feedUserDomainMappingsList(table, user, domain, list);
 } catch (IOException e) {
 log.error("Error while getting user domain mapping in HBase", e);
 throw new RecipientRewriteTableException("Error while getting user 
domain mapping in HBase", e);
@@ -96,7 +95,6 @@ public class HBaseRecipientRewriteTable
 }
 }
 }
-return list;
 }
 
 private Mappings feedUserDomainMappingsList(HTableInterface table, String 
user, String domain, Mappings list) throws
@@ -106,7 +104,8 @@ public class HBaseRecipientRewriteTable
 List keyValues = 
result.getColumn(HRecipientRewriteTable.COLUMN_FAMILY_NAME,
 
HRecipientRewriteTable.COLUMN.MAPPING);
 if (keyValues.size() > 0) {
-return 
list.addAll(MappingsImpl.fromRawString(Bytes.toString(keyValues.get(0).getValue(;
+return MappingsImpl.from(list)
+
.addAll(MappingsImpl.fromRawString(Bytes.toString(keyValues.get(0).getValue(.build();
 }
 return list;
 }

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1711979=1711978=1711979=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 Mon Nov  2 13:45:00 2015
@@ -103,10 +103,6 @@ public class MappingsImpl implements Map
 return mappings;
 }
 
-@Override
-public Mappings addAll(Mappings toAdd) {
-return 
MappingsImpl.fromCollection(Lists.newArrayList(Iterables.concat(this, 
toAdd.getMappings(;
-}
 
 @Override
 public boolean contains(String mapping) {

Modified: 
james/project/trunk/server/mailet/mailets/src/test/java/org/apache/

svn commit: r1712004 - /james/project/trunk/pom.xml

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:15:22 2015
New Revision: 1712004

URL: http://svn.apache.org/viewvc?rev=1712004=rev
Log:
JAMES-1629 Upgrade maven-dependency-plugin version

   Contributed by Antoine Duprat

Modified:
james/project/trunk/pom.xml

Modified: james/project/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/pom.xml?rev=1712004=1712003=1712004=diff
==
--- james/project/trunk/pom.xml (original)
+++ james/project/trunk/pom.xml Mon Nov  2 14:15:22 2015
@@ -604,7 +604,7 @@
 
 org.apache.maven.plugins
 maven-dependency-plugin
-2.6
+2.8
 
 
 org.apache.maven.plugins



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



svn commit: r1712005 - in /james/project/trunk/server: data/data-cassandra/ data/data-cassandra/pom.xml pom.xml

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:15:28 2015
New Revision: 1712005

URL: http://svn.apache.org/viewvc?rev=1712005=rev
Log:
JAMES-1629 Introduce Cassandra data module

   Contributed by Antoine Duprat

Added:
james/project/trunk/server/data/data-cassandra/
james/project/trunk/server/data/data-cassandra/pom.xml
Modified:
james/project/trunk/server/pom.xml

Added: james/project/trunk/server/data/data-cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/pom.xml?rev=1712005=auto
==
--- james/project/trunk/server/data/data-cassandra/pom.xml (added)
+++ james/project/trunk/server/data/data-cassandra/pom.xml Mon Nov  2 14:15:28 
2015
@@ -0,0 +1,303 @@
+
+
+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/maven-v4_0_0.xsd;>
+4.0.0
+
+
+james-server
+org.apache.james
+3.0.0-beta5-SNAPSHOT
+../../pom.xml
+
+
+org.apache.james
+james-server-data-cassandra
+Apache James :: Server :: Data :: Cassandra Persistence
+
+
+
+
+org.apache.felix
+maven-bundle-plugin
+true
+
+
+
+
+
+
+junit
+junit
+
+
+org.assertj
+assertj-core
+test
+
+
+
+
+
+noTest
+
+
+windows
+
+
+
+
+
+org.apache.maven.plugins
+maven-surefire-plugin
+
+true
+
+
+
+
+
+
+disable-build-for-older-jdk
+
+(,1.8)
+
+
+
+
+maven-jar-plugin
+
+
+default-jar
+none
+
+
+jar
+none
+
+
+test-jar
+none
+
+
+
+
+maven-compiler-plugin
+
+
+default-compile
+none
+
+
+default-testCompile
+none
+
+
+
+
+maven-surefire-plugin
+
+
+default-test
+none
+
+
+
+
+maven-source-plugin
+
+
+attach-sources
+none
+
+
+
+
+maven-install-plugin
+
+
+default-install
+none
+
+
+
+
+maven-resources-plugin
+
+
+default-resources
+none
+
+
+default-testResources
+none
+
+
+
+
+maven-site-plugin
+
+
+attach-descriptor
+none
+
+
+
+
+
+
+
+build-for-jdk-8
+
+[1.8,)
+
+
+
+${project.groupId}
+apache-james-backe

svn commit: r1712006 - in /james/project/trunk/server/data/data-cassandra/src: ./ main/ main/java/ main/java/org/ main/java/org/apache/ main/java/org/apache/james/ main/java/org/apache/james/rrt/ main

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:15:39 2015
New Revision: 1712006

URL: http://svn.apache.org/viewvc?rev=1712006=rev
Log:
JAMES-1629 Introduce Cassandra RRT

   Contributed by Antoine Duprat

Added:
james/project/trunk/server/data/data-cassandra/src/
james/project/trunk/server/data/data-cassandra/src/main/
james/project/trunk/server/data/data-cassandra/src/main/java/
james/project/trunk/server/data/data-cassandra/src/main/java/org/
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
james/project/trunk/server/data/data-cassandra/src/test/
james/project/trunk/server/data/data-cassandra/src/test/java/
james/project/trunk/server/data/data-cassandra/src/test/java/org/
james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java

Added: 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java?rev=1712006=auto
==
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java
 (added)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java
 Mon Nov  2 14:15:39 2015
@@ -0,0 +1,56 @@
+/
+ * 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.rrt.cassandra;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.james.backends.cassandra.components.CassandraIndex;
+import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.backends.cassandra.components.CassandraTable;
+import org.apache.james.backends.cassandra.components.CassandraType;
+
+public class CassandraRRTModule implements CassandraModule {
+
+private final List tables;
+private final List index;
+private final List types;
+
+public CassandraRRTModule() {
+tables = Arrays.asList();
+index = Arrays.asList();
+types = Arrays.asList();
+}
+
+@Override
+public List moduleTables() {
+return tables;
+}
+
+@Override
+public List moduleIndex() {
+return index;
+}
+
+@Override
+public List moduleTypes() {
+return types;
+}
+}

Added: 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/main/java/

svn commit: r1712020 - in /james/project/trunk/server/data/data-cassandra/src: main/java/org/apache/james/user/ main/java/org/apache/james/user/cassandra/ main/java/org/apache/james/user/cassandra/tab

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:45:36 2015
New Revision: 1712020

URL: http://svn.apache.org/viewvc?rev=1712020=rev
Log:
JAMES-1586 implement a cassandra user repository

   Contributed by Antoine Duprat

Added:

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepositoryModule.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/tables/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/tables/CassandraUserTable.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java

Added: 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java?rev=1712020=auto
==
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
 (added)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
 Mon Nov  2 14:45:36 2015
@@ -0,0 +1,162 @@
+/
+ * 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.user.cassandra;
+
+import static com.datastax.driver.core.querybuilder.QueryBuilder.delete;
+import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
+import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto;
+import static com.datastax.driver.core.querybuilder.QueryBuilder.select;
+import static com.datastax.driver.core.querybuilder.QueryBuilder.set;
+import static com.datastax.driver.core.querybuilder.QueryBuilder.update;
+import static 
org.apache.james.user.cassandra.tables.CassandraUserTable.ALGORITHM;
+import static org.apache.james.user.cassandra.tables.CassandraUserTable.NAME;
+import static 
org.apache.james.user.cassandra.tables.CassandraUserTable.PASSWORD;
+import static 
org.apache.james.user.cassandra.tables.CassandraUserTable.REALNAME;
+import static 
org.apache.james.user.cassandra.tables.CassandraUserTable.TABLE_NAME;
+
+import java.util.Iterator;
+import java.util.Optional;
+
+import javax.annotation.Resource;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.james.backends.cassandra.utils.CassandraConstants;
+import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.james.user.api.model.User;
+import org.apache.james.user.lib.AbstractUsersRepository;
+import org.apache.james.user.lib.model.DefaultUser;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Session;
+import com.google.common.base.Preconditions;
+import com.google.common.primitives.Ints;
+
+public class CassandraUsersRepository extends AbstractUsersRepository {
+
+private static final String DEFAULT_ALGO_VALUE = "SHA1";
+
+private Session session;
+
+@Inject
+@Resource
+public void setSession(@Named("

svn commit: r1712019 - in /james/project/trunk: backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/ backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:45:26 2015
New Revision: 1712019

URL: http://svn.apache.org/viewvc?rev=1712019=rev
Log:
JAMES-1586 Cassandra may be initialized with different modules when testing

   Contributed by Antoine Duprat

Added:

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
  - copied, changed from r1712017, 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterSingleton.java
Removed:

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterSingleton.java
Modified:

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactoryTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java

james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java

james/project/trunk/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java

Copied: 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
 (from r1712017, 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterSingleton.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java?p2=james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java=james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterSingleton.java=1712017=1712019=1712019=diff
==
--- 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterSingleton.java
 (original)
+++ 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
 Mon Nov  2 14:45:26 2015
@@ -18,10 +18,8 @@
  /
 package org.apache.james.backends.cassandra;
 
-import com.datastax.driver.core.exceptions.NoHostAvailableException;
-import com.datastax.driver.core.Cluster;
-import com.datastax.driver.core.Session;
-import com.google.common.base.Throwables;
+import java.util.Optional;
+
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.backends.cassandra.init.CassandraTableManager;
 import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
@@ -30,12 +28,13 @@ import org.apache.james.backends.cassand
 import 
org.apache.james.backends.cassandra.init.SessionWithInitializedTablesFactory;
 import org.apache.james.backends.cassandra.utils.FunctionRunnerWithRetry;
 import org.cassandraunit.utils.EmbeddedCassandraServerHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import java.util.Optional;
+import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.Session;
+import com.datastax.driver.core.exceptions.NoHostAvailableException;
+import com.google.common.base.Throwables;
 
-public final class CassandraClusterSingleton {
+public final class CassandraCluster {
 private static final String CLUSTER_IP = "localhost";
 private static final int CLUSTER_PORT_TEST = 9142;
 private static final String KEYSPACE_NAME = "apache_james";
@@ -44,26 +43,20 @@ public final class CassandraClusterSingl

svn commit: r1712021 - in /james/project/trunk: backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml dockerfiles/destination/conf/usersrepository.xml

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:45:42 2015
New Revision: 1712021

URL: http://svn.apache.org/viewvc?rev=1712021=rev
Log:
JAMES-1586 Bind Cassandra UsersRepository module in spring configuration

   Contributed by Antoine Duprat

Modified:

james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
james/project/trunk/dockerfiles/destination/conf/usersrepository.xml

Modified: 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml?rev=1712021=1712020=1712021=diff
==
--- 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 (original)
+++ 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 Mon Nov  2 14:45:42 2015
@@ -47,6 +47,10 @@
   class="org.apache.james.rrt.cassandra.CassandraRRTModule"
   lazy-init="true"/>
 
+
+
 
@@ -54,6 +58,7 @@
 
 
 
+
 
 
 

Modified: james/project/trunk/dockerfiles/destination/conf/usersrepository.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/usersrepository.xml?rev=1712021=1712020=1712021=diff
==
--- james/project/trunk/dockerfiles/destination/conf/usersrepository.xml 
(original)
+++ james/project/trunk/dockerfiles/destination/conf/usersrepository.xml Mon 
Nov  2 14:45:42 2015
@@ -18,7 +18,7 @@
   under the License.   
  -->
 
-
+
 MD5
 true
 



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



svn commit: r1712032 - in /james/project/trunk: backends-common/cassandra/src/main/resources/META-INF/ dockerfiles/destination/conf/ server/data/data-cassandra/src/main/java/org/apache/james/ server/d

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:54:45 2015
New Revision: 1712032

URL: http://svn.apache.org/viewvc?rev=1712032=rev
Log:
JAMES-1587 Bind Cassandra DomainList module in spring configuration

   Contributed by Raphael Ouazana

Added:

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java
  - copied, changed from r1712031, 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java
Removed:

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java
Modified:

james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
james/project/trunk/dockerfiles/destination/conf/domainlist.xml

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java

Modified: 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml?rev=1712032=1712031=1712032=diff
==
--- 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 (original)
+++ 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 Mon Nov  2 14:54:45 2015
@@ -51,6 +51,10 @@
   
class="org.apache.james.user.cassandra.CassandraUsersRepositoryModule"
   lazy-init="true"/>
 
+
+
 
@@ -59,6 +63,7 @@
 
 
 
+
 
 
 

Modified: james/project/trunk/dockerfiles/destination/conf/domainlist.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/domainlist.xml?rev=1712032=1712031=1712032=diff
==
--- james/project/trunk/dockerfiles/destination/conf/domainlist.xml (original)
+++ james/project/trunk/dockerfiles/destination/conf/domainlist.xml Mon Nov  2 
14:54:45 2015
@@ -18,7 +18,7 @@
   under the License.   
  -->
 
-
+
 
 james.linagora.com
 

Copied: 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java
 (from r1712031, 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java?p2=james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java=james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java=1712031=1712032=1712032=diff
==
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java
 (original)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java
 Mon Nov  2 14:54:45 2015
@@ -17,7 +17,7 @@
  * under the License.   *
  /
 
-package org.apache.james;
+package org.apache.james.domainlist.cassandra;
 
 import static com.datastax.driver.core.DataType.text;
 
@@ -32,12 +32,12 @@ import org.apache.james.tables.Cassandra
 import com.datastax.driver.core.schemabuilder.SchemaBuilder;
 import com.google.common.collect.ImmutableList;
 
-public class CassandraDataModule implements CassandraModule {
+public class CassandraDomainListModule implements CassandraModule {
 private final List tables;
 private final List index;
 private final List types;
 
-public CassandraDataModule() {
+public CassandraDomainListModule() {
 tables = ImmutableList.of(
 new CassandraTable(CassandraDomainsTable.TABLE_NAME,
 
SchemaBuilder.createTable(CassandraDomainsTable.TABLE_NAME)

Modified: 
james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java?rev=1712032=1712031=1712032=diff
==
--- 
james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
 (or

svn commit: r1711975 - in /james/project/trunk/server: container/cli/src/main/java/org/apache/james/cli/ data/data-api/src/main/java/org/apache/james/rrt/lib/ data/data-library/src/main/java/org/apach

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:43:44 2015
New Revision: 1711975

URL: http://svn.apache.org/viewvc?rev=1711975=rev
Log:
JAMES-1595 Remove toArray needs on Mappings object

Modified:

james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

Modified: 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java?rev=1711975=1711974=1711975=diff
==
--- 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 (original)
+++ 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 Mon Nov  2 13:43:44 2015
@@ -20,6 +20,7 @@ package org.apache.james.cli;
 
 import java.io.IOException;
 import java.io.PrintStream;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -189,7 +190,7 @@ public class ServerCmd {
 break;
 case LISTUSERDOMAINMAPPINGS:
 Mappings userDomainMappings = 
probe.listUserDomainMappings(arguments[1], arguments[2]);
-print(userDomainMappings.toArray(new String[0]), System.out);
+print(userDomainMappings, System.out);
 break;
 case ADDADDRESSMAPPING:
 probe.addAddressMapping(arguments[1], arguments[2], arguments[3]);
@@ -264,6 +265,10 @@ public class ServerCmd {
 }
 
 private static void print(String[] data, PrintStream out) {
+print(Arrays.asList(data), out);
+}
+
+private static void print(Iterable data, PrintStream out) {
 if (data != null) {
 for (String u : data) {
 out.println(u);

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711975=1711974=1711975=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:43:44 2015
@@ -41,6 +41,4 @@ public interface Mappings extends Iterab
 
 boolean isEmpty();
 
-String[] toArray(String[] strings);
-
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1711975=1711974=1711975=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 Mon Nov  2 13:43:44 2015
@@ -100,9 +100,4 @@ public class MappingsImpl implements Map
 return mappings.isEmpty();
 }
 
-@Override
-public String[] toArray(String[] strings) {
-return mappings.toArray(strings);
-}
-
 }
\ No newline at end of file



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



svn commit: r1711976 - in /james/project/trunk/server: data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewri

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:43:58 2015
New Revision: 1711976

URL: http://svn.apache.org/viewvc?rev=1711976=rev
Log:
JAMES-1595 Remove addAll(List) needs on Mappings object

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711976=1711975=1711976=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:43:58 2015
@@ -21,7 +21,6 @@
 package org.apache.james.rrt.lib;
 
 import java.util.Collection;
-import java.util.List;
 
 public interface Mappings extends Iterable {
 
@@ -37,8 +36,6 @@ public interface Mappings extends Iterab
 
 boolean remove(String mapping);
 
-void addAll(List target);
-
 boolean isEmpty();
 
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java?rev=1711976=1711975=1711976=diff
==
--- 
james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java
 (original)
+++ 
james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java
 Mon Nov  2 13:43:58 2015
@@ -31,9 +31,9 @@ public class RecipientRewriteTableMock i
 
 public static class Mapping {
 public final String address;
-public final List target;
+public final Mappings target;
 
-public Mapping(String address, List target) {
+public Mapping(String address, Mappings target) {
 this.address = address;
 this.target = target;
 }
@@ -44,7 +44,7 @@ public class RecipientRewriteTableMock i
 }
 
 public Mapping to(String... target) {
-return new Mapping(address, Arrays.asList(target));
+return new Mapping(address, 
MappingsImpl.fromCollection(Arrays.asList(target)));
 }
 }
 



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



svn commit: r1711977 - in /james/project/trunk/server: data/data-api/src/main/java/org/apache/james/rrt/lib/ data/data-hbase/src/main/java/org/apache/james/rrt/hbase/ data/data-library/src/main/java/o

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:44:15 2015
New Revision: 1711977

URL: http://svn.apache.org/viewvc?rev=1711977=rev
Log:
JAMES-1595 addAll(Mappings) now create a new Mappings object in the quest to 
immutable Mappings

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711977=1711976=1711977=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:44:15 2015
@@ -26,7 +26,7 @@ public interface Mappings extends Iterab
 
 Collection getMappings();
 
-void addAll(Mappings toAdd);
+Mappings addAll(Mappings toAdd);
 
 void add(String mapping);
 

Modified: 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java?rev=1711977=1711976=1711977=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
 Mon Nov  2 13:44:15 2015
@@ -96,15 +96,16 @@ public class HBaseRecipientRewriteTable
 return list;
 }
 
-private void feedUserDomainMappingsList(HTableInterface table, String 
user, String domain, Mappings list) throws
+private Mappings feedUserDomainMappingsList(HTableInterface table, String 
user, String domain, Mappings list) throws
 IOException {
 Get get = new Get(Bytes.toBytes(getRowKey(user, domain)));
 Result result = table.get(get);
 List keyValues = 
result.getColumn(HRecipientRewriteTable.COLUMN_FAMILY_NAME,
 
HRecipientRewriteTable.COLUMN.MAPPING);
 if (keyValues.size() > 0) {
-
list.addAll(MappingsImpl.fromRawString(Bytes.toString(keyValues.get(0).getValue(;
+return 
list.addAll(MappingsImpl.fromRawString(Bytes.toString(keyValues.get(0).getValue(;
 }
+return list;
 }
 
 /**

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java?rev=1711977=1711976=1711977=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
 Mon Nov  2 13:44:15 2015
@@ -180,7 +180,7 @@ public abstract class AbstractRecipientR
 // add mapping
 mappings.add(target);
 } else {
-mappings.addAll(childMappings);
+mappings = mappings.addAll(childMappings);
 }
 
 } else {

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1711977=1711976=1711977=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 Mon Nov  2 13:44:15 2015
@@ -26,6 +26,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.StringTokeni

svn commit: r1712029 - /james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:54:18 2015
New Revision: 1712029

URL: http://svn.apache.org/viewvc?rev=1712029=rev
Log:
JAMES-1587 contains and remove domains operations should not be case sensitive 
in HBase implementation

   Contributed by Benoit Tellier

Modified:

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java

Modified: 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java?rev=1712029=1712028=1712029=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
 Mon Nov  2 14:54:18 2015
@@ -55,7 +55,7 @@ public class HBaseDomainList extends Abs
 HTableInterface table = null;
 try {
 table = TablePool.getInstance().getDomainlistTable();
-Get get = new Get(Bytes.toBytes(domain));
+Get get = new Get(Bytes.toBytes(domain.toLowerCase()));
 Result result = table.get(get);
 if (!result.isEmpty()) {
 return true;
@@ -110,7 +110,7 @@ public class HBaseDomainList extends Abs
 HTableInterface table = null;
 try {
 table = TablePool.getInstance().getDomainlistTable();
-Delete delete = new Delete(Bytes.toBytes(domain));
+Delete delete = new Delete(Bytes.toBytes(domain.toLowerCase()));
 table.delete(delete);
 table.flushCommits();
 } catch (IOException e) {



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



svn commit: r1712031 - in /james/project/trunk/server/data/data-cassandra/src: main/java/org/apache/james/ main/java/org/apache/james/domainlist/ main/java/org/apache/james/domainlist/cassandra/ main/

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:54:34 2015
New Revision: 1712031

URL: http://svn.apache.org/viewvc?rev=1712031=rev
Log:
JAMES-1587 Add Cassandra based Domain List

   Contributed by Benoit Tellier and Raphael Ouazana

Added:

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/tables/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/tables/CassandraDomainsTable.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java

Added: 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java?rev=1712031=auto
==
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java
 (added)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/CassandraDataModule.java
 Mon Nov  2 14:54:34 2015
@@ -0,0 +1,64 @@
+/
+ * 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;
+
+import static com.datastax.driver.core.DataType.text;
+
+import java.util.List;
+
+import org.apache.james.backends.cassandra.components.CassandraIndex;
+import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.backends.cassandra.components.CassandraTable;
+import org.apache.james.backends.cassandra.components.CassandraType;
+import org.apache.james.tables.CassandraDomainsTable;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+import com.google.common.collect.ImmutableList;
+
+public class CassandraDataModule implements CassandraModule {
+private final List tables;
+private final List index;
+private final List types;
+
+public CassandraDataModule() {
+tables = ImmutableList.of(
+new CassandraTable(CassandraDomainsTable.TABLE_NAME,
+
SchemaBuilder.createTable(CassandraDomainsTable.TABLE_NAME)
+.ifNotExists()
+.addPartitionKey(CassandraDomainsTable.DOMAIN, 
text(;
+index = ImmutableList.of();
+types = ImmutableList.of();
+}
+
+@Override
+public List moduleTables() {
+return tables;
+}
+
+@Override
+public List moduleIndex() {
+return index;
+}
+
+@Override
+public List moduleTypes() {
+return types;
+}
+}

Added: 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java?rev=1712031=auto
==
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java
 (added)
+++ 

svn commit: r1712028 - /james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:54:12 2015
New Revision: 1712028

URL: http://svn.apache.org/viewvc?rev=1712028=rev
Log:
JAMES-1591 and JAMES-1592 Correcting JPA Domain lists

   Contributed by Benoit Tellier

Modified:

james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java

Modified: 
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java?rev=1712028=1712027=1712028=diff
==
--- 
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
 (original)
+++ 
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
 Mon Nov  2 14:54:12 2015
@@ -71,9 +71,7 @@ public class JPADomainList extends Abstr
 transaction.commit();
 } catch (PersistenceException e) {
 getLogger().error("Failed to list domains", e);
-if (transaction.isActive()) {
-transaction.rollback();
-}
+rollback(transaction);
 throw new DomainListException("Unable to retrieve domains", e);
 } finally {
 entityManager.close();
@@ -87,22 +85,17 @@ public class JPADomainList extends Abstr
 
 @Override
 public boolean containsDomain(String domain) throws DomainListException {
+String lowerCasedDomain = domain.toLowerCase();
 EntityManager entityManager = 
entityManagerFactory.createEntityManager();
 final EntityTransaction transaction = entityManager.getTransaction();
 try {
 transaction.begin();
-JPADomain jpaDomain = (JPADomain) 
entityManager.createNamedQuery("findDomainByName").setParameter("name", 
domain).getSingleResult();
+boolean result = containsDomainInternal(lowerCasedDomain, 
entityManager);
 transaction.commit();
-return (jpaDomain != null);
-} catch (NoResultException e) {
-getLogger().debug("No domain found", e);
-transaction.commit();
-return false;
+return result;
 } catch (PersistenceException e) {
 getLogger().error("Failed to find domain", e);
-if (transaction.isActive()) {
-transaction.rollback();
-}
+rollback(transaction);
 throw new DomainListException("Unable to retrieve domains", e);
 } finally {
 entityManager.close();
@@ -112,21 +105,20 @@ public class JPADomainList extends Abstr
 @Override
 public void addDomain(String domain) throws DomainListException {
 String lowerCasedDomain = domain.toLowerCase();
-if (containsDomain(lowerCasedDomain)) {
-throw new DomainListException(lowerCasedDomain + " already 
exists.");
-}
 EntityManager entityManager = 
entityManagerFactory.createEntityManager();
 final EntityTransaction transaction = entityManager.getTransaction();
 try {
 transaction.begin();
+if (containsDomainInternal(lowerCasedDomain, entityManager)) {
+transaction.commit();
+throw new DomainListException(lowerCasedDomain + " already 
exists.");
+}
 JPADomain jpaDomain = new JPADomain(lowerCasedDomain);
 entityManager.persist(jpaDomain);
 transaction.commit();
 } catch (PersistenceException e) {
 getLogger().error("Failed to save domain", e);
-if (transaction.isActive()) {
-transaction.rollback();
-}
+rollback(transaction);
 throw new DomainListException("Unable to add domain " + domain, e);
 } finally {
 entityManager.close();
@@ -135,24 +127,43 @@ public class JPADomainList extends Abstr
 
 @Override
 public void removeDomain(String domain) throws DomainListException {
+String lowerCasedDomain = domain.toLowerCase();
 EntityManager entityManager = 
entityManagerFactory.createEntityManager();
 final EntityTransaction transaction = entityManager.getTransaction();
 try {
 transaction.begin();
-
entityManager.createNamedQuery("deleteDomainByName").setParameter("name", 
domain).executeUpdate();
+if (!containsDomainInternal(lowerCasedDomain, entityManager)) {
+transaction.commit();
+throw new DomainListException(domain + " was not found.");
+}
+
entityManager.createNamedQuery("deleteDo

svn commit: r1712027 - in /james/project/trunk/server/data: data-hbase/ data-hbase/src/test/java/org/apache/james/domainlist/hbase/ data-jpa/ data-library/src/test/java/org/apache/james/domainlist/lib

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:54:04 2015
New Revision: 1712027

URL: http://svn.apache.org/viewvc?rev=1712027=rev
Log:
JAMES-1587 Improve domain list tests

   Contributed by Benoit Tellier and Raphael Ouazana

Modified:
james/project/trunk/server/data/data-hbase/pom.xml

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
james/project/trunk/server/data/data-jpa/pom.xml

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java

Modified: james/project/trunk/server/data/data-hbase/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/pom.xml?rev=1712027=1712026=1712027=diff
==
--- james/project/trunk/server/data/data-hbase/pom.xml (original)
+++ james/project/trunk/server/data/data-hbase/pom.xml Mon Nov  2 14:54:04 2015
@@ -168,6 +168,10 @@
 test
 
 
+org.assertj
+assertj-core
+
+
 org.slf4j
 slf4j-simple
 test

Modified: 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java?rev=1712027=1712026=1712027=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
 Mon Nov  2 14:54:04 2015
@@ -20,11 +20,13 @@ package org.apache.james.domainlist.hbas
 
 import java.io.IOException;
 import org.apache.james.domainlist.api.DomainList;
+import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.domainlist.lib.AbstractDomainListTest;
 import org.apache.james.mailbox.hbase.HBaseClusterSingleton;
 import org.apache.james.system.hbase.TablePool;
-import org.junit.Before;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
 import org.slf4j.LoggerFactory;
 
 /**
@@ -54,4 +56,11 @@ public class HBaseDomainListTest extends
 domainList.setAutoDetectIP(false);
 return domainList;
 }
+
+@Ignore
+@Test
+@Override
+public void removeDomainShouldThrowIfTheDomainIsAbsent() throws 
DomainListException {
+
+}
 }

Modified: james/project/trunk/server/data/data-jpa/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/pom.xml?rev=1712027=1712026=1712027=diff
==
--- james/project/trunk/server/data/data-jpa/pom.xml (original)
+++ james/project/trunk/server/data/data-jpa/pom.xml Mon Nov  2 14:54:04 2015
@@ -124,6 +124,10 @@
 test-jar
 
 
+org.assertj
+assertj-core
+
+
 commons-dbcp
 commons-dbcp
 test

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java?rev=1712027=1712026=1712027=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java
 Mon Nov  2 14:54:04 2015
@@ -18,125 +18,161 @@
  /
 package org.apache.james.domainlist.lib;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.fail;
+
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.mock.MockDNSService;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.*;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-/**
- * Test the implementation of the DomainList.
- */
 public abstract class AbstractDomainListTest {
 
-// Domains we will play with.
 private final String DOMAIN_1 = "domain1.tld";
 private final String DOMAIN_2 = "domain2.tld";
 private final String DOMAIN_3 = "domain3.tld";
 private final 

svn commit: r1712030 - /james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:54:25 2015
New Revision: 1712030

URL: http://svn.apache.org/viewvc?rev=1712030=rev
Log:
JAMES-1587 XML contains domain list operation should not be case sensitive

Contributed by Benoit Tellier

Modified:

james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java

Modified: 
james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java?rev=1712030=1712029=1712030=diff
==
--- 
james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
 Mon Nov  2 14:54:25 2015
@@ -36,20 +36,16 @@ public class XMLDomainList extends Abstr
 
 private final List domainNames = new ArrayList();
 
-private boolean managementDisabled = false;
-
 @Override
 public void configure(HierarchicalConfiguration config) throws 
ConfigurationException {
 super.configure(config);
 for (String serverNameConf : 
config.getStringArray("domainnames.domainname")) {
 try {
-addDomain(serverNameConf);
+addToServedDomains(serverNameConf);
 } catch (DomainListException e) {
 throw new ConfigurationException("Unable to add domain to 
memory", e);
 }
 }
-
-managementDisabled = true;
 }
 
 @Override
@@ -59,29 +55,23 @@ public class XMLDomainList extends Abstr
 
 @Override
 public boolean containsDomain(String domains) throws DomainListException {
-return domainNames.contains(domains);
+return domainNames.contains(domains.toLowerCase(Locale.US));
 }
 
 @Override
 public void addDomain(String domain) throws DomainListException {
-// TODO: Remove later. Temporary fix to get sure no domains can be 
added
-// to the XMLDomainList
-if (managementDisabled)
-throw new DomainListException("Read-Only DomainList 
implementation");
-
-String newDomain = domain.toLowerCase(Locale.US);
-if (!containsDomain(newDomain)) {
-domainNames.add(newDomain);
-}
+throw new DomainListException("Read-Only DomainList implementation");
 }
 
 @Override
 public void removeDomain(String domain) throws DomainListException {
-// TODO: Remove later. Temporary fix to get sure no domains can be 
added
-// to the XMLDomainList
-if (managementDisabled)
-throw new DomainListException("Read-Only DomainList 
implementation");
+throw new DomainListException("Read-Only DomainList implementation");
+}
 
-domainNames.remove(domain.toLowerCase(Locale.US));
+private void addToServedDomains(String domain) throws DomainListException {
+String newDomain = domain.toLowerCase(Locale.US);
+if (!containsDomain(newDomain)) {
+domainNames.add(newDomain);
+}
 }
 }



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



svn commit: r1711985 - in /james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib: AbstractRecipientRewriteTableTest.java MappingsImplTest.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:46:44 2015
New Revision: 1711985

URL: http://svn.apache.org/viewvc?rev=1711985=rev
Log:
JAMES-1595 Update tests to assert on Mapping objects instead of strings

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java?rev=1711985=1711984=1711985=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 Mon Nov  2 13:46:44 2015
@@ -247,8 +247,8 @@ public abstract class AbstractRecipientR
 
 assertTrue("Add mapping", addMapping(user1, domain1, user2 + "@" + 
domain2, ADDRESS_TYPE));
 assertTrue("Add mapping", addMapping(user2, domain2, user3 + "@" + 
domain3, ADDRESS_TYPE));
-assertEquals("Recursive mapped", 
virtualUserTable.getMappings(user1, domain1).asStrings().iterator().next(),
-user3 + "@" + domain3);
+assertEquals("Recursive mapped", 
virtualUserTable.getMappings(user1, domain1).iterator().next(),
+MappingImpl.of(user3 + "@" + domain3));
 
 assertTrue("Add mapping", addMapping(user3, domain3, user1 + "@" + 
domain1, ADDRESS_TYPE));
 try {
@@ -260,8 +260,8 @@ public abstract class AbstractRecipientR
 
 // disable recursive mapping
 virtualUserTable.setRecursiveMapping(false);
-assertEquals("Not recursive mapped", 
virtualUserTable.getMappings(user1, domain1).asStrings().iterator().next(),
-user2 + "@" + domain2);
+assertEquals("Not recursive mapped", 
virtualUserTable.getMappings(user1, domain1).iterator().next(),
+MappingImpl.of(user2 + "@" + domain2));
 
 } catch (IllegalArgumentException e) {
 fail("Storing failed");

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java?rev=1711985=1711984=1711985=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
 Mon Nov  2 13:46:44 2015
@@ -41,82 +41,82 @@ public class MappingsImplTest {
 @Test
 public void 
fromRawStringShouldReturnSingletonCollectionWhenSingleElementString() {
 MappingsImpl actual = MappingsImpl.fromRawString("value");
-assertThat(actual.asStrings()).containsExactly("value");
+assertThat(actual).containsExactly(MappingImpl.of("value"));
 }
 
 @Test
 public void fromRawStringShouldReturnCollectionWhenSeveralElementsString() 
{
 MappingsImpl actual = MappingsImpl.fromRawString("value1;value2");
-assertThat(actual.asStrings()).containsExactly("value1", "value2");
+assertThat(actual).containsExactly(MappingImpl.of("value1"), 
MappingImpl.of("value2"));
 }
 
 @Test
 public void 
fromRawStringShouldReturnSingleElementCollectionWhenTrailingDelimiterString() {
 MappingsImpl actual = MappingsImpl.fromRawString("value1;");
-assertThat(actual.asStrings()).containsExactly("value1");
+assertThat(actual).containsExactly(MappingImpl.of("value1"));
 }
 
 @Test
 public void 
fromRawStringShouldReturnSingleElementCollectionWhenHeadingDelimiterString() {
 MappingsImpl actual = MappingsImpl.fromRawString(";value1");
-assertThat(actual.asStrings()).containsExactly("value1");
+assertThat(actual).containsExactly(MappingImpl.of("value1"));
 }
 
 
 @Test
 public void fromRawStringShouldTrimValues() {
 MappingsImpl actual = MappingsImpl.fromRawString("value1 ; value2  ");
-assertThat(actual.asStrings()).containsExactl

svn commit: r1711965 - in /james/project/trunk/server: ./ data/data-file/ data/data-file/src/test/java/org/apache/james/rrt/file/ data/data-hbase/ data/data-hbase/src/test/java/org/apache/james/rrt/hb

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:37:02 2015
New Revision: 1711965

URL: http://svn.apache.org/viewvc?rev=1711965=rev
Log:
JAMES-1594 First test on empty mapping

Modified:
james/project/trunk/server/data/data-file/pom.xml

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
james/project/trunk/server/data/data-hbase/pom.xml

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
james/project/trunk/server/data/data-jdbc/pom.xml

james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java
james/project/trunk/server/data/data-jpa/pom.xml

james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
james/project/trunk/server/data/data-library/pom.xml

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
james/project/trunk/server/pom.xml

Modified: james/project/trunk/server/data/data-file/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/pom.xml?rev=1711965=1711964=1711965=diff
==
--- james/project/trunk/server/data/data-file/pom.xml (original)
+++ james/project/trunk/server/data/data-file/pom.xml Mon Nov  2 13:37:02 2015
@@ -96,11 +96,21 @@
 test
 
 
+info.cukes
+cucumber-picocontainer
+test
+
+
 junit
 junit
 test
 
 
+org.assertj
+assertj-core
+test
+
+
 org.apache.james
 james-server-data-library
 test-jar

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java?rev=1711965=1711964=1711965=diff
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
 Mon Nov  2 13:37:02 2015
@@ -18,13 +18,28 @@
  /
 package org.apache.james.rrt.file;
 
-import cucumber.api.java.en.Given;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.RewriteTablesStepdefs;
+import org.slf4j.LoggerFactory;
 
-public class XMLStepdefs{
+import cucumber.api.java.Before;
 
-@Given("perform backend setup")
-public void given() throws Throwable {
-System.out.println("XML");
+public class XMLStepdefs {
+
+private RewriteTablesStepdefs mainStepdefs;
+
+public XMLStepdefs(RewriteTablesStepdefs mainStepdefs) {
+this.mainStepdefs = mainStepdefs;
 }
 
+@Before
+public void setup() throws Throwable {
+mainStepdefs.rewriteTable = getRecipientRewriteTable(); 
+}
+
+private AbstractRecipientRewriteTable getRecipientRewriteTable() throws 
Exception {
+XMLRecipientRewriteTable localVirtualUserTable = new 
XMLRecipientRewriteTable();
+localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
+return localVirtualUserTable;
+}
 }

Modified: james/project/trunk/server/data/data-hbase/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/pom.xml?rev=1711965=1711964=1711965=diff
==
--- james/project/trunk/server/data/data-hbase/pom.xml (original)
+++ james/project/trunk/server/data/data-hbase/pom.xml Mon Nov  2 13:37:02 2015
@@ -114,11 +114,21 @@
 test
 
 
+info.cukes
+cucumber-picocontainer
+test
+
+
 junit
 junit
 test
 
 
+org.assertj
+assertj-core
+test
+
+
 org.apache.james
 james-server-data-library
 test-jar

Modified: 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java?rev=1711965=1711964=1711965=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java

svn commit: r1711982 - in /james/project/trunk/server: container/cli/src/main/java/org/apache/james/cli/ data/data-api/src/main/java/org/apache/james/rrt/lib/ data/data-file/src/test/java/org/apache/j

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:46:06 2015
New Revision: 1711982

URL: http://svn.apache.org/viewvc?rev=1711982=rev
Log:
JAMES-1595 Mappings is no longer Iterable to identify consumers

Modified:

james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java

james/project/trunk/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java

james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/mock/MockRecipientRewriteTableManagementImpl.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java

Modified: 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java?rev=1711982=1711981=1711982=diff
==
--- 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 (original)
+++ 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 Mon Nov  2 13:46:06 2015
@@ -190,7 +190,7 @@ public class ServerCmd {
 break;
 case LISTUSERDOMAINMAPPINGS:
 Mappings userDomainMappings = 
probe.listUserDomainMappings(arguments[1], arguments[2]);
-print(userDomainMappings, System.out);
+print(userDomainMappings.asStrings(), System.out);
 break;
 case ADDADDRESSMAPPING:
 probe.addAddressMapping(arguments[1], arguments[2], arguments[3]);
@@ -311,19 +311,15 @@ public class ServerCmd {
 return String.valueOf(value);
 }
 
-private void print(Map<String, ? extends Iterable> map, 
PrintStream out) {
+private void print(Map<String, Mappings> map, PrintStream out) {
 if (map != null) {
-for (Entry<String, ? extends Iterable> entry : 
map.entrySet()) {
-out.println(entry.getKey() + '=' + collectionToString(entry));
+for (Entry<String, Mappings> entry : map.entrySet()) {
+out.println(entry.getKey() + '=' + 
entry.getValue().asStrings().toString());
 }
 out.println();
 }
 }
 
-private String collectionToString(Entry<String, ? extends 
Iterable> entry) {
-return Joiner.on(',').join(entry.getValue());
-}
-
 private static void printUsage() {
 StringBuilder footerBuilder = new StringBuilder();
 for (CmdType cmdType : CmdType.values()) {

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711982=1711981=1711982=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:46:06 2015
@@ -21,7 +21,7 @@
 package org.apache.james.rrt.lib;
 
 
-public interface Mappings extends Iterable {
+public interface Mappings {
 
 boolean contains(String mapping);
 
@@ -31,4 +31,6 @@ public interface Mappings extends Iterab
 
 boolean isEmpty();
 
+Iterable asStrings();
+
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java?re

svn commit: r1711983 - in /james/project/trunk/server/data: data-api/src/main/java/org/apache/james/rrt/lib/ data-library/src/main/java/org/apache/james/rrt/lib/ data-library/src/test/java/org/apache/

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:46:31 2015
New Revision: 1711983

URL: http://svn.apache.org/viewvc?rev=1711983=rev
Log:
JAMES-1595 Mappings is now a list of Mapping obj, start using it

Added:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
  - copied, changed from r1711982, 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
  - copied, changed from r1711982, 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

Copied: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 (from r1711982, 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java?p2=james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java=james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java=1711982=1711983=1711983=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 Mon Nov  2 13:46:31 2015
@@ -21,16 +21,8 @@
 package org.apache.james.rrt.lib;
 
 
-public interface Mappings {
+public interface Mapping {
 
-boolean contains(String mapping);
+String asString();
 
-int size();
-
-Mappings remove(String mapping);
-
-boolean isEmpty();
-
-Iterable asStrings();
-
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711983=1711982=1711983=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:46:31 2015
@@ -21,7 +21,7 @@
 package org.apache.james.rrt.lib;
 
 
-public interface Mappings {
+public interface Mappings extends Iterable {
 
 boolean contains(String mapping);
 

Copied: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 (from r1711982, 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java?p2=james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java=james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java=1711982=1711983=1711983=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 Mon Nov  2 13:46:31 2015
@@ -20,17 +20,38 @@
 
 package org.apache.james.rrt.lib;
 
+import com.google.common.base.Objects;
 
-public interface Mappings {
 
-boolean contains(String mapping);
+public class MappingImpl implements Mapping {
 
-int size();
+public static MappingImpl of(String mapping) {
+return new MappingImpl(mapping);
+}
 
-Mappings remove(String mapping);
+private final String mapping;
 
-boolean isEmpty();
-
-Iterable asStrings();
+public MappingImpl(String mapping) {
+this.mapping = mapping;
+}
+
+@Override
+public String asString() {
+return mapping;
+}
+
+@Override
+public boolean equals(Object other) {
+if (other instanceof MappingImpl) {
+MappingImpl otherMapping = (MappingImpl) other;
+return Objects.equal(mapping, otherMapping.mapping);
+}
+return false;
+}
+
+@Override
+public int hashCode() {
+return Objects.hashCode(mapping);
+}
 
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-library/src/main/java

svn commit: r1711986 - in /james/project/trunk/server: container/cli/src/main/java/org/apache/james/cli/ data/data-api/src/main/java/org/apache/james/rrt/lib/ data/data-file/src/test/java/org/apache/j

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:47:09 2015
New Revision: 1711986

URL: http://svn.apache.org/viewvc?rev=1711986=rev
Log:
JAMES-1595 move RecipientRewriteTableUtil.CollectionToMapping to 
Mappings.serialize

Removed:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
Modified:

james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java

james/project/trunk/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java

james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/mock/MockRecipientRewriteTableManagementImpl.java

Modified: 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java?rev=1711986=1711985=1711986=diff
==
--- 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 (original)
+++ 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 Mon Nov  2 13:47:09 2015
@@ -314,7 +314,7 @@ public class ServerCmd {
 private void print(Map<String, Mappings> map, PrintStream out) {
 if (map != null) {
 for (Entry<String, Mappings> entry : map.entrySet()) {
-out.println(entry.getKey() + '=' + 
entry.getValue().asStrings().toString());
+out.println(entry.getKey() + '=' + 
entry.getValue().serialize());
 }
 out.println();
 }

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711986=1711985=1711986=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:47:09 2015
@@ -33,4 +33,6 @@ public interface Mappings extends Iterab
 
 Iterable asStrings();
 
+String serialize();
+
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java?rev=1711986=1711985=1711986=diff
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
 Mon Nov  2 13:47:09 2015
@@ -29,7 +29,6 @@ import org.apache.james.rrt.lib.Abstract
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.rrt.lib.MappingsImpl.Builder;
-import org.apache.james.rrt.lib.RecipientRewriteTableUtil;
 import org.junit.Before;
 import org.slf4j.LoggerFactory;
 
@@ -81,8 +80,7 @@ public class XMLRecipientRewriteTableTes
 Mappings updatedMappings = builder.build();
 
 if (!updatedMappings.isEmpty()) {
-defaultConfiguration.addProperty("mapping", user + "@" + domain + 
"=" + RecipientRewriteTableUtil.
-CollectionToMapping(updatedMappings.asStrings()));
+defaultConfiguration.addProperty("mapping", user + "@" + domain + 

svn commit: r1711988 - /james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:47:42 2015
New Revision: 1711988

URL: http://svn.apache.org/viewvc?rev=1711988=rev
Log:
JAMES-1595 Migrate AbstractRecipientRewriteTableTest to assertj

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java?rev=1711988=1711987=1711988=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 Mon Nov  2 13:47:42 2015
@@ -18,13 +18,10 @@
  /
 package org.apache.james.rrt.lib;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.fail;
 
 import java.util.Arrays;
-import java.util.Iterator;
 import java.util.Map;
 
 import org.apache.james.lifecycle.api.LifecycleUtil;
@@ -94,27 +91,26 @@ public abstract class AbstractRecipientR
 
 try {
 
-assertNull("No mapping", virtualUserTable.getMappings(user, 
domain));
-
-assertTrue("Added virtual mapping", addMapping(user, domain, 
regex, REGEX_TYPE));
-assertTrue("Added virtual mapping", addMapping(user, domain, 
regex2, REGEX_TYPE));
-assertEquals("Two mappings", virtualUserTable.getMappings(user, 
domain).size(), 2);
-assertEquals("One mappingline", 
virtualUserTable.getAllMappings().size(), 1);
-
-assertTrue("remove virtual mapping", removeMapping(user, domain, 
regex, REGEX_TYPE));
+assertThat(virtualUserTable.getMappings(user, 
domain)).describedAs("No mapping").isNull();
 
+assertThat(addMapping(user, domain, regex, 
REGEX_TYPE)).describedAs("Added virtual mapping").isTrue();
+assertThat(addMapping(user, domain, regex2, 
REGEX_TYPE)).describedAs("Added virtual mapping").isTrue();
+assertThat(virtualUserTable.getMappings(user, 
domain)).describedAs("Two mappings").hasSize(2);
+assertThat(virtualUserTable.getAllMappings()).describedAs("One 
mappingline").hasSize(1);
+assertThat(removeMapping(user, domain, regex, 
REGEX_TYPE)).describedAs("remove virtual mapping").isTrue();
+
 try {
 virtualUserTable.addRegexMapping(user, domain, invalidRegex);
 } catch (RecipientRewriteTableException e) {
 catched = true;
 }
-assertTrue("Invalid Mapping throw exception", catched);
-
-assertTrue("remove virtual mapping", removeMapping(user, domain, 
regex2, REGEX_TYPE));
-
-assertNull("No mapping", virtualUserTable.getMappings(user, 
domain));
-
-assertNull("No mappings", virtualUserTable.getAllMappings());
+
+assertThat(catched).describedAs("Invalid Mapping throw 
exception").isTrue();
+assertThat(removeMapping(user, domain, regex2, 
REGEX_TYPE)).describedAs("remove virtual mapping").isTrue();
+
+
+assertThat(virtualUserTable.getMappings(user, 
domain)).describedAs("No mapping").isNull();
+assertThat(virtualUserTable.getAllMappings()).describedAs("No 
mapping").isNull();
 
 } catch (IllegalArgumentException e) {
 e.printStackTrace();
@@ -133,15 +129,15 @@ public abstract class AbstractRecipientR
 
 try {
 
-assertNull("No mapping", virtualUserTable.getMappings(user, 
domain));
+assertThat(virtualUserTable.getMappings(user, 
domain)).describedAs("No mapping").isNull();
 
-assertTrue("Added virtual mapping", addMapping(user, domain, 
address, ADDRESS_TYPE));
-assertTrue("Added virtual mapping", addMapping(user, domain, 
address2, ADDRESS_TYPE));
+assertThat(addMapping(user, domain, address, 
ADDRESS_TYPE)).describedAs("Added virtual mapping").isTrue();
+assertThat(addMapping(user, domain, address2, 
ADDRESS_TYPE)).describedAs("Added virtual mapping").isTrue();
 
-assertEquals("Two 

svn commit: r1711987 - in /james/project/trunk/server: data/data-api/src/main/java/org/apache/james/rrt/lib/ data/data-library/src/main/java/org/apache/james/rrt/lib/ data/data-library/src/test/java/o

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:47:30 2015
New Revision: 1711987

URL: http://svn.apache.org/viewvc?rev=1711987=rev
Log:
JAMES-1595 Mapping gain some domain handling

Added:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java?rev=1711987=1711986=1711987=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 Mon Nov  2 13:47:30 2015
@@ -25,4 +25,8 @@ public interface Mapping {
 
 String asString();
 
+boolean hasDomain();
+
+Mapping appendDomain(String domain);
+
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java?rev=1711987=1711986=1711987=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 Mon Nov  2 13:47:30 2015
@@ -21,6 +21,7 @@
 package org.apache.james.rrt.lib;
 
 import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
 
 
 public class MappingImpl implements Mapping {
@@ -41,6 +42,17 @@ public class MappingImpl implements Mapp
 }
 
 @Override
+public boolean hasDomain() {
+return mapping.contains("@");
+}
+
+@Override
+public Mapping appendDomain(String domain) {
+Preconditions.checkNotNull(domain);
+return new MappingImpl(mapping + "@" + domain);
+}
+
+@Override
 public boolean equals(Object other) {
 if (other instanceof MappingImpl) {
 MappingImpl otherMapping = (MappingImpl) other;

Added: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java?rev=1711987=auto
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
 (added)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
 Mon Nov  2 13:47:30 2015
@@ -0,0 +1,69 @@
+/*
+ *   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.rrt.lib;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class MappingImplTest {
+
+@Test
+public void hasDomainshouldReturnTrueWhenMappingContainAtMark() {
+assertThat(MappingImpl.of("a@b").hasDomain()).isTrue();
+}
+
+@Test
+public void hasDomainshouldReturnFalseWhenMappingIsEmpty() {
+assertThat(MappingImpl.of("").hasDomain()).isFalse();
+}
+
+@Test
+public void hasDomainshouldReturnFalseWhenMappingIsBlank() {
+assertThat(MappingImpl.of(" ").hasDomain()).isFalse();
+}
+
+@Test
+public void hasDomainshouldReturnFalseWhenMappingDoesntContainAtMark() {
+assertThat

svn commit: r1711989 - /james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:47:53 2015
New Revision: 1711989

URL: http://svn.apache.org/viewvc?rev=1711989=rev
Log:
JAMES-1595 Test mapping sorting in AbstractRecipientRewriteTable

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java?rev=1711989=1711988=1711989=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 Mon Nov  2 13:47:53 2015
@@ -21,7 +21,6 @@ package org.apache.james.rrt.lib;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
 
-import java.util.Arrays;
 import java.util.Map;
 
 import org.apache.james.lifecycle.api.LifecycleUtil;
@@ -301,7 +300,7 @@ public abstract class AbstractRecipientR
 
 @Test
 public void sortMappingsShouldReturnEmptyWhenEmpty() {
-
assertThat(AbstractRecipientRewriteTable.sortMappings("")).isEqualTo("");
+assertThat(AbstractRecipientRewriteTable.sortMappings("")).isEmpty();
 }
 
 @Test
@@ -312,19 +311,26 @@ public abstract class AbstractRecipientR
  
 @Test
 public void sortMappingsShouldReturnSameStringWhenTwoDomainAliases() {
-String firstAliasMapping = RecipientRewriteTable.ALIASDOMAIN_PREFIX + 
"first";
-String secondAliasMapping = RecipientRewriteTable.ALIASDOMAIN_PREFIX + 
"second";
-String mappings = 
MappingsImpl.fromCollection(Arrays.asList(firstAliasMapping, 
secondAliasMapping)).serialize();
-
assertThat(AbstractRecipientRewriteTable.sortMappings(mappings)).isEqualTo(mappings);
+MappingsImpl mappings = MappingsImpl.builder()
+.add(RecipientRewriteTable.ALIASDOMAIN_PREFIX + "first")
+.add(RecipientRewriteTable.ALIASDOMAIN_PREFIX + "second")
+.build();
+
assertThat(AbstractRecipientRewriteTable.sortMappings(mappings.serialize())).isEqualTo(mappings.serialize());
 }
 
 @Test
 public void sortMappingsShouldPutDomainAliasFirstWhenVariousMappings() {
 String regexMapping = RecipientRewriteTable.REGEX_PREFIX + "first";
 String domainMapping = RecipientRewriteTable.ALIASDOMAIN_PREFIX + 
"second";
-String inputMappings = 
MappingsImpl.fromCollection(Arrays.asList(regexMapping, 
domainMapping)).serialize();
-String expectedMappings = 
MappingsImpl.fromCollection(Arrays.asList(domainMapping, 
regexMapping)).serialize();
-
assertThat(AbstractRecipientRewriteTable.sortMappings(inputMappings)).isEqualTo(expectedMappings);
+MappingsImpl mappings = MappingsImpl.builder()
+.add(regexMapping)
+.add(domainMapping)
+.build();
+
assertThat(AbstractRecipientRewriteTable.sortMappings(mappings.serialize()))
+.isEqualTo(MappingsImpl.builder()
+.add(domainMapping)
+.add(regexMapping)
+.build().serialize());
 }
 
 



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



svn commit: r1711974 [1/2] - in /james/project/trunk/server: container/cli/ container/cli/src/main/java/org/apache/james/cli/ container/cli/src/main/java/org/apache/james/cli/probe/ container/cli/src/

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:43:21 2015
New Revision: 1711974

URL: http://svn.apache.org/viewvc?rev=1711974=rev
Log:
JAMES-1595 Promote Mappings to a actual object

Added:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
Modified:
james/project/trunk/server/container/cli/pom.xml

james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java

james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/probe/ServerProbe.java

james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxServerProbe.java

james/project/trunk/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java

james/project/trunk/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java

james/project/trunk/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java

james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
james/project/trunk/server/data/data-library/pom.xml

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/mock/MockRecipientRewriteTableManagementImpl.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTable.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/UsersRepositoryAliasingForwarding.java

james/project/trunk/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableMock.java

james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptHandler.java

james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java

james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java

Modified: james/project/trunk/server/container/cli/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cli/pom.xml?rev=1711974=1711973=1711974=diff
==
--- james/project/trunk/server/container/cli/pom.xml (original)
+++ james/project/trunk/server/container/cli/pom.xml Mon Nov  2 13:43:21 2015
@@ -40,6 +40,10 @@
 
 
 org.apache.james
+james-server-data-library
+
+
+org.apache.james
 james-server-mailbox-adapter
 
 

Modified: 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java?rev=1711974=1711973=1711974=diff
==
--- 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 (original)
+++ 
james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
 Mon Nov  2 13:43:21 2015
@@ -18,8 +18,12

svn commit: r1711973 - /james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:42:37 2015
New Revision: 1711973

URL: http://svn.apache.org/viewvc?rev=1711973=rev
Log:
JAMES-1595 write tests around mappingToCollection

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java?rev=1711973=1711972=1711973=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
 Mon Nov  2 13:42:37 2015
@@ -1,11 +1,13 @@
 package org.apache.james.rrt.lib;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.List;
+
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
 
-import static org.assertj.core.api.Assertions.assertThat;
-
 public class RecipientRewriteTableUtilTest {
 
 @Test(expected=NullPointerException.class)
@@ -30,5 +32,97 @@ public class RecipientRewriteTableUtilTe
 String actual = 
RecipientRewriteTableUtil.CollectionToMapping(ImmutableList.of("value1", 
"value2"));
 assertThat(actual).isEqualTo("value1;value2");
 }
+
+@Test(expected=NullPointerException.class)
+public void mappingToCollectionShouldThrowWhenNull() {
+RecipientRewriteTableUtil.mappingToCollection(null);
+}
+
+@Test
+public void 
mappingToCollectionShouldReturnEmptyCollectionWhenEmptyString() {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("");
+assertThat(actual).isEmpty();
+}
+
+@Test
+public void 
mappingToCollectionShouldReturnSingletonCollectionWhenSingleElementString() {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value");
+assertThat(actual).containsExactly("value");
+}
+
+@Test
+public void 
mappingToCollectionShouldReturnCollectionWhenSeveralElementsString() {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1;value2");
+assertThat(actual).containsExactly("value1", "value2");
+}
+
+@Test
+public void 
mappingToCollectionShouldReturnSingleElementCollectionWhenTrailingDelimiterString()
 {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1;");
+assertThat(actual).containsExactly("value1");
+}
+
+@Test
+public void 
mappingToCollectionShouldReturnSingleElementCollectionWhenHeadingDelimiterString()
 {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection(";value1");
+assertThat(actual).containsExactly("value1");
+}
+
+
+@Test
+public void mappingToCollectionShouldTrimValues() {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1 ; value2  ");
+assertThat(actual).containsExactly("value1", "value2");
+}
+
+@Test
+public void mappingToCollectionShouldNotSkipEmptyValue() {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1; ;value2");
+assertThat(actual).containsExactly("value1", "", "value2");
+}
+
+@Test
+public void 
mappingToCollectionShouldReturnCollectionWhenValueContainsCommaSeperatedValues()
 {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1,value2");
+assertThat(actual).containsExactly("value1","value2");
+}
+
+@Test
+public void 
mappingToCollectionShouldReturnCollectionWhenValueContainsColonSeperatedValues()
 {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1:value2");
+assertThat(actual).containsExactly("value1","value2");
+}
+
+@Test
+public void 
mappingToCollectionShouldUseCommaDelimiterBeforeSemicolonWhenValueContainsBoth()
 {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1;value1,value2");
+assertThat(actual).containsExactly("value1;value1","value2");
+}
+
+@Test
+public void 
mappingToCollectionShouldUseSemicolonDelimiterBeforeColonWhenValueContainsBoth()
 {
+List actual = 
RecipientRewriteTableUtil.mappingToCollection("value1:value1;value2");
+assertThat(actual).containsExactly("value1:value1",&qu

svn commit: r1711974 [2/2] - in /james/project/trunk/server: container/cli/ container/cli/src/main/java/org/apache/james/cli/ container/cli/src/main/java/org/apache/james/cli/probe/ container/cli/src/

2015-11-02 Thread matthieu
Modified: 
james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java?rev=1711974=1711973=1711974=diff
==
--- 
james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
 (original)
+++ 
james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
 Mon Nov  2 13:43:21 2015
@@ -18,10 +18,12 @@
  /
 package org.apache.james.smtpserver;
 
-import java.util.ArrayList;
-import java.util.Collection;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
 import java.util.HashMap;
 import java.util.Map;
+
 import org.apache.james.domainlist.api.mock.SimpleDomainList;
 import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.smtp.MailAddress;
@@ -31,11 +33,11 @@ import org.apache.james.protocols.smtp.h
 import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.lib.Mappings;
+import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.smtpserver.fastfail.ValidRcptHandler;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.lib.mock.MockUsersRepository;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -111,9 +113,9 @@ public class ValidRcptHandlerTest {
 final RecipientRewriteTable table = new RecipientRewriteTable() {
 
 @Override
-public Collection getMappings(String user, String domain) 
throws ErrorMappingException,
+public Mappings getMappings(String user, String domain) throws 
ErrorMappingException,
 RecipientRewriteTableException {
-Collection mappings = new ArrayList();
+Mappings mappings = MappingsImpl.empty();
 if (user.equals(USER1)) {
 mappings.add("address@localhost");
 } else if (user.equals(USER2)) {
@@ -162,7 +164,7 @@ public class ValidRcptHandlerTest {
 }
 
 @Override
-public Collection getUserDomainMappings(String user, 
String domain) throws
+public Mappings getUserDomainMappings(String user, String domain) 
throws
 RecipientRewriteTableException {
 throw new UnsupportedOperationException("Not implemented");
 }
@@ -180,7 +182,7 @@ public class ValidRcptHandlerTest {
 }
 
 @Override
-public Map getAllMappings() throws 
RecipientRewriteTableException {
+public Map getAllMappings() throws 
RecipientRewriteTableException {
 throw new UnsupportedOperationException("Not implemented");
 }
 



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



svn commit: r1711971 - in /james/project/trunk/server/data/data-library/src/test: java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java resources/cucumber/rewrite_tables.feature

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:42:11 2015
New Revision: 1711971

URL: http://svn.apache.org/viewvc?rev=1711971=rev
Log:
JAMES-1594 add tests on recursive mappings

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java?rev=1711971=1711970=1711971=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 Mon Nov  2 13:42:11 2015
@@ -70,6 +70,16 @@ public class RewriteTablesStepdefs {
 rewriteTable.addAliasDomainMapping(aliasDomain, domain);
 }
 
+@Given("recursive mapping is disable")
+public void disableRecursiveMapping() {
+rewriteTable.setRecursiveMapping(false);
+}
+
+@Given("recursive mapping is enable")
+public void enableRecursiveMapping() {
+rewriteTable.setRecursiveMapping(true);
+}
+
 @When("user \"([^\"]*)\" at domain \"([^\"]*)\" removes a regexp mapping 
\"([^\"]*)\"")
 public void userAtDomainRemovesRegexpMapping(String user, String domain, 
String regexp) throws Throwable {
 rewriteTable.removeRegexMapping(user, domain, regexp);

Modified: 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1711971=1711970=1711971=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 Mon Nov  2 13:42:11 2015
@@ -174,4 +174,46 @@ Feature: Rewrite Tables tests
 Given store "wildcard@localhost" address mapping as wildcard for domain 
"localhost"
 And store "aliasdomain" alias domain mapping for domain "localhost"
 When alias domain mapping "aliasdomain" for "localhost" domain is removed
-Then mappings for user "test" at domain "aliasdomain" should be empty
\ No newline at end of file
+Then mappings for user "test" at domain "aliasdomain" should be empty
+
+# Recursive mapping
+
+  Scenario: direct mapping should be returned when recursive mapping is disable
+Given recursive mapping is disable
+And store "user2@domain2" address mapping for user "user1" at domain 
"domain1"
+And store "user3@domain3" address mapping for user "user2" at domain 
"domain2"
+Then mappings for user "user1" at domain "domain1" should contains only 
"user2@domain2"
+
+  Scenario: recursive mapping should work when two levels
+Given recursive mapping is enable
+And store "user2@domain2" address mapping for user "user1" at domain 
"domain1"
+And store "user3@domain3" address mapping for user "user2" at domain 
"domain2"
+Then mappings for user "user1" at domain "domain1" should contains only 
"user3@domain3"
+
+  Scenario: recursive mapping should work when three levels
+Given recursive mapping is enable
+And store "user2@domain2" address mapping for user "user1" at domain 
"domain1"
+And store "user3@domain3" address mapping for user "user2" at domain 
"domain2"
+And store "user4@domain4" address mapping for user "user3" at domain 
"domain3"
+Then mappings for user "user1" at domain "domain1" should contains only 
"user4@domain4"
+
+  Scenario: recursive mapping should throw exception when a loop exists
+Given recursive mapping is enable
+And store "user2@domain2" address mapping for user "user1" at domain 
"domain1"
+And store "user3@domain3" address mapping for user "user2" at domain 
"domain2"
+And store "user1@domain1" address mapping for user "user3" at domain 
"domain3"
+Then retrieving mappings fo

svn commit: r1711970 - in /james/project/trunk/server/data/data-library/src/test: java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java resources/cucumber/rewrite_tables.feature

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:41:59 2015
New Revision: 1711970

URL: http://svn.apache.org/viewvc?rev=1711970=rev
Log:
JAMES-1594 add tests on alias mappings

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java?rev=1711970=1711969=1711970=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 Mon Nov  2 13:41:59 2015
@@ -65,6 +65,11 @@ public class RewriteTablesStepdefs {
 storeAddressMappingForUserAtDomain(address, 
RecipientRewriteTable.WILDCARD, domain);
 }
 
+@Given("store \"([^\"]*)\" alias domain mapping for domain \"([^\"]*)\"")
+public void storeAliasDomainMappingForDomain(String aliasDomain, String 
domain) throws Throwable {
+rewriteTable.addAliasDomainMapping(aliasDomain, domain);
+}
+
 @When("user \"([^\"]*)\" at domain \"([^\"]*)\" removes a regexp mapping 
\"([^\"]*)\"")
 public void userAtDomainRemovesRegexpMapping(String user, String domain, 
String regexp) throws Throwable {
 rewriteTable.removeRegexMapping(user, domain, regexp);
@@ -85,6 +90,11 @@ public class RewriteTablesStepdefs {
 userAtDomainRemovesAddressMapping(RecipientRewriteTable.WILDCARD, 
domain, address);
 }
 
+@When("alias domain mapping \"([^\"]*)\" for \"([^\"]*)\" domain is 
removed")
+public void removeAliasDomainMappingForDomain(String aliasdomain, String 
domain) throws Throwable {
+rewriteTable.removeAliasDomainMapping(aliasdomain, domain);
+}
+
 @Then("mappings should be empty")
 public void assertMappingsIsEmpty() throws Throwable {
 assertThat(rewriteTable.getAllMappings()).isNullOrEmpty();

Modified: 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1711970=1711969=1711970=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 Mon Nov  2 13:41:59 2015
@@ -127,4 +127,51 @@ Feature: Rewrite Tables tests
   Scenario: stored address mappings as wildcard should be retrieved when two 
address mappings as wildcard
 Given store "test@localhost" address mapping as wildcard for domain 
"localhost"
 And store "test2@localhost" address mapping as wildcard for domain 
"localhost"
-Then mappings for user "user" at domain "localhost" should contains only 
"test@localhost, test2@localhost"
\ No newline at end of file
+Then mappings for user "user" at domain "localhost" should contains only 
"test@localhost, test2@localhost"
+
+# Alias mapping
+
+  Scenario: address mapping should be retrieved when searching with a domain 
alias
+Given store "aliasdomain" alias domain mapping for domain "localhost"
+Then mappings for user "test" at domain "aliasdomain" should contains only 
"test@localhost"
+
+  Scenario: address mapping should be retrieved when searching with a domain 
alias
+Given store "test2@localhost" address mapping for user "test" at domain 
"localhost"
+And store "aliasdomain" alias domain mapping for domain "localhost"
+Then mappings for user "test" at domain "aliasdomain" should contains only 
"test2@localhost"
+
+  Scenario: address mapping should be retrieved when searching with a domain 
alias (reverse insertion order)
+Given store "aliasdomain" alias domain mapping for domain "localhost"
+And store "test2@localhost" address mapping for user "test" at domain 
"localhost"
+Then mappings for user "test" at domain "aliasdomain" should contains only 
"test2@localhost"
+
+  Scenario: address mapping shou

svn commit: r1711972 - in /james/project/trunk/server/data/data-library/src: main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java test/java/org/apache/james/rrt/lib/RecipientRewriteTableU

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:42:26 2015
New Revision: 1711972

URL: http://svn.apache.org/viewvc?rev=1711972=rev
Log:
JAMES-1595 refactor CollectionToMapping function

Added:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
Modified:

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java?rev=1711972=1711971=1711972=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
 Mon Nov  2 13:42:26 2015
@@ -21,7 +21,6 @@ package org.apache.james.rrt.lib;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.StringTokenizer;
 import java.util.regex.Matcher;
@@ -31,6 +30,8 @@ import java.util.regex.PatternSyntaxExce
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.mailet.MailAddress;
 
+import com.google.common.base.Joiner;
+
 /**
  * This helper class contains methods for the RecipientRewriteTable 
implementations
  */
@@ -246,15 +247,7 @@ public class RecipientRewriteTableUtil {
  * @return mapping the mapping String
  */
 public static String CollectionToMapping(Collection map) {
-StringBuilder mapping = new StringBuilder();
-Iterator mappings = map.iterator();
-while (mappings.hasNext()) {
-mapping.append(mappings.next());
-if (mappings.hasNext()) {
-mapping.append(";");
-}
-}
-return mapping.toString();
+return Joiner.on(';').join(map);
 }
 
 }

Added: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java?rev=1711972=auto
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
 (added)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableUtilTest.java
 Mon Nov  2 13:42:26 2015
@@ -0,0 +1,34 @@
+package org.apache.james.rrt.lib;
+
+import org.junit.Test;
+
+import com.google.common.collect.ImmutableList;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class RecipientRewriteTableUtilTest {
+
+@Test(expected=NullPointerException.class)
+public void collectionToMappingShouldThrowWhenNull() {
+RecipientRewriteTableUtil.CollectionToMapping(null);
+}
+
+@Test
+public void 
collectionToMappingShouldReturnEmptyStringWhenEmptyCollection() {
+String actual = 
RecipientRewriteTableUtil.CollectionToMapping(ImmutableList.of());
+assertThat(actual).isEmpty();
+}
+
+@Test
+public void 
collectionToMappingShouldReturnSimpleValueWhenSingleElementCollection() {
+String actual = 
RecipientRewriteTableUtil.CollectionToMapping(ImmutableList.of("value"));
+assertThat(actual).isEqualTo("value");
+}
+
+@Test
+public void 
collectionToMappingShouldReturnSeparatedValuesWhenSeveralElementsCollection() {
+String actual = 
RecipientRewriteTableUtil.CollectionToMapping(ImmutableList.of("value1", 
"value2"));
+assertThat(actual).isEqualTo("value1;value2");
+}
+
+}



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



svn commit: r1711967 - in /james/project/trunk/server/data/data-library/src/test: java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java resources/cucumber/rewrite_tables.feature

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:41:13 2015
New Revision: 1711967

URL: http://svn.apache.org/viewvc?rev=1711967=rev
Log:
JAMES-1594 add tests on address mappings

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java?rev=1711967=1711966=1711967=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 Mon Nov  2 13:41:13 2015
@@ -48,11 +48,21 @@ public class RewriteTablesStepdefs {
 }
 }
 
+@Given("store \"([^\"]*)\" address mapping for user \"([^\"]*)\" at domain 
\"([^\"]*)\"")
+public void storeAddressMappingForUserAtDomain(String address, String 
user, String domain) throws Throwable {
+rewriteTable.addAddressMapping(user, domain, address);
+}
+
 @When("user \"([^\"]*)\" at domain \"([^\"]*)\" removes a regexp mapping 
\"([^\"]*)\"")
 public void userAtDomainRemovesRegexpMapping(String user, String domain, 
String regexp) throws Throwable {
 rewriteTable.removeRegexMapping(user, domain, regexp);
 }
 
+@When("user \"([^\"]*)\" at domain \"([^\"]*)\" removes a address mapping 
\"([^\"]*)\"")
+public void userAtDomainRemovesAddressMapping(String user, String domain, 
String address) throws Throwable {
+rewriteTable.removeAddressMapping(user, domain, address);
+}
+
 @Then("mappings should be empty")
 public void assertMappingsIsEmpty() throws Throwable {
 assertThat(rewriteTable.getAllMappings()).isNullOrEmpty();

Modified: 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1711967=1711966=1711967=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 Mon Nov  2 13:41:13 2015
@@ -28,3 +28,25 @@ Feature: Rewrite Tables tests
   Scenario: storing an invalid regexp mapping should not work
 When store an invalid ".*):" regexp mapping for user "test" at domain 
"localhost"
 Then a "RecipientRewriteTableException" exception should have been thrown
+
+# Address mapping
+
+  Scenario: stored address mapping should be retrieved when one mapping 
matching
+Given store "test@localhost2" address mapping for user "test" at domain 
"localhost"
+Then mappings for user "test" at domain "localhost" should contains only 
"test@localhost2"
+
+  Scenario: stored address mapping should be retrieved when two mappings 
matching
+Given store "test@localhost2" address mapping for user "test" at domain 
"localhost"
+And store "test@james" address mapping for user "test" at domain 
"localhost"
+Then mappings for user "test" at domain "localhost" should contains only 
"test@localhost2, test@james"
+
+  Scenario: stored address mapping should not be retrieved by another user
+Given store "test@localhost2" address mapping for user "test" at domain 
"localhost"
+And store "test@james" address mapping for user "test" at domain 
"localhost"
+Then mappings for user "test2" at domain "localhost" should be empty
+
+  Scenario: removing a stored address mapping should work
+Given store "test@localhost2" address mapping for user "test" at domain 
"localhost"
+And store "test@james" address mapping for user "test" at domain 
"localhost"
+When user "test" at domain "localhost" removes a address mapping 
"test@james"
+Then mappings for user "test" at domain "localhost" should contains only 
"test@localhost2"
\ No newline at end of file



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



svn commit: r1711969 - in /james/project/trunk/server/data/data-library/src/test: java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java resources/cucumber/rewrite_tables.feature

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:41:49 2015
New Revision: 1711969

URL: http://svn.apache.org/viewvc?rev=1711969=rev
Log:
JAMES-1594 add tests on wildcard address mappings

Modified:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java?rev=1711969=1711968=1711969=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
 Mon Nov  2 13:41:49 2015
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Asser
 
 import java.util.List;
 
+import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTable.ErrorMappingException;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 
@@ -59,6 +60,11 @@ public class RewriteTablesStepdefs {
 rewriteTable.addErrorMapping(user, domain, error);
 }
 
+@Given("store \"([^\"]*)\" address mapping as wildcard for domain 
\"([^\"]*)\"")
+public void storeAddressMappingAsWildcardAtDomain(String address, String 
domain) throws Throwable {
+storeAddressMappingForUserAtDomain(address, 
RecipientRewriteTable.WILDCARD, domain);
+}
+
 @When("user \"([^\"]*)\" at domain \"([^\"]*)\" removes a regexp mapping 
\"([^\"]*)\"")
 public void userAtDomainRemovesRegexpMapping(String user, String domain, 
String regexp) throws Throwable {
 rewriteTable.removeRegexMapping(user, domain, regexp);
@@ -74,6 +80,11 @@ public class RewriteTablesStepdefs {
 rewriteTable.removeErrorMapping(user, domain, error);
 }
 
+@When("wildcard address mapping \"([^\"]*)\" at domain \"([^\"]*)\" is 
removed")
+public void removeWildcardAddressMappingAtDomain(String address, String 
domain) throws Throwable {
+userAtDomainRemovesAddressMapping(RecipientRewriteTable.WILDCARD, 
domain, address);
+}
+
 @Then("mappings should be empty")
 public void assertMappingsIsEmpty() throws Throwable {
 assertThat(rewriteTable.getAllMappings()).isNullOrEmpty();

Modified: 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1711969=1711968=1711969=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 Mon Nov  2 13:41:49 2015
@@ -87,3 +87,44 @@ Feature: Rewrite Tables tests
 Given store "bounce!" error mapping for user "test" at domain "localhost"
 And store "test@localhost2" address mapping for user "test" at domain 
"localhost"
 Then retrieving mappings for user "test" at domain "localhost" should 
raise a "ErrorMappingException" exception with message "bounce!"
+
+# Wildcard mapping
+
+  Scenario: stored address mapping as wildcard should be retrieved by one user 
when one mapping matching
+Given store "test@localhost" address mapping as wildcard for domain 
"localhost"
+Then mappings for user "user" at domain "localhost" should contains only 
"test@localhost"
+
+  Scenario: stored address mapping as wildcard should be retrieved by two 
users when one mapping matching
+Given store "test@localhost" address mapping as wildcard for domain 
"localhost"
+Then mappings for user "user" at domain "localhost" should contains only 
"test@localhost"
+And mappings for user "user2" at domain "localhost" should contains only 
"test@localhost"
+
+# Wildcard is not overridden
+  @ignore
+  Scenario: direct mapping should override address mapping as wildcard
+Given store "test@localhost" address mapping as wildcard for domain 
"localhost"
+And store "mine@localhost" address mapping for user "user" at domain 
"localhost"
+   

svn commit: r1711968 - in /james/project/trunk/server/data: data-file/src/test/java/org/apache/james/rrt/file/ data-hbase/src/test/java/org/apache/james/rrt/hbase/ data-jdbc/src/test/java/org/apache/j

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:41:32 2015
New Revision: 1711968

URL: http://svn.apache.org/viewvc?rev=1711968=rev
Log:
JAMES-1594 add tests on error mappings

Modified:

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java

james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java

james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java?rev=1711968=1711967=1711968=diff
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 Mon Nov  2 13:41:32 2015
@@ -28,7 +28,8 @@ import cucumber.api.junit.Cucumber;
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" },
+tags = { "~@ignore" }
 )
 public class RewriteTablesTest {
 }

Modified: 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java?rev=1711968=1711967=1711968=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
 Mon Nov  2 13:41:32 2015
@@ -28,7 +28,8 @@ import cucumber.api.junit.Cucumber;
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.hbase" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.hbase" },
+tags = { "~@ignore" }
 )
 public class RewriteTablesTest {
 }

Modified: 
james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java?rev=1711968=1711967=1711968=diff
==
--- 
james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
 Mon Nov  2 13:41:32 2015
@@ -26,7 +26,8 @@ import cucumber.api.junit.Cucumber;
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jdbc" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jdbc" },
+tags = { "~@ignore" }
 )
 public class RewriteTablesTest {
 }

Modified: 
james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java?rev=1711968=1711967=1711968=diff
==
--- 
james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java
 Mon Nov  2 13:41:32 2015
@@ -26,7 +26,8 @@ import cucumber.api.junit.Cucumber;
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jpa" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jpa" },
+ 

svn commit: r1711995 - in /james/project/trunk/server/data: data-api/src/main/java/org/apache/james/rrt/lib/ data-library/src/main/java/org/apache/james/rrt/lib/ data-library/src/test/java/org/apache/

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:49:00 2015
New Revision: 1711995

URL: http://svn.apache.org/viewvc?rev=1711995=rev
Log:
JAMES-1595 implement getErrorMessage on Mapping

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java?rev=1711995=1711994=1711995=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 Mon Nov  2 13:49:00 2015
@@ -33,4 +33,6 @@ public interface Mapping {
 
 Mapping appendDomain(String domain);
 
+String getErrorMessage();
+
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java?rev=1711995=1711994=1711995=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 Mon Nov  2 13:49:00 2015
@@ -88,6 +88,12 @@ public class MappingImpl implements Mapp
 }
 
 @Override
+public String getErrorMessage() {
+
Preconditions.checkState(mapping.startsWith(RecipientRewriteTable.ERROR_PREFIX));
+return mapping.substring(RecipientRewriteTable.ERROR_PREFIX.length());
+}
+
+@Override
 public boolean equals(Object other) {
 if (other instanceof MappingImpl) {
 MappingImpl otherMapping = (MappingImpl) other;

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java?rev=1711995=1711994=1711995=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
 Mon Nov  2 13:49:00 2015
@@ -111,4 +111,20 @@ public class MappingImplTest {
 public void getTypeShouldReturnDomainWhenDomainPrefix() {
 
assertThat(MappingImpl.domain("abc").getType()).isEqualTo(Mapping.Type.Domain);
 }
+
+@Test(expected=IllegalStateException.class)
+public void getErrorMessageShouldThrowWhenMappingIsNotAnError() {
+MappingImpl.domain("toto").getErrorMessage();
+}
+
+@Test
+public void getErrorMessageShouldReturnMessageWhenErrorWithMessage() {
+
assertThat(MappingImpl.error("toto").getErrorMessage()).isEqualTo("toto");
+}
+
+
+@Test
+public void getErrorMessageShouldReturnWhenErrorWithoutMessage() {
+assertThat(MappingImpl.error("").getErrorMessage()).isEqualTo("");
+}
 }



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



svn commit: r1711997 - /james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:49:26 2015
New Revision: 1711997

URL: http://svn.apache.org/viewvc?rev=1711997=rev
Log:
JAMES-1595 Enable tests fixed by previous commit

Modified:

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1711997=1711996=1711997=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 Mon Nov  2 13:49:26 2015
@@ -57,7 +57,6 @@ Feature: Rewrite Tables tests
 Given store "bounce!" error mapping for user "test" at domain "localhost"
 Then retrieving mappings for user "test" at domain "localhost" should 
raise a "ErrorMappingException" exception with message "bounce!"
 
-# Bad messsage: "bounce!;test@localhost2" instead of "bounce!"
   Scenario: stored error mapping should be retrieved when two mappings matching
 Given store "bounce!" error mapping for user "test" at domain "localhost"
 And store "error" error mapping for user "test" at domain "localhost"
@@ -73,15 +72,11 @@ Feature: Rewrite Tables tests
 When user "test" at domain "localhost" removes a error mapping "bounce!"
 Then mappings for user "test" at domain "localhost" should be empty
 
-# Should fail, but not currently
-  @ignore
   Scenario: an exception should be thrown when an error mapping is not the 
first stored
 Given store "test@localhost2" address mapping for user "test" at domain 
"localhost"
 And store "bounce!" error mapping for user "test" at domain "localhost"
 Then retrieving mappings for user "test" at domain "localhost" should 
raise a "ErrorMappingException" exception with message "bounce!"
 
-# Bad messsage: "bounce!;test@localhost2" instead of "bounce!"
-  @ignore
   Scenario: an exception should be thrown when an error mapping is the first 
stored
 Given store "bounce!" error mapping for user "test" at domain "localhost"
 And store "test@localhost2" address mapping for user "test" at domain 
"localhost"



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



svn commit: r1711996 - in /james/project/trunk/server/data: data-api/src/main/java/org/apache/james/rrt/lib/ data-library/src/main/java/org/apache/james/rrt/lib/ data-library/src/test/resources/cucumb

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:49:15 2015
New Revision: 1711996

URL: http://svn.apache.org/viewvc?rev=1711996=rev
Log:
JAMES-1595 Finally fix error message on mappings

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711996=1711995=1711996=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 13:49:15 2015
@@ -41,5 +41,7 @@ public interface Mappings extends Iterab
 Mappings select(Type type);
 
 Mappings exclude(Type type);
+
+Mapping getError();
 
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java?rev=1711996=1711995=1711996=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
 Mon Nov  2 13:49:15 2015
@@ -35,6 +35,7 @@ import org.apache.james.lifecycle.api.Co
 import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.lib.Mapping.Type;
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
 
@@ -123,14 +124,12 @@ public abstract class AbstractRecipientR
 
 // Only non-null mappings are translated
 if (targetMappings != null) {
-String targetString = targetMappings.serialize();
-MappingsImpl.Builder mappings = MappingsImpl.builder();
-if (targetString.startsWith(RecipientRewriteTable.ERROR_PREFIX)) {
-throw new 
ErrorMappingException(targetString.substring(RecipientRewriteTable.ERROR_PREFIX.length()));
-
+if (targetMappings.contains(Type.Error)) {
+throw new 
ErrorMappingException(targetMappings.getError().getErrorMessage());
 } else {
+MappingsImpl.Builder mappings = MappingsImpl.builder();
 
-for (String target : 
MappingsImpl.fromRawString(targetString).asStrings()) {
+for (String target : targetMappings.asStrings()) {
 if (target.startsWith(RecipientRewriteTable.REGEX_PREFIX)) 
{
 try {
 target = RecipientRewriteTableUtil.regexMap(new 
MailAddress(user, domain), target);
@@ -185,10 +184,8 @@ public abstract class AbstractRecipientR
 mappings.add(target);
 }
 }
+return mappings.build();
 }
-
-return mappings.build();
-
 }
 
 return null;

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1711996=1711995=1711996=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 Mon Nov  2 13:49:15 2015
@@ -35,6 +35,7 @@ import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 
 public class MappingsImpl implements Mappings {
@@ -191,6 +192,13 @@ public class MappingsImpl implements Map
 Preconditions.checkNotNull(type);
 return 
fromMappings(FluentIterable.from(mappings).filter(Predicates.not(hasType(type

svn commit: r1711994 - in /james/project/trunk/server/data/data-library/src: main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java test/java/org/apache/james/rrt/lib/AbstractRecipientR

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:48:47 2015
New Revision: 1711994

URL: http://svn.apache.org/viewvc?rev=1711994=rev
Log:
JAMES-1595 fix AbstractRecipientRewriteTable mapping sorting

Modified:

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java?rev=1711994=1711993=1711994=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
 Mon Nov  2 13:48:47 2015
@@ -18,9 +18,6 @@
  /
 package org.apache.james.rrt.lib;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
@@ -122,10 +119,11 @@ public abstract class AbstractRecipientR
 if (mappingLimit == 0)
 throw new ErrorMappingException("554 Too many mappings to 
process");
 
-String targetString = mapAddress(user, domain);
+Mappings targetMappings = mapAddress(user, domain);
 
 // Only non-null mappings are translated
-if (targetString != null) {
+if (targetMappings != null) {
+String targetString = targetMappings.serialize();
 MappingsImpl.Builder mappings = MappingsImpl.builder();
 if (targetString.startsWith(RecipientRewriteTable.ERROR_PREFIX)) {
 throw new 
ErrorMappingException(targetString.substring(RecipientRewriteTable.ERROR_PREFIX.length()));
@@ -440,34 +438,24 @@ public abstract class AbstractRecipientR
  *the domain
  * @return the mappings
  */
-private String mapAddress(String user, String domain) throws 
RecipientRewriteTableException {
+private Mappings mapAddress(String user, String domain) throws 
RecipientRewriteTableException {
 
 String mappings = mapAddressInternal(user, domain);
 
-return sortMappings(mappings);
+if (mappings != null) {
+return sortMappings(MappingsImpl.fromRawString(mappings));
+} else {
+return null;
+}
 }
 
-@VisibleForTesting static String sortMappings(String mappings) {
-// check if we need to sort
-// TODO: Maybe we should just return the aliasdomain mapping
-if (mappings != null && 
mappings.contains(RecipientRewriteTable.ALIASDOMAIN_PREFIX)) {
-Mappings mapCol = MappingsImpl.fromRawString(mappings);
-Iterator mapIt = mapCol.asStrings().iterator();
-
-List col = new ArrayList(mapCol.size());
-
-int i = 0;
-while (mapIt.hasNext()) {
-String mapping = mapIt.next();
-
-if 
(mapping.startsWith(RecipientRewriteTable.ALIASDOMAIN_PREFIX)) {
-col.add(i, mapping);
-i++;
-} else {
-col.add(mapping);
-}
-}
-return MappingsImpl.fromCollection(col).serialize();
+@VisibleForTesting static Mappings sortMappings(Mappings mappings) {
+if (mappings.contains(Mapping.Type.Domain)) {
+return
+MappingsImpl.builder()
+.addAll(mappings.select(Mapping.Type.Domain))
+.addAll(mappings.exclude(Mapping.Type.Domain))
+.build();
 } else {
 return mappings;
 }

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java?rev=1711994=1711993=1711994=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
 Mon Nov  2 13:48:47 2015
@@ -292,21 +292,16 @@ public abstract class AbstractRecipientR
 }
 
 }
-
-@Test
-public void sortMappingsShould

svn commit: r1711990 - in /james/project/trunk/server/data: data-api/src/main/java/org/apache/james/rrt/lib/ data-library/src/main/java/org/apache/james/rrt/lib/ data-library/src/test/java/org/apache/

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:48:06 2015
New Revision: 1711990

URL: http://svn.apache.org/viewvc?rev=1711990=rev
Log:
JAMES-1595 Mapping now have a getType method

Modified:

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java?rev=1711990=1711989=1711990=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
 Mon Nov  2 13:48:06 2015
@@ -23,6 +23,10 @@ package org.apache.james.rrt.lib;
 
 public interface Mapping {
 
+enum Type { Regex, Domain, Error, Address };
+
+Type getType();
+
 String asString();
 
 boolean hasDomain();

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java?rev=1711990=1711989=1711990=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 Mon Nov  2 13:48:06 2015
@@ -20,6 +20,8 @@
 
 package org.apache.james.rrt.lib;
 
+import org.apache.james.rrt.api.RecipientRewriteTable;
+
 import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 
@@ -33,6 +35,7 @@ public class MappingImpl implements Mapp
 private final String mapping;
 
 public MappingImpl(String mapping) {
+Preconditions.checkNotNull(mapping);
 this.mapping = mapping;
 }
 
@@ -53,6 +56,19 @@ public class MappingImpl implements Mapp
 }
 
 @Override
+public Type getType() {
+if (mapping.startsWith(RecipientRewriteTable.ALIASDOMAIN_PREFIX)) {
+return Type.Domain;
+} else if (mapping.startsWith(RecipientRewriteTable.REGEX_PREFIX)) {
+return Type.Regex;
+} else if (mapping.startsWith(RecipientRewriteTable.ERROR_PREFIX)) {
+return Type.Error;
+} else {
+return Type.Address;
+}
+}
+
+@Override
 public boolean equals(Object other) {
 if (other instanceof MappingImpl) {
 MappingImpl otherMapping = (MappingImpl) other;

Modified: 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java?rev=1711990=1711989=1711990=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
 Mon Nov  2 13:48:06 2015
@@ -20,12 +20,18 @@
 
 package org.apache.james.rrt.lib;
 
+import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.junit.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class MappingImplTest {
 
+@Test(expected=NullPointerException.class)
+public void factoryMethodShouldThrowOnNull() {
+assertThat(MappingImpl.of(null));
+}
+
 @Test
 public void hasDomainshouldReturnTrueWhenMappingContainAtMark() {
 assertThat(MappingImpl.of("a@b").hasDomain()).isTrue();
@@ -66,4 +72,28 @@ public class MappingImplTest {
 
assertThat(MappingImpl.of("abc").appendDomain("")).isEqualTo(MappingImpl.of("abc@"));
 }
 
+@Test
+public void getTypeShouldReturnAddressWhenNoPrefix() {
+
assertThat(MappingImpl.of("abc").getType()).isEqualTo(Mapping.Type.Address);
+}
+
+@Test
+public void getTypeShouldReturnAddressWhenEmpty() {
+
assertThat(MappingImpl.of("").getType()).isEqualTo(Mapping.Type.Address);
+}
+
+@Test
+public void getTypeShouldReturnRegexWhenRegexPrefix() {
+assertThat(MappingImpl.of(RecipientRewriteTable.REGEX_PREFIX + 
"abc").getType()).isEqualTo(Mapping.Type.Regex);
+}
+
+@Test
+public void getTypeS

svn commit: r1711999 - in /james/project/trunk/server/data: data-file/src/test/java/org/apache/james/rrt/file/ data-hbase/src/test/java/org/apache/james/rrt/hbase/ data-jdbc/src/test/java/org/apache/j

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:49:53 2015
New Revision: 1711999

URL: http://svn.apache.org/viewvc?rev=1711999=rev
Log:
JAMES-1597 override wildcard mapping by user mapping

Modified:

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java

james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java

james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java

james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java

james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java?rev=1711999=1711998=1711999=diff
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 Mon Nov  2 13:49:53 2015
@@ -28,8 +28,7 @@ import cucumber.api.junit.Cucumber;
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" },
-tags = { "~@ignore" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" }
 )
 public class RewriteTablesTest {
 }

Modified: 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java?rev=1711999=1711998=1711999=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
 Mon Nov  2 13:49:53 2015
@@ -26,8 +26,7 @@ import cucumber.api.junit.Cucumber;
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.hbase" },
-tags = { "~@ignore" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.hbase" }
 )
 public class RewriteTablesTest {
 }

Modified: 
james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java?rev=1711999=1711998=1711999=diff
==
--- 
james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
 Mon Nov  2 13:49:53 2015
@@ -26,8 +26,7 @@ import cucumber.api.junit.Cucumber;
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jdbc" },
-tags = { "~@ignore" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jdbc" }
 )
 public class RewriteTablesTest {
 }

Modified: 
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java?rev=1711999=1711998=1711999=diff
==
--- 
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
 Mon Nov  2 13:49:53 2015
@@ -77,11 +77,19 @@ public class JPARecipientRewriteTable ex
  *  java.lang.String)
  */
 protected String mapAddressInternal(String user, String domain) throws 
RecipientRewrit

svn commit: r1711998 - /james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:49:36 2015
New Revision: 1711998

URL: http://svn.apache.org/viewvc?rev=1711998=rev
Log:
JAMES-1599 HBase rewrite table implementation works now

Modified:

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java

Modified: 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java?rev=1711998=1711997=1711998=diff
==
--- 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
 Mon Nov  2 13:49:36 2015
@@ -18,13 +18,11 @@
  /
 package org.apache.james.rrt.hbase;
 
-import org.junit.Ignore;
 import org.junit.runner.RunWith;
 
 import cucumber.api.CucumberOptions;
 import cucumber.api.junit.Cucumber;
 
-@Ignore("getAllMappings doesn't return correct values which breaks the 
tearDown behaviour")
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },



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



svn commit: r1712009 - in /james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib: MappingImpl.java MappingsImpl.java

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:16:06 2015
New Revision: 1712009

URL: http://svn.apache.org/viewvc?rev=1712009=rev
Log:
JAMES-1629 MappingImpl & MappingsImpl should be serializable

   Contributed by Antoine Duprat

Modified:

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java?rev=1712009=1712008=1712009=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
 Mon Nov  2 14:16:06 2015
@@ -20,13 +20,17 @@
 
 package org.apache.james.rrt.lib;
 
+import java.io.Serializable;
+
 import org.apache.james.rrt.api.RecipientRewriteTable;
 
 import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 
 
-public class MappingImpl implements Mapping {
+public class MappingImpl implements Mapping, Serializable {
+
+private static final long serialVersionUID = 1L;
 
 private static final String ADDRESS_PREFIX = "";
 

Modified: 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1712009=1712008=1712009=diff
==
--- 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 (original)
+++ 
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 Mon Nov  2 14:16:06 2015
@@ -20,6 +20,7 @@
 
 package org.apache.james.rrt.lib;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -39,7 +40,9 @@ import com.google.common.collect.Immutab
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 
-public class MappingsImpl implements Mappings {
+public class MappingsImpl implements Mappings, Serializable {
+
+private static final long serialVersionUID = 1L;
 
 public static MappingsImpl empty() {
 return builder().build();



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



svn commit: r1712007 - in /james/project/trunk/server/data: data-api/ data-api/src/main/java/org/apache/james/rrt/lib/ data-cassandra/src/main/java/org/apache/james/rrt/ data-cassandra/src/main/java/o

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:15:54 2015
New Revision: 1712007

URL: http://svn.apache.org/viewvc?rev=1712007=rev
Log:
JAMES-1629 Cassandra RRT implementation

   Contributed by Antoine Duprat

Added:

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java
  - copied, changed from r1712006, 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/tables/

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/tables/CassandraRecipientRewriteTableTable.java
  - copied, changed from r1712006, 
james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java
Removed:

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java
Modified:
james/project/trunk/server/data/data-api/pom.xml

james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java
james/project/trunk/server/data/data-library/pom.xml

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java

Modified: james/project/trunk/server/data/data-api/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/pom.xml?rev=1712007=1712006=1712007=diff
==
--- james/project/trunk/server/data/data-api/pom.xml (original)
+++ james/project/trunk/server/data/data-api/pom.xml Mon Nov  2 14:15:54 2015
@@ -41,6 +41,10 @@
 apache-mailet-api
 
 
+com.google.guava
+guava
+
+
 ${javax.mail.groupId}
 ${javax.mail.artifactId}
 

Modified: 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1712007=1712006=1712007=diff
==
--- 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 (original)
+++ 
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
 Mon Nov  2 14:15:54 2015
@@ -22,6 +22,8 @@ package org.apache.james.rrt.lib;
 
 import org.apache.james.rrt.lib.Mapping.Type;
 
+import com.google.common.base.Optional;
+
 public interface Mappings extends Iterable {
 
 boolean contains(String mapping);
@@ -43,5 +45,8 @@ public interface Mappings extends Iterab
 Mappings exclude(Type type);
 
 Mapping getError();
-
+
+Optional toOptional();
+
+Mappings union(Mappings mappings);
 }
\ No newline at end of file

Copied: 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java
 (from r1712006, 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java?p2=james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java=james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java=1712006=1712007=1712007=diff
==
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/CassandraRRTModule.java
 (original)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java
 Mon Nov  2 14:15:54 2015
@@ -19,6 +19,8 @@
 
 package org.apache.james.rrt.cassandra;
 
+import static com.datastax.driver.core.DataType.text;
+
 import java.util.Arrays;
 import java.util.List;
 
@@ -26,6 +28,10 @@ import org.apache.james.backends.cassand
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.backends.cassandra.components.CassandraTable

svn commit: r1712010 - in /james/project/trunk: backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml dockerfiles/destination/conf/recipientrewritetable.xml server/app/pom.xml

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:16:14 2015
New Revision: 1712010

URL: http://svn.apache.org/viewvc?rev=1712010=rev
Log:
JAMES-1629 Bind Cassandra RecipientRewriteTable module in spring configuration

   Contributed by Antoine Duprat

Modified:

james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml
james/project/trunk/server/app/pom.xml

Modified: 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml?rev=1712010=1712009=1712010=diff
==
--- 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 (original)
+++ 
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
 Mon Nov  2 14:16:14 2015
@@ -43,10 +43,19 @@
   class="org.apache.james.mailbox.cassandra.CassandraMailboxModule"
   lazy-init="true"/>
 
+
+
 
-
+
+
+
+
+
+
 
 
 http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml?rev=1712010=1712009=1712010=diff
==
--- james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml 
(original)
+++ james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml 
Mon Nov  2 14:16:14 2015
@@ -19,7 +19,7 @@
  -->
 
 
-
+
   true
   10
 

Modified: james/project/trunk/server/app/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/app/pom.xml?rev=1712010=1712009=1712010=diff
==
--- james/project/trunk/server/app/pom.xml (original)
+++ james/project/trunk/server/app/pom.xml Mon Nov  2 14:16:14 2015
@@ -465,6 +465,11 @@
 
 
 org.apache.james
+james-server-data-cassandra
+runtime
+
+
+org.apache.james
 james-server-data-file
 runtime
 



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



svn commit: r1712008 - /james/project/trunk/server/data/data-hbase/pom.xml

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:16:00 2015
New Revision: 1712008

URL: http://svn.apache.org/viewvc?rev=1712008=rev
Log:
JAMES-1629 Fix bad scope

   Contributed by Antoine Duprat

Modified:
james/project/trunk/server/data/data-hbase/pom.xml

Modified: james/project/trunk/server/data/data-hbase/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/pom.xml?rev=1712008=1712007=1712008=diff
==
--- james/project/trunk/server/data/data-hbase/pom.xml (original)
+++ james/project/trunk/server/data/data-hbase/pom.xml Mon Nov  2 14:16:00 2015
@@ -98,12 +98,6 @@
 
 
 
-com.google.guava
-guava
-test
-13.0
-
-
 info.cukes
 cucumber-java
 test
@@ -119,6 +113,11 @@
 test
 
 
+com.google.guava
+guava
+13.0
+
+
 junit
 junit
 test



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



svn commit: r1712017 - in /james/project/trunk: backends-common/cassandra/pom.xml mailbox/pom.xml server/data/data-cassandra/pom.xml

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 14:45:09 2015
New Revision: 1712017

URL: http://svn.apache.org/viewvc?rev=1712017=rev
Log:
JAMES-1586 Upgrade cassandra-driver-core version

   Contributed by Antoine Duprat

Modified:
james/project/trunk/backends-common/cassandra/pom.xml
james/project/trunk/mailbox/pom.xml
james/project/trunk/server/data/data-cassandra/pom.xml

Modified: james/project/trunk/backends-common/cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/pom.xml?rev=1712017=1712016=1712017=diff
==
--- james/project/trunk/backends-common/cassandra/pom.xml (original)
+++ james/project/trunk/backends-common/cassandra/pom.xml Mon Nov  2 14:45:09 
2015
@@ -129,13 +129,17 @@

com.datastax.cassandra
cassandra-driver-core
-   2.1.7
+   2.1.8


com.google.guava
guava

-
+   
+   commons-lang
+   commons-lang
+   2.6
+   

org.assertj
assertj-core
@@ -144,7 +148,7 @@

org.cassandraunit
cassandra-unit
-   2.0.2.2
+   2.1.9.2
test



Modified: james/project/trunk/mailbox/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/pom.xml?rev=1712017=1712016=1712017=diff
==
--- james/project/trunk/mailbox/pom.xml (original)
+++ james/project/trunk/mailbox/pom.xml Mon Nov  2 14:45:09 2015
@@ -123,8 +123,8 @@
 16.0
 1.7.1
 2.3.3
-2.1.5
-2.0.2.2
+2.1.8
+2.1.9.2
 
1.8.3-SNAPSHOT
 
 

Modified: james/project/trunk/server/data/data-cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/pom.xml?rev=1712017=1712016=1712017=diff
==
--- james/project/trunk/server/data/data-cassandra/pom.xml (original)
+++ james/project/trunk/server/data/data-cassandra/pom.xml Mon Nov  2 14:45:09 
2015
@@ -243,7 +243,7 @@
 
 org.cassandraunit
 cassandra-unit
-2.0.2.2
+2.1.9.2
 test
 
 



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



svn commit: r1712349 - /james/project/trunk/server/container/cli/pom.xml

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:54:27 2015
New Revision: 1712349

URL: http://svn.apache.org/viewvc?rev=1712349=rev
Log:
JAMES-1626 bundle cli into a runnable jar

Modified:
james/project/trunk/server/container/cli/pom.xml

Modified: james/project/trunk/server/container/cli/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cli/pom.xml?rev=1712349=1712348=1712349=diff
==
--- james/project/trunk/server/container/cli/pom.xml (original)
+++ james/project/trunk/server/container/cli/pom.xml Tue Nov  3 16:54:27 2015
@@ -93,6 +93,36 @@
 maven-bundle-plugin
 true
 
+
+org.apache.maven.plugins
+maven-dependency-plugin
+
+
+copy-dependencies
+package
+
+copy-dependencies
+
+
+
${project.build.directory}/${project.build.finalName}.lib
+
+
+
+
+
+org.apache.maven.plugins
+maven-jar-plugin
+
+
+
+true
+
${project.build.finalName}.lib/
+
org.apache.james.cli.ServerCmd
+false
+
+
+
+
 
 
 



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



svn commit: r1712350 [2/2] - in /james/project/trunk: ./ dockerfiles/compilation/java-8/ dockerfiles/run/guice/ dockerfiles/run/guice/destination/ dockerfiles/run/guice/destination/conf/ dockerfiles/r

2015-11-03 Thread matthieu
Added: james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml?rev=1712350=auto
==
--- james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml 
(added)
+++ james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml 
Tue Nov  3 16:54:41 2015
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+smtpserver-global
+0.0.0.0:25
+200
+
+file://conf/keystore
+james72laBalle
+
org.bouncycastle.jce.provider.BouncyCastleProvider
+SunX509
+
+360
+0
+0
+false
+0.0.0.0/0
+true
+0
+true
+JAMES Linagora's SMTP awesome Server
+
+
+
+
+
+
+smtpserver-TLS
+0.0.0.0:465
+200
+
+file://conf/keystore
+james72laBalle
+
org.bouncycastle.jce.provider.BouncyCastleProvider
+SunX509
+
+360
+0
+0
+
+true
+0.0.0.0/0
+
+false
+0
+true
+JAMES Linagora's SMTP awesome Server
+
+
+
+
+
+
+smtpserver-authenticated
+0.0.0.0:587
+200
+
+file://conf/keystore
+james72laBalle
+
org.bouncycastle.jce.provider.BouncyCastleProvider
+SunX509
+
+360
+0
+0
+
+true
+0.0.0.0/0
+
+false
+0
+true
+JAMES Linagora's SMTP awesome Server
+
+
+
+
+
+
+
+

Added: 
james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml?rev=1712350=auto
==
--- james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml 
(added)
+++ james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml 
Tue Nov  3 16:54:41 2015
@@ -0,0 +1,931 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+${table}
+
+
+SELECT username, pwdHash, pwdAlgorithm, 
useForwarding,
+forwardDestination, useAlias, alias
+FROM ${table}
+ORDER BY username
+
+
+
+
+
+SELECT username, pwdHash, pwdAlgorithm, useForwarding,
+forwardDestination, useAlias, alias
+FROM ${table}
+WHERE lower(username) = ?
+
+
+
+SELECT username, pwdHash, pwdAlgorithm, useForwarding,
+forwardDestination, useAlias, alias
+FROM ${table}
+WHERE username = ?
+
+
+
+INSERT INTO ${table}
+(username, pwdHash, pwdAlgorithm, useForwarding, 
forwardDestination, useAlias, alias)
+VALUES (?,?,?,?,?,?,?)
+
+
+
+UPDATE ${table} SET
+pwdHash = ?, pwdAlgorithm = ?, useForwarding = ?, 
forwardDestination = ?, useAlias = ?, alias = ?
+WHERE username = ?
+
+
+
+DELETE FROM ${table} WHERE username = ?
+
+
+CREATE CACHED TABLE ${table} 
(username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), 
useForwarding INTEGER, forwardDestination VARCHAR(255), useAlias INTEGER, alias 
VARCHAR(255), PRIMARY KEY(username))
+CREATE TABLE ${table} (username VARCHAR(64) 
NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding 
SMALLINT, forwardDestination VARCHAR(255), useAlias SMALLINT, alias 
VARCHAR(255), PRIMARY KEY(username))
+
+
+
+
+${table}
+
+
+SELECT username, pwdHash, pwdAlgorithm
+FROM ${table}
+
+
+
+INSERT INTO ${table}
+(username, pwdHash, pwdAlgorithm)
+VALUES (?,?,?)
+
+
+
+UPDATE ${table} SET
+pwdHash = ?, pwdAlgorithm = ?
+WHERE username = ?
+
+
+
+DELETE FROM ${table} WHERE username = ?
+
+
+CREATE CACHED TABLE ${table} 
(username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), 
PRIMARY KEY(username))
+CREATE TABLE ${table} (username VARCHAR(64) 
NOT NULL, pwdHash 

svn commit: r1712350 [1/2] - in /james/project/trunk: ./ dockerfiles/compilation/java-8/ dockerfiles/run/guice/ dockerfiles/run/guice/destination/ dockerfiles/run/guice/destination/conf/ dockerfiles/r

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:54:41 2015
New Revision: 1712350

URL: http://svn.apache.org/viewvc?rev=1712350=rev
Log:
JAMES-1626 cassandra-guice docker support

Added:
james/project/trunk/dockerfiles/run/guice/
james/project/trunk/dockerfiles/run/guice/Dockerfile
james/project/trunk/dockerfiles/run/guice/destination/
james/project/trunk/dockerfiles/run/guice/destination/conf/
james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/

james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/jpa-mappings-template.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/persistence-template.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/persistence.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/cassandra.properties
james/project/trunk/dockerfiles/run/guice/destination/conf/dnsservice.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/domainlist.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/elasticsearch.properties
james/project/trunk/dockerfiles/run/guice/destination/conf/fetchmail.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/imapserver.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/indexer.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/james-database.properties

james/project/trunk/dockerfiles/run/guice/destination/conf/jcr-repository.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/jmx.properties
james/project/trunk/dockerfiles/run/guice/destination/conf/lib/
james/project/trunk/dockerfiles/run/guice/destination/conf/lib/README.txt
james/project/trunk/dockerfiles/run/guice/destination/conf/lmtpserver.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/log4j.properties

james/project/trunk/dockerfiles/run/guice/destination/conf/mailetcontainer.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/mailrepositorystore.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/managesieve.help.txt
james/project/trunk/dockerfiles/run/guice/destination/conf/pop3server.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/quota.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/recipientrewritetable.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml
james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml

james/project/trunk/dockerfiles/run/guice/destination/conf/usersrepository.xml
Modified:
james/project/trunk/README.txt
james/project/trunk/dockerfiles/compilation/java-8/compile.sh

Modified: james/project/trunk/README.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/README.txt?rev=1712350=1712349=1712350=diff
==
--- james/project/trunk/README.txt (original)
+++ james/project/trunk/README.txt Tue Nov  3 16:54:41 2015
@@ -68,7 +68,6 @@ as it is needed by the container that wi
 - SHA1 (optional): is the given git SHA1 of the james-project repository to 
build or trunk if none.
 - -s option: given tests will not be played while building. Not specifying 
means play tests.
 
-
 * Java 8
 First step, you have to build the Docker image
 $ docker build -t james/project dockerfiles/compilation/java-8
@@ -160,6 +159,16 @@ Where :
 Beware : you will have concurrency issues if multiple containers are running 
on this single volume.
 
 
+How to run James in Docker using guice container
+
+
+You have to follow above documentation and replace spring by guice in paths.
+
+Once you run the container, you have to use the following command to launch 
the cli :
+
+$ docker exec james_run java -jar /root/james-cli.jar -h localhost 
+
+
 Running deployement Tests
 =
 

Modified: james/project/trunk/dockerfiles/compilation/java-8/compile.sh
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-8/compile.sh?rev=1712350=1712349=1712350=diff
==
--- james/project/trunk/dockerfiles/compilation/java-8/compile.sh (original)
+++ james/project/trunk/dockerfiles/compilation/java-8/compile.sh Tue Nov  3 
16:54:41 2015
@@ -53,4 +53,8 @@ fi
 
 if [ $? -eq 0 ]; then
cp server/app/target/james-server-app-*-app.zip $DESTINATION
+   cp 
server/container/cassandra-guice/target/james-server-cassandra-guice-*-SNAPSHOT.jar
 $DESTINATION
+   cp -r 
server/container/cassandra-guice/target/james-server-cassandra-guice-*-SNAPSHOT.lib
 $DESTINATION
+   cp server/container/cli/target/james-server-cli-*.jar $DESTINATION
+   cp -r server/container/cli/target/james-server-cli-*.lib $DESTINATION
 fi

Added: james/project/trunk/dockerfiles/run/guice/Dockerfile
URL: 
http://svn.apache.org/viewvc

svn commit: r1712585 - in /james/project/trunk/server/data: data-api/src/test/ data-cassandra/src/test/java/org/apache/james/user/cassandra/ data-file/src/test/java/org/apache/james/user/file/ data-hb

2015-11-04 Thread matthieu
Author: matthieu
Date: Wed Nov  4 16:37:29 2015
New Revision: 1712585

URL: http://svn.apache.org/viewvc?rev=1712585=rev
Log:
JAMES-1636 take supportVirtualHosting into account in UserRepository testsuite

Added:

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/api/

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/api/mock/

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/domainlist/api/mock/SimpleDomainList.java
Removed:
james/project/trunk/server/data/data-api/src/test/
Modified:

james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java

james/project/trunk/server/data/data-jcr/src/test/java/org/apache/james/user/jcr/JcrUserRepositoryTest.java

james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/DefaultUsersJdbcRepositoryTest.java

james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/JamesUsersJdbcRepositoryTest.java

james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/JpaUsersRepositoryTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/user/lib/AbstractUsersRepositoryTest.java

Modified: 
james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java?rev=1712585=1712584=1712585=diff
==
--- 
james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java
 (original)
+++ 
james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java
 Wed Nov  4 16:37:29 2015
@@ -20,7 +20,7 @@
 package org.apache.james.user.cassandra;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.user.api.UsersRepository;
+import org.apache.james.user.lib.AbstractUsersRepository;
 import org.apache.james.user.lib.AbstractUsersRepositoryTest;
 import org.junit.After;
 
@@ -34,7 +34,7 @@ public class CassandraUsersRepositoryTes
 }
 
 @Override
-protected UsersRepository getUsersRepository() throws Exception {
+protected AbstractUsersRepository getUsersRepository() throws Exception {
 cassandra = CassandraCluster.create(new 
CassandraUsersRepositoryModule());
 CassandraUsersRepository cassandraUsersRepository = new 
CassandraUsersRepository();
 cassandraUsersRepository.setSession(cassandra.getConf());

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java?rev=1712585=1712584=1712585=diff
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
 Wed Nov  4 16:37:29 2015
@@ -30,8 +30,8 @@ import org.apache.commons.configuration.
 import org.apache.commons.io.FileUtils;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.lifecycle.api.LifecycleUtil;
-import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.james.user.lib.AbstractUsersRepository;
 import org.apache.james.user.lib.AbstractUsersRepositoryTest;
 import org.junit.After;
 import org.junit.Before;
@@ -68,7 +68,7 @@ public class UsersFileRepositoryTest ext
  * @throws Exception
  */
 @Override
-protected UsersRepository getUsersRepository() throws Exception {
+protected AbstractUsersRepository getUsersRepository() throws Exception {
 FileSystem fs = new FileSystem() {
 
 @Override

Modified: 
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java?rev=1712585=1712584=1712585=diff
==
--- 
james/project/trunk/server/data/data

svn commit: r1711964 - in /james/project/trunk/server: ./ data/data-file/ data/data-file/src/test/java/org/apache/james/rrt/file/ data/data-hbase/ data/data-hbase/src/test/java/org/apache/james/rrt/hb

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:36:34 2015
New Revision: 1711964

URL: http://svn.apache.org/viewvc?rev=1711964=rev
Log:
JAMES-1594 Introduce Cucumber tests on rewrite tables on each backend

Added:

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java

james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java

james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java

james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java

james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java

james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java

james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
james/project/trunk/server/data/data-library/src/test/resources/
james/project/trunk/server/data/data-library/src/test/resources/cucumber/

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
Modified:
james/project/trunk/server/data/data-file/pom.xml
james/project/trunk/server/data/data-hbase/pom.xml
james/project/trunk/server/data/data-jdbc/pom.xml
james/project/trunk/server/data/data-jpa/pom.xml
james/project/trunk/server/data/data-library/pom.xml
james/project/trunk/server/pom.xml

Modified: james/project/trunk/server/data/data-file/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/pom.xml?rev=1711964=1711963=1711964=diff
==
--- james/project/trunk/server/data/data-file/pom.xml (original)
+++ james/project/trunk/server/data/data-file/pom.xml Mon Nov  2 13:36:34 2015
@@ -86,6 +86,16 @@
 
 
 
+info.cukes
+cucumber-java
+test
+
+
+info.cukes
+cucumber-junit
+test
+
+
 junit
 junit
 test

Added: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java?rev=1711964=auto
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 (added)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 Mon Nov  2 13:36:34 2015
@@ -0,0 +1,32 @@
+/
+ * 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.rrt.file;
+
+import org.junit.runner.RunWith;
+
+import cucumber.api.CucumberOptions;
+import cucumber.api.junit.Cucumber;
+
+@RunWith(Cucumber.class)
+@CucumberOptions(
+features = { "classpath:cucumber/" },
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" }
+)
+public class RewriteTablesTest {
+}

Added: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java?rev=1711964=auto
==

svn commit: r1712001 - /james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:50:21 2015
New Revision: 1712001

URL: http://svn.apache.org/viewvc?rev=1712001=rev
Log:
JAMES-1595 add mixed mappings test

Modified:

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1712001=1712000=1712001=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 Mon Nov  2 13:50:21 2015
@@ -170,6 +170,14 @@ Feature: Rewrite Tables tests
 When alias domain mapping "aliasdomain" for "localhost" domain is removed
 Then mappings for user "test" at domain "aliasdomain" should be empty
 
+# Mixed mapping
+
+  Scenario: mixed mapping should work
+Given store "test2@localhost" address mapping for user "test" at domain 
"localhost"
+And store "(.*)@localhost" regexp mapping for user "test" at domain 
"localhost"
+And store "aliasdomain" alias domain mapping for domain "localhost"
+Then mappings for user "test" at domain "localhost" should contains only 
"test2@localhost, regex:(.*)@localhost"
+
 # Recursive mapping
 
   Scenario: direct mapping should be returned when recursive mapping is disable



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



svn commit: r1712000 - in /james/project/trunk/server/data: data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java data-library/src/test/resources/cucumber/rewrite_tables.feature

2015-11-02 Thread matthieu
Author: matthieu
Date: Mon Nov  2 13:50:07 2015
New Revision: 1712000

URL: http://svn.apache.org/viewvc?rev=1712000=rev
Log:
JAMES-1598 XML rewrite table can execute read only tests

Modified:

james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java

james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature

Modified: 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java?rev=1712000=1711999=1712000=diff
==
--- 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 (original)
+++ 
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
 Mon Nov  2 13:50:07 2015
@@ -18,17 +18,16 @@
  /
 package org.apache.james.rrt.file;
 
-import org.junit.Ignore;
 import org.junit.runner.RunWith;
 
 import cucumber.api.CucumberOptions;
 import cucumber.api.junit.Cucumber;
 
-@Ignore("addMappingInternal not implemented")
 @RunWith(Cucumber.class)
 @CucumberOptions(
 features = { "classpath:cucumber/" },
-glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" }
+glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" },
+tags = { "@readonly" }
 )
 public class RewriteTablesTest {
 }

Modified: 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1712000=1711999=1712000=diff
==
--- 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 (original)
+++ 
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
 Mon Nov  2 13:50:07 2015
@@ -1,5 +1,6 @@
 Feature: Rewrite Tables tests
 
+  @readonly
   Scenario: rewrite tables should be empty when none defined
 Then mappings should be empty
 
@@ -25,6 +26,7 @@ Feature: Rewrite Tables tests
 When user "test" at domain "localhost" removes a regexp mapping "(.+)@test"
 Then mappings for user "test" at domain "localhost" should contains only 
"regex:(.*)@localhost"
 
+  @readonly
   Scenario: storing an invalid regexp mapping should not work
 When store an invalid ".*):" regexp mapping for user "test" at domain 
"localhost"
 Then a "RecipientRewriteTableException" exception should have been thrown



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



svn commit: r1712322 - /james/project/trunk/pom.xml

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:40:39 2015
New Revision: 1712322

URL: http://svn.apache.org/viewvc?rev=1712322=rev
Log:
JAMES-1626 Update maven-bundle-plugin to 2.4.0

Modified:
james/project/trunk/pom.xml

Modified: james/project/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/pom.xml?rev=1712322=1712321=1712322=diff
==
--- james/project/trunk/pom.xml (original)
+++ james/project/trunk/pom.xml Tue Nov  3 16:40:39 2015
@@ -567,7 +567,7 @@
 
 org.apache.felix
 maven-bundle-plugin
-2.3.7
+2.4.0
 true
 
 



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



svn commit: r1712324 - in /james/project/trunk/mailbox: cassandra/src/main/java/org/apache/james/mailbox/cassandra/ elasticsearch/ elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ e

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:41:20 2015
New Revision: 1712324

URL: http://svn.apache.org/viewvc?rev=1712324=rev
Log:
JAMES-1626 Use javax.inject in ElasticSearch mailbox

Modified:

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
james/project/trunk/mailbox/elasticsearch/pom.xml

james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java

james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java

james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java

james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/QueryConverter.java

james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java

Modified: 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java?rev=1712324=1712323=1712324=diff
==
--- 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
 (original)
+++ 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
 Tue Nov  3 16:41:20 2015
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.store.St
 import org.apache.james.mailbox.store.StoreMessageManager;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
 
 /**
  * Cassandra implementation of {@link StoreMailboxManager}
@@ -53,6 +54,12 @@ public class CassandraMailboxManager ext
 }
 
 @Override
+@Inject
+public void setMessageSearchIndex(MessageSearchIndex index) {
+super.setMessageSearchIndex(index);
+}
+
+@Override
 protected Mailbox doCreateMailbox(MailboxPath mailboxPath, 
MailboxSession session) throws MailboxException {
 SimpleMailbox cassandraMailbox = new 
SimpleMailbox<>(mailboxPath, randomUidValidity());
 cassandraMailbox.setACL(SimpleMailboxACL.EMPTY);

Modified: james/project/trunk/mailbox/elasticsearch/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/elasticsearch/pom.xml?rev=1712324=1712323=1712324=diff
==
--- james/project/trunk/mailbox/elasticsearch/pom.xml (original)
+++ james/project/trunk/mailbox/elasticsearch/pom.xml Tue Nov  3 16:41:20 2015
@@ -202,6 +202,10 @@
 1.6.3
 
 
+javax.inject
+javax.inject
+
+
 ${javax.mail.groupId}
 ${javax.mail.artifactId}
 

Modified: 
james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java?rev=1712324=1712323=1712324=diff
==
--- 
james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java
 (original)
+++ 
james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java
 Tue Nov  3 16:41:20 2015
@@ -27,6 +27,8 @@ import org.elasticsearch.index.query.Que
 
 import com.google.common.base.Preconditions;
 
+import javax.inject.Inject;
+
 public class ElasticSearchIndexer {
 
 public static final String MAILBOX_INDEX = "mailbox";
@@ -34,6 +36,7 @@ public class ElasticSearchIndexer {
 
 private final ClientProvider clientProvider;
 
+@Inject
 public ElasticSearchIndexer(ClientProvider clientProvider) {
 this.clientProvider = clientProvider;
 }

Modified: 
james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java?rev=1712324=1712323=1712324=diff
==
--- 
james/project/trunk/mailbox/elasticsearch/src/main

svn commit: r1712323 - in /james/project/trunk/mailbox: cassandra/ cassandra/src/main/java/org/apache/james/mailbox/cassandra/ cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/ store/ s

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:41:05 2015
New Revision: 1712323

URL: http://svn.apache.org/viewvc?rev=1712323=rev
Log:
JAMES-1626 Use javax.inject in Cassandra mailbox

Modified:
james/project/trunk/mailbox/cassandra/pom.xml

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java

james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java
james/project/trunk/mailbox/store/pom.xml

james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java

Modified: james/project/trunk/mailbox/cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/pom.xml?rev=1712323=1712322=1712323=diff
==
--- james/project/trunk/mailbox/cassandra/pom.xml (original)
+++ james/project/trunk/mailbox/cassandra/pom.xml Tue Nov  3 16:41:05 2015
@@ -152,6 +152,10 @@
 16.0
 
 
+javax.inject
+javax.inject
+
+
 ${javax.mail.groupId}
 ${javax.mail.artifactId}
 

Modified: 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java?rev=1712323=1712322=1712323=diff
==
--- 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
 (original)
+++ 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
 Tue Nov  3 16:41:05 2015
@@ -19,6 +19,9 @@
 
 package org.apache.james.mailbox.cassandra;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
 import org.apache.james.mailbox.MailboxPathLocker;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
@@ -35,9 +38,11 @@ import org.apache.james.mailbox.store.ma
 /**
  * Cassandra implementation of {@link StoreMailboxManager}
  */
+@Singleton
 public class CassandraMailboxManager extends StoreMailboxManager {
 private MailboxPathLocker locker;
 
+@Inject
 public CassandraMailboxManager(CassandraMailboxSessionMapperFactory 
mapperFactory, Authenticator authenticator, final MailboxPathLocker locker) {
 super(mapperFactory,
 authenticator,

Modified: 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java?rev=1712323=1712322=1712323=diff
==
--- 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
 (original)
+++ 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
 Tue Nov  3 16:41:05 2015
@@ -20,6 +20,7 @@
 package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
+import javax.inject.Inject;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.cassandra.mail.CassandraMailboxMapper;
 import org.apache.james.mailbox.cassandra.mail.CassandraMessageMapper;
@@ -45,6 +46,7 @@ public class CassandraMailboxSessionMapp
 private final CassandraTypesProvider typesProvider;
 private int maxRetry;
 
+@Inject
 public CassandraMailboxSessionMapperFactory(UidProvider 
uidProvider, ModSeqProvider modSeqProvider, Session session, 
CassandraTypesProvider typesProvider) {
 this.uidProvider = uidProvider;
 this.modSeqProvider = modSeqProvider;

Modified: 
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java?rev=1712323=1712322=1712323=diff

svn commit: r1712325 [2/2] - in /james/project/trunk: protocols/ protocols/api/ protocols/api/src/main/java/org/apache/james/protocols/api/handler/ protocols/imap/src/main/java/org/apache/james/protoc

2015-11-03 Thread matthieu
Modified: 
james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java?rev=1712325=1712324=1712325=diff
==
--- 
james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
 (original)
+++ 
james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
 Tue Nov  3 16:42:48 2015
@@ -27,6 +27,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.net.smtp.SMTPClient;
 import org.apache.commons.net.smtp.SMTPReply;
 import org.apache.james.protocols.api.Protocol;
@@ -442,6 +444,16 @@ public abstract class AbstractSMTPServer
 public void testHeloHookPermanentError() throws Exception {
 HeloHook hook = new HeloHook() {
 
+@Override
+public void init(Configuration config) throws 
ConfigurationException {
+
+}
+
+@Override
+public void destroy() {
+
+}
+
 public HookResult doHelo(SMTPSession session, String helo) {
 return new HookResult(HookReturnCode.DENY);
 }
@@ -481,6 +493,16 @@ public abstract class AbstractSMTPServer
 public void testHeloHookTempraryError() throws Exception {
 HeloHook hook = new HeloHook() {
 
+@Override
+public void init(Configuration config) throws 
ConfigurationException {
+
+}
+
+@Override
+public void destroy() {
+
+}
+
 public HookResult doHelo(SMTPSession session, String helo) {
 return new HookResult(HookReturnCode.DENYSOFT);
 }
@@ -519,6 +541,16 @@ public abstract class AbstractSMTPServer
 public void testMailHookPermanentError() throws Exception {
 MailHook hook = new MailHook() {
 
+@Override
+public void init(Configuration config) throws 
ConfigurationException {
+
+}
+
+@Override
+public void destroy() {
+
+}
+
 public HookResult doMail(SMTPSession session, MailAddress sender) {
 return new HookResult(HookReturnCode.DENY);
 }
@@ -560,6 +592,16 @@ public abstract class AbstractSMTPServer
 public void testMailHookTemporaryError() throws Exception {
 MailHook hook = new MailHook() {
 
+@Override
+public void init(Configuration config) throws 
ConfigurationException {
+
+}
+
+@Override
+public void destroy() {
+
+}
+
 public HookResult doMail(SMTPSession session, MailAddress sender) {
 return new HookResult(HookReturnCode.DENYSOFT);
 }
@@ -602,6 +644,16 @@ public abstract class AbstractSMTPServer
 public void testRcptHookPermanentError() throws Exception {
 RcptHook hook = new RcptHook() {
 
+@Override
+public void init(Configuration config) throws 
ConfigurationException {
+
+}
+
+@Override
+public void destroy() {
+
+}
+
 public HookResult doRcpt(SMTPSession session, MailAddress sender, 
MailAddress rcpt) {
 if (RCPT1.equals(rcpt.toString())) {
 return new HookResult(HookReturnCode.DENY);
@@ -657,6 +709,16 @@ public abstract class AbstractSMTPServer
 public void testRcptHookTemporaryError() throws Exception {
 RcptHook hook = new RcptHook() {
 
+@Override
+public void init(Configuration config) throws 
ConfigurationException {
+
+}
+
+@Override
+public void destroy() {
+
+}
+
 public HookResult doRcpt(SMTPSession session, MailAddress sender, 
MailAddress rcpt) {
 if (RCPT1.equals(rcpt.toString())) {
 return new HookResult(HookReturnCode.DENYSOFT);
@@ -749,6 +811,16 @@ public abstract class AbstractSMTPServer
 
 MessageHook hook = new MessageHook() {
 
+@Override
+public void init(Configuration config) throws 
ConfigurationException {
+
+}
+
+@Override
+public void destroy() {
+
+}
+
 public HookResult onMessage(SMTPSession session, MailEnvelope 
mail) {
 return new HookResult(HookReturnCode.DENY);
 }
@@ -803,7 +875,16 @@ public abstract class AbstractSMTPServer
 
 MessageHook hook = new MessageHook() {
 
-
+@Override
+

svn commit: r1712325 [1/2] - in /james/project/trunk: protocols/ protocols/api/ protocols/api/src/main/java/org/apache/james/protocols/api/handler/ protocols/imap/src/main/java/org/apache/james/protoc

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:42:48 2015
New Revision: 1712325

URL: http://svn.apache.org/viewvc?rev=1712325=rev
Log:
JAMES-1626 All ProtocolHandler should be lifeCycle aware

   If fixes a longstanding error in SMTPServerTest that
   return code 554 on DNS blacklist test

Removed:

james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/LifecycleAwareProtocolHandler.java

james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/lifecycle/InitializingLifecycleAwareProtocolHandler.java
Modified:
james/project/trunk/protocols/api/pom.xml

james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java

james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java

james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java

james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandler.java

james/project/trunk/protocols/imap/src/main/java/org/apache/james/protocols/imap/core/IMAPCommandDispatcher.java

james/project/trunk/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
james/project/trunk/protocols/pom.xml

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/CapaCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UnknownCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java

james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ExpnCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/HelpCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/NoopCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/QuitCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RsetCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/VrfyCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/WelcomeMessageHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java

james/project/trunk/protocols/smtp/src/main/java/org/apache/james

svn commit: r1712326 - in /james/project/trunk: mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ serv

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:45:35 2015
New Revision: 1712326

URL: http://svn.apache.org/viewvc?rev=1712326=rev
Log:
JAMES-1626 cleanup injection annotations to conform to javax.inject usage

Removed unneeded @Named annotations, @Resource that doesn't belong to
javax.inject and fix some injection usages that only work with Spring

Modified:

james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java

james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagement.java

james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java

james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticator.java

james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java

james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagement.java

james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml

james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java

james/project/trunk/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java

james/project/trunk/server/data/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java

james/project/trunk/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListManagement.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java

james/project/trunk/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java

james/project/trunk/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java

james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java

james/project/trunk/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java

james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java

james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java

james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java

james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractProtocolAsyncServer.java

james/project/trunk/server/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java

james/project/trunk/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java

james/project/trunk/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java

james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AuthRequiredToRelayRcptHook.java

james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMailCmdHandler.java

james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesRcptCmdHandler.java

james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver

svn commit: r1712329 - in /james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james: CassandraJamesServer.java utils/ConfigurationPerformer.java utils/ConfigurationsPerforme

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:47:19 2015
New Revision: 1712329

URL: http://svn.apache.org/viewvc?rev=1712329=rev
Log:
JAMES-1626 ConfigurationPerformer will take care of push configuration to class 
that need it

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java
  - copied, changed from r1712328, 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java
  - copied, changed from r1712328, 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java?rev=1712329=1712328=1712329=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 Tue Nov  3 16:47:19 2015
@@ -18,7 +18,10 @@
  /
 package org.apache.james;
 
+import org.apache.james.utils.ConfigurationsPerformer;
+
 import com.google.inject.Guice;
+import com.google.inject.Injector;
 import com.google.inject.Module;
 
 public class CassandraJamesServer {
@@ -29,8 +32,9 @@ public class CassandraJamesServer {
 this.serverModule = serverModule;
 }
 
-public void start() {
-Guice.createInjector(serverModule);
+public void start() throws Exception {
+Injector injector = Guice.createInjector(serverModule);
+injector.getInstance(ConfigurationsPerformer.class).initModules();
 }
 
 public void stop() {

Copied: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java
 (from r1712328, 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java=1712328=1712329=1712329=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java
 Tue Nov  3 16:47:19 2015
@@ -16,24 +16,12 @@
  * specific language governing permissions and limitations  *
  * under the License.   *
  /
-package org.apache.james;
 
-import com.google.inject.Guice;
-import com.google.inject.Module;
+package org.apache.james.utils;
 
-public class CassandraJamesServer {
 
-private final Module serverModule;
+public interface ConfigurationPerformer {
 
-public CassandraJamesServer(Module serverModule) {
-this.serverModule = serverModule;
-}
-
-public void start() {
-Guice.createInjector(serverModule);
-}
-
-public void stop() {
-}
+void initModule() throws Exception;
 
 }

Copied: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java
 (from r1712328, 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java=1712328=1712329=1712329=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james

svn commit: r1712327 - in /james/project/trunk/server: container/cassandra-guice/ container/cassandra-guice/pom.xml pom.xml

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:46:28 2015
New Revision: 1712327

URL: http://svn.apache.org/viewvc?rev=1712327=rev
Log:
JAMES-1626 cassandra-guice project creation

Added:
james/project/trunk/server/container/cassandra-guice/
james/project/trunk/server/container/cassandra-guice/pom.xml
Modified:
james/project/trunk/server/pom.xml

Added: james/project/trunk/server/container/cassandra-guice/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/pom.xml?rev=1712327=auto
==
--- james/project/trunk/server/container/cassandra-guice/pom.xml (added)
+++ james/project/trunk/server/container/cassandra-guice/pom.xml Tue Nov  3 
16:46:28 2015
@@ -0,0 +1,410 @@
+
+
+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/maven-v4_0_0.xsd;>
+
+4.0.0
+
+
+org.apache.james
+james-server
+3.0.0-beta5-SNAPSHOT
+../../pom.xml
+
+
+james-server-cassandra-guice
+bundle
+
+Apache James :: Server :: Cassandra - guice injection
+An advanced email server - Cassandra backend with guice 
injection
+
+
+
+
+org.apache.felix
+maven-bundle-plugin
+true
+
+
+
+
+
+
+
+disable-build-for-older-jdk
+
+(,1.8)
+
+
+
+
+maven-jar-plugin
+
+
+default-jar
+none
+
+
+jar
+none
+
+
+test-jar
+none
+
+
+
+
+maven-compiler-plugin
+
+
+default-compile
+none
+
+
+default-testCompile
+none
+
+
+
+
+maven-surefire-plugin
+
+
+default-test
+none
+
+
+
+
+maven-source-plugin
+
+
+attach-sources
+none
+
+
+
+
+maven-install-plugin
+
+
+default-install
+none
+
+
+
+
+maven-resources-plugin
+
+
+default-resources
+none
+
+
+default-testResources
+none
+
+
+
+
+maven-site-plugin
+
+
+attach-descriptor
+none
+
+
+
+
+
+
+
+build-for-jdk-8
+
+[1.8,)
+
+
+
+
+maven-assembly-plugin
+
+
+
+
fully.qualified.MainClass
+
+
+
+
jar-with-dependencies
+
+
+
+
+org.apache.maven.plugins
+maven-compiler-plugin
+
+  

svn commit: r1712328 - in /james/project/trunk: backends-common/ backends-common/cassandra/ backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/ server/ server/container/c

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:46:53 2015
New Revision: 1712328

URL: http://svn.apache.org/viewvc?rev=1712328=rev
Log:
JAMES-1626 bootstrap guice-based application with Cassandra IMAP server

Added:
james/project/trunk/server/container/cassandra-guice/src/
james/project/trunk/server/container/cassandra-guice/src/main/
james/project/trunk/server/container/cassandra-guice/src/main/java/
james/project/trunk/server/container/cassandra-guice/src/main/java/org/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
  - copied, changed from r1712327, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
  - copied, changed from r1712327, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
  - copied, changed from r1712327, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SimpleMessageSearchModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/PropertiesReader.java
james/project/trunk/server/container/cassandra-guice/src/test/
james/project/trunk/server/container/cassandra-guice/src/test/java/
james/project/trunk/server/container/cassandra-guice/src/test/java/org/

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/PropertiesReadTest.java
james/project/trunk/server/container/cassandra-guice/src/test/resources/

james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties

james/project/trunk/server/container/cassandra-guice/src/test/resources/test.properties
Modified:
james/project/trunk/backends-common/cassandra/pom.xml

james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
james/project/trunk/backends-common/pom.xml
james/project/trunk/server/container/cassandra-guice/pom.xml

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java

james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
james/project/trunk/server/pom.xml

Modified: james/project/trunk/backends-common/cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/pom.xml?rev=1712328=1712327=1712328=diff
==
--- james/project/trunk/backends

svn commit: r1712330 - in /james/project/trunk/server: container/cassandra-guice/src/main/java/org/apache/james/ container/cassandra-guice/src/main/java/org/apache/james/modules/server/ protocols/prot

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:47:33 2015
New Revision: 1712330

URL: http://svn.apache.org/viewvc?rev=1712330=rev
Log:
JAMES-1626 Use Onami for lifecycle management (JSR 250 @PreDestroy 
@PostConstruct)

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationPerformerModule.java
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java

james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java?rev=1712330=1712329=1712330=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 Tue Nov  3 16:47:33 2015
@@ -19,25 +19,30 @@
 package org.apache.james;
 
 import org.apache.james.utils.ConfigurationsPerformer;
+import org.apache.onami.lifecycle.jsr250.PreDestroyModule;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.Module;
+import com.google.inject.util.Modules;
 
 public class CassandraJamesServer {
 
 private final Module serverModule;
+private final PreDestroyModule preDestroyModule;
 
 public CassandraJamesServer(Module serverModule) {
 this.serverModule = serverModule;
+this.preDestroyModule = new PreDestroyModule();
 }
 
 public void start() throws Exception {
-Injector injector = Guice.createInjector(serverModule);
+Injector injector = Guice.createInjector(Modules.combine(serverModule, 
preDestroyModule));
 injector.getInstance(ConfigurationsPerformer.class).initModules();
 }
 
 public void stop() {
+preDestroyModule.getStager().stage();
 }
 
 }

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712330=1712329=1712330=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:47:33 2015
@@ -24,6 +24,7 @@ import org.apache.james.modules.data.Cas
 import org.apache.james.modules.data.CassandraUsersRepositoryModule;
 import org.apache.james.modules.mailbox.CassandraMailboxModule;
 import org.apache.james.modules.mailbox.CassandraSessionModule;
+import org.apache.james.modules.server.ConfigurationPerformerModule;
 import org.apache.james.modules.server.DNSServiceModule;
 import org.apache.james.modules.server.SimpleMessageSearchModule;
 
@@ -32,13 +33,15 @@ import com.google.inject.util.Modules;
 
 public class CassandraJamesServerMain {
 
-public static final Module defaultModule = Modules.combine(new 
CassandraMailboxModule(),
-new CassandraSessionModule(),
-new SimpleMessageSearchModule(),
-new CassandraUsersRepositoryModule(),
-new CassandraDomainListModule(),
-new CassandraRecipientRewriteTableModule(),
-new DNSServiceModule());
+public static final Module defaultModule = Modules.combine(
+new CassandraMailboxModule(),
+new ConfigurationPerformerModule(),
+new CassandraSessionModule(),
+new SimpleMessageSearchModule(),
+new CassandraUsersRepositoryModule(),
+new CassandraDomainListModule(),
+new CassandraRecipientRewriteTableModule(),
+new DNSServiceModule());
 
 public static void main(String[] args) throws Exception {
 CassandraJamesServer server = new CassandraJamesServer(defaultModule);

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationPerformerModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationPerformerModule.java?rev=1712330=auto

svn commit: r1712332 - in /james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james: CassandraJamesServerMain.java modules/server/ActiveMQQueueModule.java modules/server/Emb

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:48:15 2015
New Revision: 1712332

URL: http://svn.apache.org/viewvc?rev=1712332=rev
Log:
JAMES-1626 Add ActiveMQ support to cassandra-guice application

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/EmbeddedActiveMQ.java
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712332=1712331=1712332=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:48:15 2015
@@ -25,6 +25,7 @@ import org.apache.james.modules.data.Cas
 import org.apache.james.modules.mailbox.CassandraMailboxModule;
 import org.apache.james.modules.mailbox.CassandraSessionModule;
 import org.apache.james.modules.mailbox.ElasticSearchMailboxModule;
+import org.apache.james.modules.server.ActiveMQQueueModule;
 import org.apache.james.modules.server.ConfigurationPerformerModule;
 import org.apache.james.modules.server.DNSServiceModule;
 
@@ -41,7 +42,8 @@ public class CassandraJamesServerMain {
 new CassandraUsersRepositoryModule(),
 new CassandraDomainListModule(),
 new CassandraRecipientRewriteTableModule(),
-new DNSServiceModule());
+new DNSServiceModule(),
+new ActiveMQQueueModule());
 
 public static void main(String[] args) throws Exception {
 CassandraJamesServer server = new CassandraJamesServer(defaultModule);

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java?rev=1712332=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java
 Tue Nov  3 16:48:15 2015
@@ -0,0 +1,57 @@
+/
+ * 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.modules.server;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import org.apache.james.queue.activemq.ActiveMQMailQueueFactory;
+import org.apache.james.queue.api.MailQueueFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jms.ConnectionFactory;
+
+public class ActiveMQQueueModule extends AbstractModule {
+
+private static Logger LOGGER = 
LoggerFactory.getLogger(ActiveMQQueueModule.class);
+
+@Override
+protected void configure() {
+
+}
+
+@Provides
+@Singleton
+ConnectionFactory provideEmbededActiveMQ(EmbeddedActiveMQ 
embeddedActiveMQ) {
+return embeddedActiveMQ.getConnectionFactory();
+}
+
+@Provides
+@Singleton
+public MailQueueFactory createActiveMailQueueFactory(ConnectionFactory 
connectionFactory, Acti

svn commit: r1712331 - in /james/project/trunk/server: ./ container/cassandra-guice/ container/cassandra-guice/src/main/java/org/apache/james/ container/cassandra-guice/src/main/java/org/apache/james/

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:47:57 2015
New Revision: 1712331

URL: http://svn.apache.org/viewvc?rev=1712331=rev
Log:
JAMES-1626 Add ElasticSearch support to cassandra-guice application

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/modules/

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java

james/project/trunk/server/container/cassandra-guice/src/test/resources/elasticsearch.properties
Modified:
james/project/trunk/server/container/cassandra-guice/pom.xml

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
james/project/trunk/server/pom.xml

Modified: james/project/trunk/server/container/cassandra-guice/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/pom.xml?rev=1712331=1712330=1712331=diff
==
--- james/project/trunk/server/container/cassandra-guice/pom.xml (original)
+++ james/project/trunk/server/container/cassandra-guice/pom.xml Tue Nov  3 
16:47:57 2015
@@ -188,6 +188,12 @@
 
 
 ${project.groupId}
+apache-james-mailbox-elasticsearch
+test-jar
+test
+
+
+${project.groupId}
 apache-james-mailbox-tika
 
 

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712331=1712330=1712331=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:47:57 2015
@@ -24,9 +24,9 @@ import org.apache.james.modules.data.Cas
 import org.apache.james.modules.data.CassandraUsersRepositoryModule;
 import org.apache.james.modules.mailbox.CassandraMailboxModule;
 import org.apache.james.modules.mailbox.CassandraSessionModule;
+import org.apache.james.modules.mailbox.ElasticSearchMailboxModule;
 import org.apache.james.modules.server.ConfigurationPerformerModule;
 import org.apache.james.modules.server.DNSServiceModule;
-import org.apache.james.modules.server.SimpleMessageSearchModule;
 
 import com.google.inject.Module;
 import com.google.inject.util.Modules;
@@ -37,7 +37,7 @@ public class CassandraJamesServerMain {
 new CassandraMailboxModule(),
 new ConfigurationPerformerModule(),
 new CassandraSessionModule(),
-new SimpleMessageSearchModule(),
+new ElasticSearchMailboxModule(),
 new CassandraUsersRepositoryModule(),
 new CassandraDomainListModule(),
 new CassandraRecipientRewriteTableModule(),

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java?rev=1712331=1712330=1712331=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
 Tue Nov  3 16:47:57 2015
@@ -31,12 +31,14 @@ import org.apache.james.mailbox.cassandr
 import org.apache.james.mailbox.cassandra.CassandraSubscriptionManager;
 import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
 import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
+import 
org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.NoMailboxPathLocker;
 import

svn commit: r1712333 - in /james/project/trunk/server/container/cassandra-guice/src: main/java/org/apache/james/utils/ClassPathConfigurationProvider.java test/java/org/apache/james/utils/ClassPathConf

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:48:26 2015
New Revision: 1712333

URL: http://svn.apache.org/viewvc?rev=1712333=rev
Log:
JAMES-1626 Implement an HierarchicalConfiguration reader for guice use

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java

james/project/trunk/server/container/cassandra-guice/src/test/resources/test.xml

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java?rev=1712333=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java
 Tue Nov  3 16:48:26 2015
@@ -0,0 +1,69 @@
+/
+ * 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.utils;
+
+import java.io.InputStream;
+import java.util.List;
+import java.util.Optional;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.configuration.XMLConfiguration;
+
+import com.google.common.base.Preconditions;
+import com.google.common.base.Splitter;
+import com.google.common.base.Strings;
+import com.google.common.collect.Iterables;
+
+public class ClassPathConfigurationProvider {
+
+private static final String CONFIGURATION_FILE_SUFFIX = ".xml";
+
+public HierarchicalConfiguration getConfiguration(String component) throws 
ConfigurationException {
+Preconditions.checkNotNull(component);
+List configPathParts = Splitter.on(".").splitToList(component);
+Preconditions.checkArgument(!configPathParts.isEmpty());
+HierarchicalConfiguration config = 
getConfig(retrieveConfigInputStream(configPathParts.get(0)));
+return selectHierarchicalConfigPart(config, 
Iterables.skip(configPathParts, 1));
+}
+
+private InputStream retrieveConfigInputStream(String 
configurationFileWithoutExtension) throws ConfigurationException {
+
Preconditions.checkArgument(!Strings.isNullOrEmpty(configurationFileWithoutExtension),
 "The configuration file name should not be empty or null");
+return 
Optional.ofNullable(ClassLoader.getSystemResourceAsStream(configurationFileWithoutExtension
 + CONFIGURATION_FILE_SUFFIX))
+.orElseThrow(() -> new ConfigurationException("Unable to locate 
configuration file " + configurationFileWithoutExtension + 
CONFIGURATION_FILE_SUFFIX));
+}
+
+private XMLConfiguration getConfig(InputStream configStream) throws 
ConfigurationException {
+XMLConfiguration config = new XMLConfiguration();
+config.setDelimiterParsingDisabled(true);
+config.setAttributeSplittingDisabled(true);
+config.load(configStream);
+return config;
+}
+
+private HierarchicalConfiguration 
selectHierarchicalConfigPart(HierarchicalConfiguration config, Iterable 
configsPathParts) {
+HierarchicalConfiguration currentConfig = config;
+for (String nextPathPart : configsPathParts) {
+currentConfig = currentConfig.configurationAt(nextPathPart);
+}
+return currentConfig;
+}
+
+}

Added: 
james/project/trunk/server

svn commit: r1712334 - in /james/project/trunk/server/container: cassandra-guice/src/main/java/org/apache/james/ cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ cassandra-guice/src/mai

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:48:56 2015
New Revision: 1712334

URL: http://svn.apache.org/viewvc?rev=1712334=rev
Log:
JAMES-1626 support IMAP, SMTP, POP and LMTP protocols in cassandra-guice 
application

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/ProtocolHandlerModule.java
  - copied, changed from r1712333, 
james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java
  - copied, changed from r1712333, 
james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/QuotaModule.java
  - copied, changed from r1712333, 
james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceProtocolHandlerLoader.java

james/project/trunk/server/container/cassandra-guice/src/test/resources/imapserver.xml

james/project/trunk/server/container/cassandra-guice/src/test/resources/lmtpserver.xml

james/project/trunk/server/container/cassandra-guice/src/test/resources/pop3server.xml

james/project/trunk/server/container/cassandra-guice/src/test/resources/smtpserver.xml
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java

james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712334=1712333=1712334=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:48:56 2015
@@ -25,9 +25,16 @@ import org.apache.james.modules.data.Cas
 import org.apache.james.modules.mailbox.CassandraMailboxModule;
 import org.apache.james.modules.mailbox.CassandraSessionModule;
 import org.apache.james.modules.mailbox.ElasticSearchMailboxModule;
+import org.apache.james.modules.protocols.IMAPServerModule;
+import org.apache.james.modules.protocols.LMTPServerModule;
+import org.apache.james.modules.protocols.POP3ServerModule;
+import org.apache.james.modules.protocols.ProtocolHandlerModule;
+import org.apache.james.modules.protocols.SMTPServerModule;
 import org.apache.james.modules.server.ActiveMQQueueModule;
 import org.apache.james.modules.server.ConfigurationPerformerModule;
 import org.apache.james.modules.server.DNSServiceModule;
+import org.apache.james.modules.server.FileSystemModule;
+import org.apache.james.modules.server.QuotaModule;
 
 import com.google.inject.Module;
 import com.google.inject.util.Modules;
@@ -43,7 +50,14 @@ public class CassandraJamesServerMain {
 new CassandraDomainListModule(),
 new CassandraRecipientRewriteTableModule(),
 new DNSServiceModule(),
-new ActiveMQQueueModule());
+new IMAPServerModule(),
+new ProtocolHandlerModule(),
+new POP3ServerModule(),
+new SMTPServerModule(),
+new LMTPServerModule(),
+new ActiveMQQueueModule(),
+new QuotaModule(),
+new FileSystemModule());
 
 public static void main(String[] args) throws Exception {
 CassandraJamesServer server = new CassandraJamesServer(defaultModule);

Modified: 
james/project/trunk/server

svn commit: r1712335 - in /james/project/trunk/server/container: cassandra-guice/src/main/java/org/apache/james/utils/ mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:49:19 2015
New Revision: 1712335

URL: http://svn.apache.org/viewvc?rev=1712335=rev
Log:
JAMES-1626 Implement a guice MailboxManagerResolver

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java
  - copied, changed from r1712334, 
james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java
Modified:

james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java?rev=1712335=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java
 Tue Nov  3 16:49:19 2015
@@ -0,0 +1,59 @@
+/
+ * 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.utils;
+
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.james.adapter.mailbox.MailboxManagerResolver;
+import org.apache.james.adapter.mailbox.MailboxManagerResolverException;
+import org.apache.james.mailbox.MailboxManager;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.inject.Inject;
+
+public class GuiceMailboxManagerResolver implements MailboxManagerResolver {
+
+private ImmutableMap<String, MailboxManager> managers;
+
+@Inject
+private GuiceMailboxManagerResolver(Set 
managers) {
+this.managers = indexManagersByName(managers);
+}
+
+private static ImmutableMap<String, MailboxManager> 
indexManagersByName(Set managers) {
+return ImmutableMap.copyOf(managers.stream().collect(
+Collectors.toMap(MailboxManagerDefinition::getName, 
MailboxManagerDefinition::getManager)));
+}
+
+@Override
+public Map<String, MailboxManager> getMailboxManagerBeans() {
+return managers;
+}
+
+@Override
+public MailboxManager resolveMailboxManager(String 
mailboxManagerClassName) {
+return 
Optional.ofNullable(managers.get(mailboxManagerClassName)).orElseThrow(
+() -> new MailboxManagerResolverException("Unable to find a 
mailbox manager with name " + mailboxManagerClassName));
+}
+
+}

Copied: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java
 (from r1712334, 
james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java=james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java=1712334=1712335=1712335=diff
==
--- 
james/project/trunk/server

svn commit: r1712338 - in /james/project/trunk/server: container/cassandra-guice/src/main/java/org/apache/james/ container/cassandra-guice/src/main/java/org/apache/james/modules/server/ container/cass

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:50:17 2015
New Revision: 1712338

URL: http://svn.apache.org/viewvc?rev=1712338=rev
Log:
JAMES-1626 Add mailet support in cassandra-guice module

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SieveModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceGenericLoader.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailetLoader.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMatcherLoader.java

james/project/trunk/server/container/cassandra-guice/src/test/resources/mailetcontainer.xml
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java

james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712338=1712337=1712338=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:50:17 2015
@@ -31,12 +31,14 @@ import org.apache.james.modules.protocol
 import org.apache.james.modules.protocols.ProtocolHandlerModule;
 import org.apache.james.modules.protocols.SMTPServerModule;
 import org.apache.james.modules.server.ActiveMQQueueModule;
+import org.apache.james.modules.server.CamelMailetContainerModule;
 import org.apache.james.modules.server.ConfigurationPerformerModule;
 import org.apache.james.modules.server.DNSServiceModule;
 import org.apache.james.modules.server.FileSystemModule;
 import org.apache.james.modules.server.JMXServerModule;
 import org.apache.james.modules.server.MailStoreRepositoryModule;
 import org.apache.james.modules.server.QuotaModule;
+import org.apache.james.modules.server.SieveModule;
 
 import com.google.inject.Module;
 import com.google.inject.util.Modules;
@@ -58,9 +60,11 @@ public class CassandraJamesServerMain {
 new SMTPServerModule(),
 new LMTPServerModule(),
 new ActiveMQQueueModule(),
-new QuotaModule(),
 new FileSystemModule(),
-new MailStoreRepositoryModule());
+new SieveModule(),
+new MailStoreRepositoryModule(),
+new CamelMailetContainerModule(),
+new QuotaModule());
 
 public static void main(String[] args) throws Exception {
 CassandraJamesServer server = new CassandraJamesServer(Modules.combine(

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java?rev=1712338=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
 Tue Nov  3 16:50:17 2015
@@ -0,0 +1,107 @@
+/
+ * 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 

svn commit: r1712337 - in /james/project/trunk/server/container/cassandra-guice/src: main/java/org/apache/james/ main/java/org/apache/james/modules/server/ main/java/org/apache/james/utils/ test/java/

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:49:53 2015
New Revision: 1712337

URL: http://svn.apache.org/viewvc?rev=1712337=rev
Log:
JAMES-1626 Implement an InMemory MailRepository

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailRepositoryProvider.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java

james/project/trunk/server/container/cassandra-guice/src/test/resources/fakemailrepositorystore.xml

james/project/trunk/server/container/cassandra-guice/src/test/resources/mailrepositorystore.xml
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712337=1712336=1712337=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:49:53 2015
@@ -35,6 +35,7 @@ import org.apache.james.modules.server.C
 import org.apache.james.modules.server.DNSServiceModule;
 import org.apache.james.modules.server.FileSystemModule;
 import org.apache.james.modules.server.JMXServerModule;
+import org.apache.james.modules.server.MailStoreRepositoryModule;
 import org.apache.james.modules.server.QuotaModule;
 
 import com.google.inject.Module;
@@ -58,7 +59,8 @@ public class CassandraJamesServerMain {
 new LMTPServerModule(),
 new ActiveMQQueueModule(),
 new QuotaModule(),
-new FileSystemModule());
+new FileSystemModule(),
+new MailStoreRepositoryModule());
 
 public static void main(String[] args) throws Exception {
 CassandraJamesServer server = new CassandraJamesServer(Modules.combine(

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java?rev=1712337=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
 Tue Nov  3 16:49:53 2015
@@ -0,0 +1,87 @@
+/
+ * 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.modules.server;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
+import org.apache.james.filesystem.api.FileSystem;
+import org.apache.james.mailrepository.api.MailRepository;
+import org.apache.james.mailrepository.api.MailRepositoryStore;
+import org.apache.james.mailrepository.file.FileMailRepository;
+import org.apache.james.utils.ClassPathConfigurat

svn commit: r1712336 - in /james/project/trunk/server/container: cassandra-guice/src/main/java/org/apache/james/ cassandra-guice/src/main/java/org/apache/james/modules/server/ cassandra-guice/src/test

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:49:32 2015
New Revision: 1712336

URL: http://svn.apache.org/viewvc?rev=1712336=rev
Log:
JAMES-1626 Add JMX support to cassandra-guice application

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServerModule.java

james/project/trunk/server/container/cassandra-guice/src/test/resources/jmx.properties
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxServerProbe.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712336=1712335=1712336=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:49:32 2015
@@ -34,6 +34,7 @@ import org.apache.james.modules.server.A
 import org.apache.james.modules.server.ConfigurationPerformerModule;
 import org.apache.james.modules.server.DNSServiceModule;
 import org.apache.james.modules.server.FileSystemModule;
+import org.apache.james.modules.server.JMXServerModule;
 import org.apache.james.modules.server.QuotaModule;
 
 import com.google.inject.Module;
@@ -60,7 +61,9 @@ public class CassandraJamesServerMain {
 new FileSystemModule());
 
 public static void main(String[] args) throws Exception {
-CassandraJamesServer server = new CassandraJamesServer(defaultModule);
+CassandraJamesServer server = new CassandraJamesServer(Modules.combine(
+defaultModule,
+new JMXServerModule()));
 server.start();
 }
 

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java?rev=1712336=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java
 Tue Nov  3 16:49:32 2015
@@ -0,0 +1,118 @@
+/
+ * 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.modules.server;
+
+import com.google.common.base.Throwables;
+import com.google.common.collect.ImmutableMap;
+import org.apache.james.util.RestrictingRMISocketFactory;
+import org.apache.james.utils.PropertiesReader;
+
+import javax.annotation.PreDestroy;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.rmi.registry.LocateRegistry;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+public class JMXServer {
+
+private final Set registeredKeys;
+private final Object lock;
+private JMXConnectorServer jmxConnectorServer;

svn commit: r1712339 - in /james/project/trunk/server: container/cassandra-guice/src/main/java/org/apache/james/modules/server/ container/cassandra-guice/src/test/resources/ dns-service/dnsservice-dns

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:50:38 2015
New Revision: 1712339

URL: http://svn.apache.org/viewvc?rev=1712339=rev
Log:
JAMES-1626 Add DNSService support in cassandra-guice application

Added:

james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml

james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java?rev=1712339=1712338=1712339=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
 Tue Nov  3 16:50:38 2015
@@ -18,23 +18,45 @@
  /
 package org.apache.james.modules.server;
 
-import com.google.inject.Provides;
+import com.google.inject.Inject;
 import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.dnsjava.DNSJavaService;
 
 import com.google.inject.AbstractModule;
+import org.apache.james.utils.ClassPathConfigurationProvider;
+import org.apache.james.utils.ConfigurationPerformer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DNSServiceModule extends AbstractModule {
 
+private static final Logger LOGGER = 
LoggerFactory.getLogger(DNSServiceModule.class);
+
 @Override
 protected void configure() {
-
+bind(DNSService.class).to(DNSJavaService.class);
+Multibinder.newSetBinder(binder(), 
ConfigurationPerformer.class).addBinding().to(DNSServiceConfigurationPerformer.class);
 }
 
-@Provides
 @Singleton
-private DNSService provideDNSService() {
-return new DNSJavaService();
+public static class DNSServiceConfigurationPerformer implements 
ConfigurationPerformer {
+
+private final ClassPathConfigurationProvider 
classPathConfigurationProvider;
+private final DNSJavaService dnsService;
+
+@Inject
+public DNSServiceConfigurationPerformer(ClassPathConfigurationProvider 
classPathConfigurationProvider,
+DNSJavaService dnsService) {
+this.classPathConfigurationProvider = 
classPathConfigurationProvider;
+this.dnsService = dnsService;
+}
+
+public void initModule() throws Exception {
+dnsService.setLog(LOGGER);
+
dnsService.configure(classPathConfigurationProvider.getConfiguration("dnsservice"));
+dnsService.init();
+}
 }
 }
\ No newline at end of file

Added: 
james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml?rev=1712339=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml
 Tue Nov  3 16:50:38 2015
@@ -0,0 +1,29 @@
+
+
+
+
+  
+8.8.8.8
+62.210.16.6
+  
+  false
+  false
+  5
+

Modified: james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml?rev=1712339=1712338=1712339=diff
==
--- james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml (original)
+++ james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml Tue Nov  
3 16:50:38 2015
@@ -60,6 +60,10 @@
 dnsjava
 
 
+javax.inject
+javax.inject
+
+
 org.apache.geronimo.specs
 geronimo-annotation_1.1_spec
 

Modified: 
james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java?rev=1712339=1712338=17

svn commit: r1712340 - in /james/project/trunk/server/container/cassandra-guice/src: main/java/org/apache/james/ main/java/org/apache/james/modules/protocols/ main/java/org/apache/james/modules/server

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:50:52 2015
New Revision: 1712340

URL: http://svn.apache.org/viewvc?rev=1712340=rev
Log:
JAMES-1626 Add interface ConfigurationProvider to allow multiple implementations

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationProviderModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationProvider.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java
  - copied, changed from r1712339, 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java
  - copied, changed from r1712339, 
james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java
Removed:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java
Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712340=1712339=1712340=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:50:52 2015
@@ -33,6 +33,7 @@ import org.apache.james.modules.protocol
 import org.apache.james.modules.server.ActiveMQQueueModule;
 import org.apache.james.modules.server.CamelMailetContainerModule;
 import org.apache.james.modules.server.ConfigurationPerformerModule;
+import org.apache.james.modules.server.ConfigurationProviderModule;
 import org.apache.james.modules.server.DNSServiceModule;
 import org.apache.james.modules.server.FileSystemModule;
 import org.apache.james.modules.server.JMXServerModule;
@@ -64,7 +65,8 @@ public class CassandraJamesServerMain {
 new SieveModule(),
 new MailStoreRepositoryModule(),
 new CamelMailetContainerModule(),
-new QuotaModule());
+new QuotaModule(),
+new ConfigurationProviderModule());
 
 public static void main(String[] args) throws Exception {
 CassandraJamesServer server = new CassandraJamesServer(Modules.combine(

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java?rev=1712340=1712339=1712340=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
 Tue Nov  3 16:50:52 2015
@@ -18,11 +18,6 @@
  /
 package org.apache.james.modules.protocols;
 
-import com.google.inject.Inject

svn commit: r1712341 - /james/project/trunk/server/container/cassandra-guice/pom.xml

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:51:06 2015
New Revision: 1712341

URL: http://svn.apache.org/viewvc?rev=1712341=rev
Log:
JAMES-1626 Implement a packaging policy for the cassandra-guice application

Modified:
james/project/trunk/server/container/cassandra-guice/pom.xml

Modified: james/project/trunk/server/container/cassandra-guice/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/pom.xml?rev=1712341=1712340=1712341=diff
==
--- james/project/trunk/server/container/cassandra-guice/pom.xml (original)
+++ james/project/trunk/server/container/cassandra-guice/pom.xml Tue Nov  3 
16:51:06 2015
@@ -30,7 +30,7 @@
 
 
 james-server-cassandra-guice
-bundle
+jar
 
 Apache James :: Server :: Cassandra - guice injection
 An advanced email server - Cassandra backend with guice 
injection
@@ -45,7 +45,6 @@
 
 
 
-
 
 
 disable-build-for-older-jdk
@@ -144,17 +143,34 @@
 
 
 
-maven-assembly-plugin
-
-
-
-
fully.qualified.MainClass
-
-
-
-
jar-with-dependencies
-
-
+  org.apache.maven.plugins
+  maven-dependency-plugin
+  
+
+  copy-dependencies
+  package
+  
+copy-dependencies
+  
+  
+
${project.build.directory}/${project.build.finalName}.lib
+  
+
+  
+
+
+  org.apache.maven.plugins
+  maven-jar-plugin
+  
+
+  
+true
+
${project.build.finalName}.lib/
+
org.apache.james.CassandraJamesServerMain
+false
+  
+
+  
 
 
 org.apache.maven.plugins



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



svn commit: r1712342 - in /james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox: CassandraSessionModule.java ElasticSearchMailboxModule.java

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:51:16 2015
New Revision: 1712342

URL: http://svn.apache.org/viewvc?rev=1712342=rev
Log:
JAMES-1626 use Filesystem to resolve configuration properties files

Modified:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java?rev=1712342=1712341=1712342=diff
==
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
 Tue Nov  3 16:51:16 2015
@@ -18,35 +18,28 @@
  /
 package org.apache.james.modules.mailbox;
 
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-
-import com.datastax.driver.core.Cluster;
-import com.datastax.driver.core.Session;
-import com.google.inject.AbstractModule;
-
+import java.io.FileNotFoundException;
 import java.util.Set;
 
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
 import org.apache.james.backends.cassandra.init.ClusterFactory;
 import 
org.apache.james.backends.cassandra.init.ClusterWithKeyspaceCreatedFactory;
 import 
org.apache.james.backends.cassandra.init.SessionWithInitializedTablesFactory;
-import org.apache.james.utils.PropertiesReader;
+import org.apache.james.filesystem.api.FileSystem;
 
-public class CassandraSessionModule extends AbstractModule {
-
-private final PropertiesReader propertiesReader;
-private final String keyspace;
+import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.Session;
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
 
-public CassandraSessionModule() {
-propertiesReader = new PropertiesReader("cassandra.properties");
-keyspace = propertiesReader.getProperty("cassandra.keyspace");
-}
+public class CassandraSessionModule extends AbstractModule {
 
 @Override
 protected void configure() {
-
 }
 
 @Provides
@@ -57,19 +50,28 @@ public class CassandraSessionModule exte
 
 @Provides
 @Singleton
-Session provideSession(Cluster cluster, CassandraModule cassandraModule) {
+Session provideSession(FileSystem fileSystem, Cluster cluster, 
CassandraModule cassandraModule)
+throws FileNotFoundException, ConfigurationException{
+PropertiesConfiguration configuration = getConfiguration(fileSystem);
+String keyspace = configuration.getString("cassandra.keyspace");
 return new 
SessionWithInitializedTablesFactory(cassandraModule).createSession(cluster, 
keyspace);
 }
 
 @Provides
 @Singleton
-Cluster provideCluster() {
+Cluster provideCluster(FileSystem fileSystem) throws 
FileNotFoundException, ConfigurationException {
+PropertiesConfiguration configuration = getConfiguration(fileSystem);
+
 return 
ClusterWithKeyspaceCreatedFactory.clusterWithInitializedKeyspace(
 ClusterFactory.createClusterForSingleServerWithoutPassWord(
-propertiesReader.getProperty("cassandra.ip"),
-
Integer.parseInt(propertiesReader.getProperty("cassandra.port"))),
-keyspace,
-
Integer.parseInt(propertiesReader.getProperty("cassandra.replication.factor")));
+configuration.getString("cassandra.ip"),
+configuration.getInt("cassandra.port")),
+configuration.getString("cassandra.keyspace"),
+configuration.getInt("cassandra.replication.factor"));
 }
 
+private PropertiesConfiguration getConfiguration(FileSystem fileSystem) 
throws FileNotFoundException, ConfigurationException {
+return new 
PropertiesConfiguration(fileSystem.getFile("cassandra.properties"));
+}
+
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
URL: 
http://svn

svn commit: r1712343 - /james/project/trunk/server/src/site/xdoc/index.xml

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:51:22 2015
New Revision: 1712343

URL: http://svn.apache.org/viewvc?rev=1712343=rev
Log:
JAMES-1626 Fix a typo on the site in the server index file

Modified:
james/project/trunk/server/src/site/xdoc/index.xml

Modified: james/project/trunk/server/src/site/xdoc/index.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/index.xml?rev=1712343=1712342=1712343=diff
==
--- james/project/trunk/server/src/site/xdoc/index.xml (original)
+++ james/project/trunk/server/src/site/xdoc/index.xml Tue Nov  3 16:51:22 2015
@@ -118,7 +118,7 @@
  
  
 
-  
+  
   
 Configure the stores,... via the well-known Spring framework - 
read more.
 



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



svn commit: r1712345 - in /james/project/trunk/server/container/cassandra-guice: ./ sample-configuration/

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:51:53 2015
New Revision: 1712345

URL: http://svn.apache.org/viewvc?rev=1712345=rev
Log:
JAMES-1626 sample configuration and readme

Added:
james/project/trunk/server/container/cassandra-guice/README.adoc
james/project/trunk/server/container/cassandra-guice/sample-configuration/

james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties

james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/domainlist.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/elasticsearch.properties

james/project/trunk/server/container/cassandra-guice/sample-configuration/imapserver.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/jcr-repository.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/jmx.properties

james/project/trunk/server/container/cassandra-guice/sample-configuration/lmtpserver.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/mailetcontainer.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/mailrepositorystore.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/pop3server.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/recipientrewritetable.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/smtpserver.xml

james/project/trunk/server/container/cassandra-guice/sample-configuration/usersrepository.xml

Added: james/project/trunk/server/container/cassandra-guice/README.adoc
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/README.adoc?rev=1712345=auto
==
--- james/project/trunk/server/container/cassandra-guice/README.adoc (added)
+++ james/project/trunk/server/container/cassandra-guice/README.adoc Tue Nov  3 
16:51:53 2015
@@ -0,0 +1,45 @@
+= Guice-Cassandra Module How-to
+
+== Building
+
+=== Requirements
+
+ * Java 8 SDK
+ * Docker
+ * Maven
+
+=== Building the artifacts
+
+An usual compilation using maven will produce two artifacts into target 
directory :
+
+ * james-server-cassandra-guice-${version}.jar
+ * james-server-cassandra-guice-${version}.lib
+
+== Running
+
+=== Requirements
+
+ * Cassandra
+ * ElasticSearch 1.5.2
+
+=== James Launch
+
+To run james, you have to create a directory containing required configuration 
files.
+
+A sample directory (appropriately named sample-directory) is provided with some
+default value you may need to replace.
+
+You also need to generate a keystore with the following command :
+[source]
+
+$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
+
+
+You need to have a Cassandra and an ElasticSearch instance running.
+
+Once everything is set up, you just have to run the jar with :
+
+[source]
+
+$ java -Dworking.directory=sample-configuration -jar 
target/james-server-cassandra-guice-${version}.jar
+

Added: 
james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties?rev=1712345=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties
 Tue Nov  3 16:51:53 2015
@@ -0,0 +1,6 @@
+# Configuration file for cassandra mailbox
+
+cassandra.ip=172.17.0.2
+cassandra.port=9042
+cassandra.keyspace=apache_james
+cassandra.replication.factor=1
\ No newline at end of file

Added: 
james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml?rev=1712345=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml
 Tue Nov  3 16:51:53 2015
@@ -0,0 +1,29 @@
+
+
+
+
+  
+8.8.8.8
+62.210.16.6
+  
+  false
+  false
+  5
+

Added: 
james/project/trunk/server/container/cassandra-guice/sample-configuration/domainlist.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/sample-configuration/domainlist.xml?rev=1712345=auto
==
--- 
james/project/trunk/server/container/cassandra-guice/sample

svn commit: r1712346 - in /james/project/trunk: backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/ server/container/cassandra-guice/src/main/java/org/apache/james/ server/con

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:52:28 2015
New Revision: 1712346

URL: http://svn.apache.org/viewvc?rev=1712346=rev
Log:
JAMES-1626 use FileSystem to find configuration files

Added:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/CommonServicesModule.java
  - copied, changed from r1712345, 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/modules/TestFilesystemModule.java
  - copied, changed from r1712345, 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java
Removed:

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java

james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties

james/project/trunk/server/container/cassandra-guice/src/test/resources/elasticsearch.properties

james/project/trunk/server/container/cassandra-guice/src/test/resources/jmx.properties
Modified:

james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/ProtocolHandlerModule.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java

james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java

james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java

james/project/trunk/server/container/core/src/main/java/org/apache/james/core/JamesServerResourceLoader.java

james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java

james/project/trunk/server/container/core/src/test/java/org/apache/james/core/filesystem/FileSystemImplTest.java

james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java

james/project/trunk/server/container/spring/src/test/java/org/apache/james/container/spring/filesystem/FileSystemImplTest.java

Modified: 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java?rev=1712346=1712345=1712346=diff
==
--- 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
 (original)
+++ 
james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
 Tue Nov  3 16:52:28 2015
@@ -77,9 +77,8 @@ public final class CassandraCluster {
 
 private Optional tryInitializeSession() {
 try {
-Cluster cluster = 
ClusterFactory.createClusterForSingleServerWithoutPassWord(CLUSTER_IP, 
CLUSTER_PORT_TEST);
 Cluster clusterWithInitializedKeyspace = 
ClusterWithKeyspaceCreatedFactory
-.clusterWithInitializedKeyspace(cluster, KEYSPACE_NAME, 
REPLICATION_FACTOR);
+.clusterWithInitializedKeyspace(getCluster(), KEYSPACE_NAME, 
REPLICATION_FACTOR);
 return Optional.of(new 
SessionWithInitializedTablesFactory(module).createSession(clusterWithInitializedKeyspace,
 KEYSPACE_NAME));
 } catch (NoHostAvailableException exception) {
 sleep(SLEEP_BEFORE_RETRY);
@@ -87,6 +86,10 @@ public final class CassandraCluster {
 }
 }
 
+public Cluster getCluster() {
+return 
ClusterFactory.createClusterForSingleServerWithoutPassWord(CLUSTER_IP, 
CLUSTER_PORT_TEST);
+}
+
 private void sleep(long sleepMs) {
 try {
 Thread.sleep(sleepMs);

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
URL: 
http

svn commit: r1712344 - in /james/project/trunk/server/src/site/xdoc: config-cassandra.xml config-elasticsearch.xml config-guice.xml index.xml quick-start-cassandra.xml

2015-11-03 Thread matthieu
Author: matthieu
Date: Tue Nov  3 16:51:30 2015
New Revision: 1712344

URL: http://svn.apache.org/viewvc?rev=1712344=rev
Log:
JAMES-1626 Add configuration documentation

Added:
james/project/trunk/server/src/site/xdoc/config-cassandra.xml
james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml
james/project/trunk/server/src/site/xdoc/config-guice.xml
james/project/trunk/server/src/site/xdoc/quick-start-cassandra.xml
Modified:
james/project/trunk/server/src/site/xdoc/index.xml

Added: james/project/trunk/server/src/site/xdoc/config-cassandra.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/config-cassandra.xml?rev=1712344=auto
==
--- james/project/trunk/server/src/site/xdoc/config-cassandra.xml (added)
+++ james/project/trunk/server/src/site/xdoc/config-cassandra.xml Tue Nov  3 
16:51:30 2015
@@ -0,0 +1,49 @@
+
+
+
+
+ 
+  Apache James Server 3 - Cassandra Configuration
+ 
+
+
+
+  
+
+Consult http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/cassandra-template.properties;>cassandra-template.properties
 to get some examples and hints.
+
+  
+cassandra.ip
+Is the IP (or host) of the Cassandra used. (cluster is not yet 
supported)
+cassandra.port
+Is the port used to connect to Cassandra.
+cassandra.keyspace
+Is the name of the keyspace used by James.
+cassandra.replication.factor
+Is the replication factor. (should be 1, as cluster is not yet 
supported)
+  
+
+If you want more explanation about Cassandra configuration, you should 
visit the dedicated http://docs.datastax.com/en/cassandra/2.1/cassandra/gettingStartedCassandraIntro.html;>documentation.
+
+  
+
+
+
+

Added: james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml?rev=1712344=auto
==
--- james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml (added)
+++ james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml Tue Nov  
3 16:51:30 2015
@@ -0,0 +1,45 @@
+
+
+
+
+ 
+  Apache James Server 3 - ElasticSearch Configuration
+ 
+
+
+
+  
+
+Consult http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/elasticsearch-template.properties;>elasticsearch-template.properties
 to get some examples and hints.
+
+  
+elasticsearch.clusterName
+Is the name of the cluster used by James.
+elasticsearch.masterHost
+Is the IP (or host) of the ElasticSearch master
+  
+
+If you want more explanation about ElasticSearch configuration, you should 
visit the dedicated https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html;>documentation.
+
+  
+
+
+
+

Added: james/project/trunk/server/src/site/xdoc/config-guice.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/config-guice.xml?rev=1712344=auto
==
--- james/project/trunk/server/src/site/xdoc/config-guice.xml (added)
+++ james/project/trunk/server/src/site/xdoc/config-guice.xml Tue Nov  3 
16:51:30 2015
@@ -0,0 +1,99 @@
+
+
+
+
+ 
+  Apache James Server 3 - Guice configuration
+ 
+
+
+
+  
+
+Such configuration is only developed for Cassandra backend.
+You are encouraged to contribute by developing a new backend guice 
module.
+   Have a look to the james-server-cassandra-guice artifact.
+
+
+We provide a sample-configuration folder with needed files to run 
James. 
+  You can start by copying it and modify these files according to your 
needs.
+
+You can/must configure James for the following:
+
+
+
+  
+Config File Sample
+Config Area
+Config Comment
+  
+
+  
+http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/cassandra-template.properties;>cassandra-template.properties
+Cassandra Configuration
+
+  
+  
+http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/dnsservice-template.xml;>dnsservice.xml
+DNS Service Configuration
+
+  
+  
+http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/elasticsearch-template.properties;>elasticsearch-template.properties
+ElasticSearch 
Configuration
+
+  
+  
+http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/imapserver-template.xml;>imapserver.xml
+IMAP4 Configuration
+
+  
+  
+http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/lmtpserver-template.xml;>lmtpserver.xml
+LMTP Configuration
+
+  
+  
+  

svn commit: r1709373 - /james/project/trunk/mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSession.java

2015-10-19 Thread matthieu
Author: matthieu
Date: Mon Oct 19 07:33:27 2015
New Revision: 1709373

URL: http://svn.apache.org/viewvc?rev=1709373=rev
Log:
fixup! MPT-29 handle EOF in read retry

Modified:

james/project/trunk/mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSession.java

Modified: 
james/project/trunk/mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSession.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSession.java?rev=1709373=1709372=1709373=diff
==
--- 
james/project/trunk/mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSession.java
 (original)
+++ 
james/project/trunk/mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSession.java
 Mon Oct 19 07:33:27 2015
@@ -119,7 +119,7 @@ public final class ExternalSession imple
 result = tryReadFromSocket();
 // Reset for transfer into string buffer
 readBuffer.flip();
-monitor.debug("[Done]");
+monitor.debug(String.format("[Read %d characters]", 
readBuffer.limit()));
 }
 return result;
 }
@@ -137,7 +137,11 @@ public final class ExternalSession imple
 return read != 0;
 }
 });
-return status.intValue() > 0;
+if (status.intValue() == -1) {
+monitor.debug("Error reading, got -1");
+return false;
+}
+return true;
 }
 
 public void start() throws Exception {



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



  1   2   3   4   5   6   7   8   9   10   >