You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2016/04/07 05:10:15 UTC

[5/9] james-project git commit: JAMES-1617 MPT test for ManageSieve with Cassandra Storage

JAMES-1617 MPT test for ManageSieve with Cassandra Storage


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a081bfd8
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a081bfd8
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a081bfd8

Branch: refs/heads/master
Commit: a081bfd8689a7818207e2fad10c44a0ef719ab1c
Parents: 96dfc5d
Author: Benoit Tellier <bt...@apache.org>
Authored: Wed Feb 17 14:20:26 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Apr 7 09:13:35 2016 +0700

----------------------------------------------------------------------
 mpt/impl/managesieve/cassandra/pom.xml          | 216 +++++++++++++++++++
 .../managesieve/cassandra/CassandraModule.java  |  40 ++++
 .../cassandra/ManageSieveCassandraTest.java     |  60 ++++++
 .../cassandra/host/CassandraHostSystem.java     |  59 +++++
 mpt/impl/managesieve/file/pom.xml               |   2 -
 .../managesieve/file/host/FileHostSystem.java   |   1 +
 mpt/impl/managesieve/pom.xml                    |  71 ++++++
 mpt/pom.xml                                     |   5 +
 .../cassandra/CassandraUsersRepository.java     |  10 +-
 .../james/user/lib/AbstractUsersRepository.java |   6 +-
 10 files changed, 462 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/impl/managesieve/cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/cassandra/pom.xml b/mpt/impl/managesieve/cassandra/pom.xml
