Author: matthieu
Date: Tue Nov  3 16:46:53 2015
New Revision: 1712328

URL: http://svn.apache.org/viewvc?rev=1712328&view=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&r1=1712327&r2=1712328&view=diff
==============================================================================
--- james/project/trunk/backends-common/cassandra/pom.xml (original)
+++ james/project/trunk/backends-common/cassandra/pom.xml Tue Nov  3 16:46:53 
2015
@@ -140,6 +140,10 @@
                            <artifactId>commons-lang</artifactId>
                            <version>2.6</version>
                        </dependency>
+            <dependency>
+                <groupId>javax.inject</groupId>
+                <artifactId>javax.inject</artifactId>
+            </dependency>
                        <dependency>
                            <groupId>org.assertj</groupId>
                            <artifactId>assertj-core</artifactId>

Modified: 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java?rev=1712328&r1=1712327&r2=1712328&view=diff
==============================================================================
--- 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
 (original)
+++ 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
 Tue Nov  3 16:46:53 2015
@@ -21,6 +21,8 @@ package org.apache.james.backends.cassan
 
 import java.util.Optional;
 
+import javax.inject.Inject;
+
 import com.datastax.driver.core.Session;
 import com.datastax.driver.core.UserType;
 import com.google.common.collect.ImmutableMap;
