Author: matthieu Date: Mon Nov 2 14:15:39 2015 New Revision: 1712006 URL: http://svn.apache.org/viewvc?rev=1712006&view=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&view=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<CassandraTable> tables; + private final List<CassandraIndex> index; + private final List<CassandraType> types; + + public CassandraRRTModule() { + tables = Arrays.asList(); + index = Arrays.asList(); + types = Arrays.asList(); + } + + @Override + public List<CassandraTable> moduleTables() { + return tables; + } + + @Override + public List<CassandraIndex> moduleIndex() { + return index; + } + + @Override + public List<CassandraType> 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/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java?rev=1712006&view=auto ============================================================================== --- james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java (added) +++ james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java Mon Nov 2 14:15:39 2015 @@ -0,0 +1,52 @@ +/**************************************************************** + * 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.Collection; +import java.util.Map; + +import org.apache.james.rrt.api.RecipientRewriteTableException; +import org.apache.james.rrt.lib.AbstractRecipientRewriteTable; + +public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTable { + + @Override + protected void addMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException { + } + + @Override + protected void removeMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException { + } + + @Override + protected Collection<String> getUserDomainMappingsInternal(String user, String domain) throws RecipientRewriteTableException { + return null; + } + + @Override + protected Map<String, Collection<String>> getAllMappingsInternal() throws RecipientRewriteTableException { + return null; + } + + @Override + protected String mapAddressInternal(String user, String domain) throws RecipientRewriteTableException { + return null; + } + +} Added: james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java?rev=1712006&view=auto ============================================================================== --- james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java (added) +++ james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java Mon Nov 2 14:15:39 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.rrt.cassandra; + +import org.apache.james.rrt.api.RecipientRewriteTableException; +import org.apache.james.rrt.lib.AbstractRecipientRewriteTable; +import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest; +import org.junit.Ignore; + +@Ignore +public class CassandraRecipientRewriteTableTest extends AbstractRecipientRewriteTableTest { + + @Override + protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception { + return null; + } + + @Override + protected boolean addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException { + return false; + } + + @Override + protected boolean removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException { + return false; + } + +} Added: james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java?rev=1712006&view=auto ============================================================================== --- james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java (added) +++ james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java Mon Nov 2 14:15:39 2015 @@ -0,0 +1,58 @@ +/**************************************************************** + * 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 org.apache.commons.configuration.DefaultConfigurationBuilder; +import org.apache.james.backends.cassandra.CassandraClusterSingleton; +import org.apache.james.rrt.lib.AbstractRecipientRewriteTable; +import org.apache.james.rrt.lib.RewriteTablesStepdefs; +import org.slf4j.LoggerFactory; + +import cucumber.api.java.After; +import cucumber.api.java.Before; + +public class CassandraStepdefs { + + private CassandraClusterSingleton cassandra; + + private RewriteTablesStepdefs mainStepdefs; + + public CassandraStepdefs(RewriteTablesStepdefs mainStepdefs) { + this.mainStepdefs = mainStepdefs; + } + + @Before + public void setup() throws Throwable { + cassandra = CassandraClusterSingleton.create(new CassandraRRTModule()); + cassandra.ensureAllTables(); + mainStepdefs.rewriteTable = getRecipientRewriteTable(); + } + + @After + public void tearDown() { + cassandra.clearAllTables(); + } + + private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception { + CassandraRecipientRewriteTable rrt = new CassandraRecipientRewriteTable(); + rrt.setLog(LoggerFactory.getLogger("MockLog")); + rrt.configure(new DefaultConfigurationBuilder()); + return rrt; + } +} Added: james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java?rev=1712006&view=auto ============================================================================== --- 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/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java Mon Nov 2 14:15:39 2015 @@ -0,0 +1,35 @@ +/**************************************************************** + * 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 org.junit.Ignore; +import org.junit.runner.RunWith; + +import cucumber.api.CucumberOptions; +import cucumber.api.junit.Cucumber; + +@Ignore +@RunWith(Cucumber.class) +@CucumberOptions( + features = { "classpath:cucumber/" }, + glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.cassandra" }, + tags = { "~@ignore" } + ) +public class RewriteTablesTest { +} --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org