new file mode 100644
index 0000000..c823357
--- /dev/null
+++ b/mpt/impl/managesieve/cassandra/pom.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>apache-james-mpt-managesieve</artifactId>
+        <groupId>org.apache.james</groupId>
+        <version>0.2-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>apache-james-mpt-managesieve-cassandra</artifactId>
+
+    <name>Apache James MPT ManageSieve Cassandra</name>
+
+    <profiles>
+        <profile>
+            <id>disable-build-for-older-jdk</id>
+            <activation>
+                <jdk>(,1.8)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-jar-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>default-jar</id>
+                                <phase>none</phase>
+                            </execution>
+                            <execution>
+                                <id>jar</id>
+                                <phase>none</phase>
+                            </execution>
+                            <execution>
+                                <id>test-jar</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-compiler-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>default-compile</id>
+                                <phase>none</phase>
+                            </execution>
+                            <execution>
+                                <id>default-testCompile</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>default-test</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-source-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-sources</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-install-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>default-install</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>default-resources</id>
+                                <phase>none</phase>
+                            </execution>
+                            <execution>
+                                <id>default-testResources</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-site-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-descriptor</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>build-for-jdk-8</id>
+            <activation>
+                <jdk>[1.8,)</jdk>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>org.apache.james</groupId>
+                    <artifactId>apache-james-mpt-managesieve-core</artifactId>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.james</groupId>
+                    <artifactId>apache-james-backends-cassandra</artifactId>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.james</groupId>
+                    <artifactId>apache-james-backends-cassandra</artifactId>
+                    <type>test-jar</type>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.james</groupId>
+                    <artifactId>james-server-data-cassandra</artifactId>
+                </dependency>
+                <dependency>
+                    <groupId>org.cassandraunit</groupId>
+                    <artifactId>cassandra-unit</artifactId>
+                    <scope>test</scope>
+                </dependency>
+            </dependencies>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <configuration>
+                            <archive>
+                                <manifest>
+                                    <mainClass>fully.qualified.MainClass</mainClass>
+                                </manifest>
+                            </archive>
+                            <descriptorRefs>
+                                <descriptorRef>jar-with-dependencies</descriptorRef>
+                            </descriptorRefs>
+                        </configuration>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-compiler-plugin</artifactId>
+                        <configuration>
+                            <source>1.8</source>
+                            <target>1.8</target>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>disable-animal-sniffer</id>
+            <activation>
+                <jdk>[1.6,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>animal-sniffer-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>check_java_6</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>**/suite/*.java</exclude>
+                        <exclude>**/suite/**/*.java</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/CassandraModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/CassandraModule.java b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/CassandraModule.java
new file mode 100644
index 0000000..6c22f05
--- /dev/null
+++ b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/CassandraModule.java
@@ -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.mpt.managesieve.cassandra;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import org.apache.james.mpt.host.ManageSieveHostSystem;
+import org.apache.james.mpt.managesieve.cassandra.host.CassandraHostSystem;
+
+public class CassandraModule extends AbstractModule {
+
+    @Override
+    protected void configure() {
+
+    }
+
+    @Provides
+    @Singleton
+    public ManageSieveHostSystem provideHostSystem() throws Exception {
+        return new CassandraHostSystem();
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/ManageSieveCassandraTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/ManageSieveCassandraTest.java b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/ManageSieveCassandraTest.java
new file mode 100644
index 0000000..f41af26
--- /dev/null
+++ b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/ManageSieveCassandraTest.java
@@ -0,0 +1,60 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mpt.managesieve.cassandra;
+
+import org.apache.james.mpt.testsuite.AuthenticateTest;
+import org.apache.james.mpt.testsuite.CapabilityTest;
+import org.apache.james.mpt.testsuite.CheckScriptTest;
+import org.apache.james.mpt.testsuite.DeleteScriptTest;
+import org.apache.james.mpt.testsuite.GetScriptTest;
+import org.apache.james.mpt.testsuite.HaveSpaceTest;
+import org.apache.james.mpt.testsuite.ListScriptsTest;
+import org.apache.james.mpt.testsuite.LogoutTest;
+import org.apache.james.mpt.testsuite.NoopTest;
+import org.apache.james.mpt.testsuite.PutScriptTest;
+import org.apache.james.mpt.testsuite.RenameScriptTest;
+import org.apache.james.mpt.testsuite.SetActiveTest;
+import org.apache.james.mpt.testsuite.StartTlsTest;
+import org.apache.james.mpt.testsuite.UnauthenticatedTest;
+import org.apache.onami.test.OnamiSuite;
+import org.apache.onami.test.annotation.GuiceModules;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@GuiceModules({ CassandraModule.class })
+@RunWith(OnamiSuite.class)
+@Suite.SuiteClasses({
+    NoopTest.class,
+    UnauthenticatedTest.class,
+    LogoutTest.class,
+    AuthenticateTest.class,
+    StartTlsTest.class,
+    CapabilityTest.class,
+    HaveSpaceTest.class,
+    PutScriptTest.class,
+    SetActiveTest.class,
+    GetScriptTest.class,
+    DeleteScriptTest.class,
+    RenameScriptTest.class,
+    CheckScriptTest.class,
+    ListScriptsTest.class
+})
+public class ManageSieveCassandraTest {
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java
new file mode 100644
index 0000000..4f317e8
--- /dev/null
+++ b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java
@@ -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.mpt.managesieve.cassandra.host;
+
+import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
+import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
+import org.apache.james.mpt.host.JamesManageSieveHostSystem;
+import org.apache.james.sieve.cassandra.CassandraSieveDAO;
+import org.apache.james.sieve.cassandra.CassandraSieveRepository;
+import org.apache.james.sieve.cassandra.CassandraSieveRepositoryModule;
+import org.apache.james.sieverepository.api.SieveRepository;
+import org.apache.james.user.api.UsersRepository;
+import org.apache.james.user.cassandra.CassandraUsersRepository;
+import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.user.cassandra.CassandraUsersRepositoryModule;
+
+public class CassandraHostSystem extends JamesManageSieveHostSystem {
+    private static CassandraCluster CASSANDRA_CLUSTER = CassandraCluster.create(new CassandraModuleComposite(
+        new CassandraSieveRepositoryModule(),
+        new CassandraUsersRepositoryModule()));
+
+    public CassandraHostSystem() throws Exception {
+        super(createUsersRepository(), createSieveRepository());
+    }
+
+    protected static SieveRepository createSieveRepository() throws Exception {
+        return new CassandraSieveRepository(new CassandraSieveDAO(CASSANDRA_CLUSTER.getConf()));
+    }
+
+    protected static UsersRepository createUsersRepository() {
+        CassandraUsersRepository cassandraUsersRepository = new CassandraUsersRepository();
+        cassandraUsersRepository.setSession(CASSANDRA_CLUSTER.getConf());
+        cassandraUsersRepository.setEnableVirtualHosting(false);
+        return cassandraUsersRepository;
+    }
+
+    @Override
+    protected void resetData() throws Exception {
+        CASSANDRA_CLUSTER.clearAllTables();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/impl/managesieve/file/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/file/pom.xml b/mpt/impl/managesieve/file/pom.xml
index 937df41..4fa2df9 100644
--- a/mpt/impl/managesieve/file/pom.xml
+++ b/mpt/impl/managesieve/file/pom.xml
@@ -35,7 +35,6 @@
         <dependency>
             <groupId>org.apache.james</groupId>
             <artifactId>apache-james-mpt-managesieve-core</artifactId>
-            <version>0.2-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.james</groupId>
@@ -45,7 +44,6 @@
         <dependency>
             <groupId>org.apache.james</groupId>
             <artifactId>james-server-data-memory</artifactId>
-            <version>${james.version}</version>
         </dependency>
     </dependencies>
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/host/FileHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/host/FileHostSystem.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/host/FileHostSystem.java
index 2ed61f3..a6260bf 100644
--- a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/host/FileHostSystem.java
+++ b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/host/FileHostSystem.java
@@ -11,6 +11,7 @@ import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.mpt.host.JamesManageSieveHostSystem;
 import org.apache.james.sieverepository.api.SieveRepository;
 import org.apache.james.sieverepository.file.SieveFileRepository;
+import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.memory.MemoryUsersRepository;
 
 public class FileHostSystem extends JamesManageSieveHostSystem {

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/impl/managesieve/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/pom.xml b/mpt/impl/managesieve/pom.xml
index a802e5d..7c604a7 100644
--- a/mpt/impl/managesieve/pom.xml
+++ b/mpt/impl/managesieve/pom.xml
@@ -14,10 +14,81 @@
 
     <artifactId>apache-james-mpt-managesieve</artifactId>
     <packaging>pom</packaging>
+
     <modules>
         <module>core</module>
         <module>file</module>
+        <module>cassandra</module>
     </modules>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>apache-james-mpt-managesieve-cassandra</artifactId>
+                <version>${project.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>apache-james-mpt-managesieve-file</artifactId>
+                <version>${project.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>apache-james-mpt-managesieve-core</artifactId>
+                <version>0.2-SNAPSHOT</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>james-server-data-memory</artifactId>
+                <version>${james.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <profiles>
+        <profile>
+            <id>cassandra</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <includes>
+                                <include>**/cassandra/**/*.java</include>
+                            </includes>
+                            <excludes>
+                                <exclude>**/suite/*.java</exclude>
+                                <exclude>**/suite/**/*.java</exclude>
+                            </excludes>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>file</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <includes>
+                                <include>**/file/**/*.java</include>
+                            </includes>
+                            <excludes>
+                                <exclude>**/suite/*.java</exclude>
+                                <exclude>**/suite/**/*.java</exclude>
+                            </excludes>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/mpt/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/pom.xml b/mpt/pom.xml
index afc2fd6..fbe5819 100644
--- a/mpt/pom.xml
+++ b/mpt/pom.xml
@@ -251,6 +251,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.james</groupId>
+                <artifactId>james-server-data-cassandra</artifactId>
+                <version>${james.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.james</groupId>
                 <artifactId>james-server-dnsservice-api</artifactId>
                 <version>${james.version}</version>
             </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
index a51fbfa..958dca9 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
@@ -60,11 +60,6 @@ public class CassandraUsersRepository extends AbstractUsersRepository {
     public void setSession(Session session) {
         this.session = session;
     }
-
-    @Override
-    public boolean supportVirtualHosting() {
-        return true;
-    }
     
     @Override
     public User getUserByName(String name){
@@ -163,4 +158,9 @@ public class CassandraUsersRepository extends AbstractUsersRepository {
             throw new UsersRepositoryException("User with username " + username + " already exist!");
         }
     }
+
+    @Override
+    protected boolean getDefaultVirtualHostingValue() {
+        return true;
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a081bfd8/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
index b3988ab..3f57dba 100644
--- a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
@@ -55,11 +55,15 @@ public abstract class AbstractUsersRepository implements UsersRepository, LogEna
      */
     public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
 
-        virtualHosting = configuration.getBoolean("enableVirtualHosting", false);
+        virtualHosting = configuration.getBoolean("enableVirtualHosting", getDefaultVirtualHostingValue());
 
         doConfigure(configuration);
     }
 
+    protected boolean getDefaultVirtualHostingValue() {
+        return false;
+    }
+
     protected void doConfigure(HierarchicalConfiguration config) throws ConfigurationException {
     }
 


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