@@ -31,6 +33,7 @@ import org.apache.james.backends.cassand
 public class CassandraTypesProvider {
     private final ImmutableMap<String, UserType> userTypes;
 
+    @Inject
     public CassandraTypesProvider(CassandraModule module, Session session) {
         userTypes = module.moduleTypes()
             .stream()

Modified: james/project/trunk/backends-common/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/backends-common/pom.xml?rev=1712328&r1=1712327&r2=1712328&view=diff
==============================================================================
--- james/project/trunk/backends-common/pom.xml (original)
+++ james/project/trunk/backends-common/pom.xml Tue Nov  3 16:46:53 2015
@@ -45,6 +45,11 @@
                 <version>16.0</version>
             </dependency>
             <dependency>
+                <groupId>javax.inject</groupId>
+                <artifactId>javax.inject</artifactId>
+                <version>1</version>
+            </dependency>
+            <dependency>
                 <groupId>org.assertj</groupId>
                 <artifactId>assertj-core</artifactId>
                 <version>3.0.0</version>

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=1712328&r1=1712327&r2=1712328&view=diff
==============================================================================
--- james/project/trunk/server/container/cassandra-guice/pom.xml (original)
+++ james/project/trunk/server/container/cassandra-guice/pom.xml Tue Nov  3 
16:46:53 2015
@@ -168,11 +168,22 @@
             </build>
             <dependencies>
                 <dependency>
+                    <groupId>org.apache.james</groupId>
+                    <artifactId>apache-james-backends-cassandra</artifactId>
+                    <type>test-jar</type>
+                </dependency>
+                <dependency>
                     <groupId>${project.groupId}</groupId>
                     <artifactId>apache-james-mailbox-cassandra</artifactId>
                 </dependency>
                 <dependency>
                     <groupId>${project.groupId}</groupId>
+                    <artifactId>apache-james-mailbox-cassandra</artifactId>
+                    <scope>test</scope>
+                    <type>test-jar</type>
+                </dependency>
+                <dependency>
+                    <groupId>${project.groupId}</groupId>
                     <artifactId>apache-james-mailbox-elasticsearch</artifactId>
                 </dependency>
                 <dependency>
@@ -213,6 +224,11 @@
                 </dependency>
                 <dependency>
                     <groupId>${project.groupId}</groupId>
+                    <artifactId>james-server-data-cassandra</artifactId>
+                </dependency>
+                
+                <dependency>
+                    <groupId>${project.groupId}</groupId>
                     <artifactId>james-server-data-library</artifactId>
                 </dependency>
                 <dependency>

Added: 
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=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,39 @@
+/****************************************************************
+ * 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 com.google.inject.Guice;
+import com.google.inject.Module;
+
+public class CassandraJamesServer {
+
+    private final Module serverModule;
+
+    public CassandraJamesServer(Module serverModule) {
+        this.serverModule = serverModule;
+    }
+
+    public void start() {
+        Guice.createInjector(serverModule);
+    }
+
+    public void stop() {
+    }
+
+}

Added: 
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=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,48 @@
+/****************************************************************
+ * 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 org.apache.james.modules.data.CassandraDomainListModule;
+import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
+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.DNSServiceModule;
+import org.apache.james.modules.server.SimpleMessageSearchModule;
+
+import com.google.inject.Module;
+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 void main(String[] args) throws Exception {
+        CassandraJamesServer server = new CassandraJamesServer(defaultModule);
+        server.start();
+    }
+
+}

Copied: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
 (from r1712327, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java&p1=james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java&r1=1712327&r2=1712328&rev=1712328&view=diff
==============================================================================
--- 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
 Tue Nov  3 16:46:53 2015
@@ -16,39 +16,22 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
+package org.apache.james.modules.data;
 
-package org.apache.james.backends.cassandra.init;
-
-import java.util.Optional;
-
-import com.datastax.driver.core.Session;
-import com.datastax.driver.core.UserType;
-import com.google.common.collect.ImmutableMap;
 import org.apache.james.backends.cassandra.components.CassandraModule;
-import org.apache.james.backends.cassandra.components.CassandraType;
-import org.apache.james.backends.cassandra.utils.Collectors;
+import org.apache.james.domainlist.api.DomainList;
+import org.apache.james.domainlist.cassandra.CassandraDomainList;
 
-public class CassandraTypesProvider {
-    private final ImmutableMap<String, UserType> userTypes;
+import com.google.inject.AbstractModule;
+import com.google.inject.multibindings.Multibinder;
 
-    public CassandraTypesProvider(CassandraModule module, Session session) {
-        userTypes = module.moduleTypes()
-            .stream()
-            .collect(Collectors.toImmutableMap(
-                    CassandraType::getName,
-                    type -> getSessionType(session, type)));
-    }
-
-    private UserType getSessionType(Session session, CassandraType type) {
-        return session.getCluster()
-            .getMetadata()
-            .getKeyspace(session.getLoggedKeyspace())
-            .getUserType(type.getName());
-    }
+public class CassandraDomainListModule extends AbstractModule {
 
-    public UserType getDefinedUserType(String typeName) {
-        return Optional.ofNullable(userTypes.get(typeName))
-            .orElseThrow(() -> new RuntimeException("Cassandra UDT " + 
typeName + " can not be retrieved"));
+    @Override
+    public void configure() {
+        bind(DomainList.class).to(CassandraDomainList.class);
+        Multibinder<CassandraModule> cassandraDataDefinitions = 
Multibinder.newSetBinder(binder(), CassandraModule.class);
+        
cassandraDataDefinitions.addBinding().to(org.apache.james.domainlist.cassandra.CassandraDomainListModule.class);
     }
 
 }

Copied: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
 (from r1712327, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java&p1=james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java&r1=1712327&r2=1712328&rev=1712328&view=diff
==============================================================================
--- 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
 Tue Nov  3 16:46:53 2015
@@ -16,39 +16,23 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
+package org.apache.james.modules.data;
 
-package org.apache.james.backends.cassandra.init;
-
-import java.util.Optional;
-
-import com.datastax.driver.core.Session;
-import com.datastax.driver.core.UserType;
-import com.google.common.collect.ImmutableMap;
 import org.apache.james.backends.cassandra.components.CassandraModule;
-import org.apache.james.backends.cassandra.components.CassandraType;
-import org.apache.james.backends.cassandra.utils.Collectors;
-
-public class CassandraTypesProvider {
-    private final ImmutableMap<String, UserType> userTypes;
-
-    public CassandraTypesProvider(CassandraModule module, Session session) {
-        userTypes = module.moduleTypes()
-            .stream()
-            .collect(Collectors.toImmutableMap(
-                    CassandraType::getName,
-                    type -> getSessionType(session, type)));
-    }
-
-    private UserType getSessionType(Session session, CassandraType type) {
-        return session.getCluster()
-            .getMetadata()
-            .getKeyspace(session.getLoggedKeyspace())
-            .getUserType(type.getName());
-    }
-
-    public UserType getDefinedUserType(String typeName) {
-        return Optional.ofNullable(userTypes.get(typeName))
-            .orElseThrow(() -> new RuntimeException("Cassandra UDT " + 
typeName + " can not be retrieved"));
+import org.apache.james.rrt.api.RecipientRewriteTable;
+import org.apache.james.rrt.cassandra.CassandraRRTModule;
+import org.apache.james.rrt.cassandra.CassandraRecipientRewriteTable;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.multibindings.Multibinder;
+
+public class CassandraRecipientRewriteTableModule extends AbstractModule {
+
+    @Override
+    public void configure() {
+        
bind(RecipientRewriteTable.class).to(CassandraRecipientRewriteTable.class);
+        Multibinder<CassandraModule> cassandraDataDefinitions = 
Multibinder.newSetBinder(binder(), CassandraModule.class);
+        cassandraDataDefinitions.addBinding().to(CassandraRRTModule.class);
     }
 
 }

Copied: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
 (from r1712327, 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java)
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java&p1=james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java&r1=1712327&r2=1712328&rev=1712328&view=diff
==============================================================================
--- 
james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
 Tue Nov  3 16:46:53 2015
@@ -16,39 +16,23 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
+package org.apache.james.modules.data;
 
-package org.apache.james.backends.cassandra.init;
-
-import java.util.Optional;
-
-import com.datastax.driver.core.Session;
-import com.datastax.driver.core.UserType;
-import com.google.common.collect.ImmutableMap;
 import org.apache.james.backends.cassandra.components.CassandraModule;
-import org.apache.james.backends.cassandra.components.CassandraType;
-import org.apache.james.backends.cassandra.utils.Collectors;
+import org.apache.james.user.api.UsersRepository;
+import org.apache.james.user.cassandra.CassandraUsersRepository;
 
-public class CassandraTypesProvider {
-    private final ImmutableMap<String, UserType> userTypes;
+import com.google.inject.AbstractModule;
+import com.google.inject.multibindings.Multibinder;
 
-    public CassandraTypesProvider(CassandraModule module, Session session) {
-        userTypes = module.moduleTypes()
-            .stream()
-            .collect(Collectors.toImmutableMap(
-                    CassandraType::getName,
-                    type -> getSessionType(session, type)));
-    }
+public class CassandraUsersRepositoryModule extends AbstractModule {
 
-    private UserType getSessionType(Session session, CassandraType type) {
-        return session.getCluster()
-            .getMetadata()
-            .getKeyspace(session.getLoggedKeyspace())
-            .getUserType(type.getName());
-    }
+    @Override
+    public void configure() {
+        bind(UsersRepository.class).to(CassandraUsersRepository.class);
+        Multibinder<CassandraModule> cassandraDataDefinitions = 
Multibinder.newSetBinder(binder(), CassandraModule.class);
+        
cassandraDataDefinitions.addBinding().to(org.apache.james.user.cassandra.CassandraUsersRepositoryModule.class);
 
-    public UserType getDefinedUserType(String typeName) {
-        return Optional.ofNullable(userTypes.get(typeName))
-            .orElseThrow(() -> new RuntimeException("Cassandra UDT " + 
typeName + " can not be retrieved"));
     }
 
 }

Added: 
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=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,70 @@
+/****************************************************************
+ * 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.mailbox;
+
+import javax.inject.Singleton;
+
+import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator;
+import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.MailboxPathLocker;
+import org.apache.james.mailbox.SubscriptionManager;
+import org.apache.james.mailbox.cassandra.CassandraId;
+import org.apache.james.mailbox.cassandra.CassandraMailboxManager;
+import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
+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.exception.MailboxException;
+import org.apache.james.mailbox.store.Authenticator;
+import org.apache.james.mailbox.store.NoMailboxPathLocker;
+import org.apache.james.mailbox.store.mail.MessageMapperFactory;
+import org.apache.james.mailbox.store.mail.ModSeqProvider;
+import org.apache.james.mailbox.store.mail.UidProvider;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.TypeLiteral;
+import com.google.inject.multibindings.Multibinder;
+import com.google.inject.name.Named;
+
+public class CassandraMailboxModule extends AbstractModule {
+
+    public static final String MAILBOXMANAGER_NAME = "mailboxmanager";
+
+    @Override
+    protected void configure() {
+        bind(SubscriptionManager.class).to(CassandraSubscriptionManager.class);
+        bind(new 
TypeLiteral<MessageMapperFactory<CassandraId>>(){}).to(CassandraMailboxSessionMapperFactory.class);
+
+        bind(MailboxPathLocker.class).to(NoMailboxPathLocker.class);
+        bind(Authenticator.class).to(UserRepositoryAuthenticator.class);
+
+        bind(new TypeLiteral<ModSeqProvider<CassandraId>>(){}).to(new 
TypeLiteral<CassandraModSeqProvider>(){});
+        bind(new TypeLiteral<UidProvider<CassandraId>>(){}).to(new 
TypeLiteral<CassandraUidProvider>(){});
+        Multibinder<CassandraModule> cassandraDataDefinitions = 
Multibinder.newSetBinder(binder(), CassandraModule.class);
+        
cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.CassandraMailboxModule.class);
+    }
+    
+    @Provides @Named(MAILBOXMANAGER_NAME) @Singleton
+    public MailboxManager provideMailboxManager(CassandraMailboxManager 
cassandraMailboxManager) throws MailboxException {
+        cassandraMailboxManager.init();
+        return cassandraMailboxManager;
+    }
+}
\ No newline at end of file

Added: 
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=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,75 @@
+/****************************************************************
+ * 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.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.util.Set;
+
+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;
+
+public class CassandraSessionModule extends AbstractModule {
+
+    private final PropertiesReader propertiesReader;
+    private final String keyspace;
+
+    public CassandraSessionModule() {
+        propertiesReader = new PropertiesReader("cassandra.properties");
+        keyspace = propertiesReader.getProperty("cassandra.keyspace");
+    }
+
+    @Override
+    protected void configure() {
+
+    }
+    
+    @Provides
+    @Singleton
+    CassandraModule composeDataDefinitions(Set<CassandraModule> modules) {
+        return new CassandraModuleComposite(modules.toArray(new 
CassandraModule[0]));
+    }
+
+    @Provides
+    @Singleton
+    Session provideSession(Cluster cluster, CassandraModule cassandraModule) {
+        return new 
SessionWithInitializedTablesFactory(cassandraModule).createSession(cluster, 
keyspace);
+    }
+
+    @Provides
+    @Singleton
+    Cluster provideCluster() {
+        return 
ClusterWithKeyspaceCreatedFactory.clusterWithInitializedKeyspace(
+            ClusterFactory.createClusterForSingleServerWithoutPassWord(
+                propertiesReader.getProperty("cassandra.ip"),
+                
Integer.parseInt(propertiesReader.getProperty("cassandra.port"))),
+            keyspace,
+            
Integer.parseInt(propertiesReader.getProperty("cassandra.replication.factor")));
+    }
+
+}
\ No newline at end of file

Added: 
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=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,40 @@
+/****************************************************************
+ * 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.Provides;
+import com.google.inject.Singleton;
+import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.dnsservice.dnsjava.DNSJavaService;
+
+import com.google.inject.AbstractModule;
+
+public class DNSServiceModule extends AbstractModule {
+
+    @Override
+    protected void configure() {
+
+    }
+
+    @Provides
+    @Singleton
+    private DNSService provideDNSService() {
+        return new DNSJavaService();
+    }
+}
\ No newline at end of file

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SimpleMessageSearchModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SimpleMessageSearchModule.java?rev=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SimpleMessageSearchModule.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SimpleMessageSearchModule.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,17 @@
+package org.apache.james.modules.server;
+
+import org.apache.james.mailbox.cassandra.CassandraId;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.TypeLiteral;
+
+public class SimpleMessageSearchModule extends AbstractModule {
+
+    @Override
+    protected void configure() {
+        bind(new TypeLiteral<MessageSearchIndex<CassandraId>>(){}).to(new 
TypeLiteral<SimpleMessageSearchIndex<CassandraId>>(){});
+    }
+    
+}

Added: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/PropertiesReader.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/PropertiesReader.java?rev=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/PropertiesReader.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/PropertiesReader.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,43 @@
+/****************************************************************
+ * 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 com.google.common.base.Throwables;
+
+import java.io.IOException;
+import java.util.Properties;
+
+public class PropertiesReader {
+
+    private final Properties properties;
+
+    public PropertiesReader(String fileName) {
+        properties = new Properties();
+        try {
+            properties.load(ClassLoader.getSystemResourceAsStream(fileName));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
+    }
+
+    public String getProperty(String key) {
+        return properties.getProperty(key);
+    }
+}

Added: 
james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java?rev=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,83 @@
+/****************************************************************
+ * 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 java.util.Properties;
+
+import javax.mail.AuthenticationFailedException;
+import javax.mail.NoSuchProviderException;
+import javax.mail.Session;
+import javax.mail.Store;
+
+import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import com.google.inject.util.Modules;
+
+public class CassandraJamesServerTest {
+
+    private static final int IMAP_PORT = 1143; // You need to be root 
(superuser) to bind to ports under 1024.
+
+    private CassandraJamesServer server;
+
+    @Before
+    public void setup() throws Exception {
+        server = new 
CassandraJamesServer(Modules.override(CassandraJamesServerMain.defaultModule)
+                .with(new AbstractModule() {
+                    
+                    @Override
+                    protected void configure() {
+                    }
+                    
+                    @Provides
+                    @Singleton
+                    com.datastax.driver.core.Session 
provideSession(CassandraModule cassandraModule) {
+                        CassandraCluster cassandra = 
CassandraCluster.create(cassandraModule);
+                        return cassandra.getConf();
+                    }
+
+                }));
+        server.start();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        server.stop();
+    }
+
+    @Test (expected = AuthenticationFailedException.class)
+    public void connectShouldThrowWhenNoCrendentials() throws Exception {
+        store().connect();
+    }
+    
+    private Store store() throws NoSuchProviderException {
+        Properties properties = new Properties();
+        properties.put("mail.imap.host", "localhost");
+        properties.put("mail.imap.port", String.valueOf(IMAP_PORT));
+        Session session = Session.getDefaultInstance(properties);
+        session.setDebug(true);
+        return session.getStore("imap");
+    }
+}

Added: 
james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/PropertiesReadTest.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/PropertiesReadTest.java?rev=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/PropertiesReadTest.java
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/PropertiesReadTest.java
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,44 @@
+/****************************************************************
+ * 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 static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Test;
+
+public class PropertiesReadTest {
+
+    @Test
+    public void getPropertyShouldWork() throws Exception {
+        PropertiesReader propertiesReader = new 
PropertiesReader("test.properties");
+        
assertThat(propertiesReader.getProperty("cassandra.ip")).isEqualTo("127.0.0.1");
+    }
+    
+    @Test
+    public void getAbsentPropertyShouldReturnNull() throws Exception {
+        PropertiesReader propertiesReader = new 
PropertiesReader("test.properties");
+        assertThat(propertiesReader.getProperty("cassandra.isslow")).isNull();
+    }
+
+    @Test(expected = RuntimeException.class)
+    public void buildingAPropertiesReaderOnNonExistingValuesShouldThrow() 
throws Exception {
+        new PropertiesReader("fake.properties");
+    }
+}

Added: 
james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties?rev=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,6 @@
+# Configuration file for cassandra mailbox
+
+cassandra.ip=127.0.0.1
+cassandra.port=9142
+cassandra.keyspace=apache_james
+cassandra.replication.factor=1
\ No newline at end of file

Added: 
james/project/trunk/server/container/cassandra-guice/src/test/resources/test.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/resources/test.properties?rev=1712328&view=auto
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/test/resources/test.properties
 (added)
+++ 
james/project/trunk/server/container/cassandra-guice/src/test/resources/test.properties
 Tue Nov  3 16:46:53 2015
@@ -0,0 +1,6 @@
+# Configuration file for cassandra mailbox
+
+cassandra.ip=127.0.0.1
+cassandra.port=9142
+cassandra.keyspace=apache_james
+cassandra.replication.factor=1
\ No newline at end of file

Modified: 
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=1712328&r1=1712327&r2=1712328&view=diff
==============================================================================
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java
 (original)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java
 Tue Nov  3 16:46:53 2015
@@ -29,7 +29,6 @@ import java.util.stream.Collectors;
 
 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;
@@ -46,7 +45,7 @@ public class CassandraDomainList extends
 
     @Inject
     @Resource
-    public void setSession(@Named("cassandra-session") Session session) {
+    public void setSession(Session session) {
         this.session = session;
     }
 

Modified: 
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/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java?rev=1712328&r1=1712327&r2=1712328&view=diff
==============================================================================
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
 (original)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
 Tue Nov  3 16:46:53 2015
@@ -33,7 +33,6 @@ import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import javax.inject.Inject;
-import javax.inject.Named;
 
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
@@ -49,7 +48,7 @@ public class CassandraRecipientRewriteTa
 
     @Inject
     @Resource
-    public void setSession(@Named("cassandra-session") Session session) {
+    public void setSession(Session session) {
         this.session = session;
     }
 

Modified: 
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=1712328&r1=1712327&r2=1712328&view=diff
==============================================================================
--- 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
 (original)
+++ 
james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
 Tue Nov  3 16:46:53 2015
@@ -36,7 +36,6 @@ 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;
@@ -58,11 +57,16 @@ public class CassandraUsersRepository ex
 
     @Inject
     @Resource
-    public void setSession(@Named("cassandra-session") Session session) {
+    public void setSession(Session session) {
         this.session = session;
     }
 
     @Override
+    public boolean supportVirtualHosting() {
+        return true;
+    }
+    
+    @Override
     public User getUserByName(String name){
         ResultSet result = session.execute(
                 select(REALNAME, PASSWORD, ALGORITHM)

Modified: james/project/trunk/server/pom.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/pom.xml?rev=1712328&r1=1712327&r2=1712328&view=diff
==============================================================================
--- james/project/trunk/server/pom.xml (original)
+++ james/project/trunk/server/pom.xml Tue Nov  3 16:46:53 2015
@@ -534,7 +534,7 @@
                 <groupId>org.apache.james</groupId>
                 <artifactId>apache-james-mailbox-cassandra</artifactId>
                 <version>${mailbox.version}</version>
-                <scope>test</scope>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.james</groupId>
@@ -545,13 +545,11 @@
                 <groupId>org.apache.james</groupId>
                 <artifactId>apache-james-mailbox-elasticsearch</artifactId>
                 <version>${mailbox.version}</version>
-                <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.james</groupId>
                 <artifactId>apache-james-mailbox-tika</artifactId>
                 <version>${mailbox.version}</version>
-                <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.james</groupId>
@@ -903,8 +901,6 @@
                 <version>${mockito-core.version}</version>
                 <scope>test</scope>
             </dependency>
-
-
             <dependency>
                 <groupId>concurrent</groupId>
                 <artifactId>concurrent</artifactId>



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

Reply via email to