svn commit: r1710203 - /james/project/trunk/src/site/xdoc/index.xml
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
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
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
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
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
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
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
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
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/
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
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
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
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
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
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
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/
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
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
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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/
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
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
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
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
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
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
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/
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
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
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
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
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/
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
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/
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 MapgetAllMappings() 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
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
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
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
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
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
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/
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
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
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/
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
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
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/
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
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/
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
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
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
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
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
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
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/
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
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
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
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