JAMES-2470 Cassandra cleanup should rely on CleanupTasks and not probes
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/99339b11 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/99339b11 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/99339b11 Branch: refs/heads/master Commit: 99339b113ae45cfc8741d84577ea3526d304669e Parents: c1ae826 Author: benwa <[email protected]> Authored: Thu Jul 19 17:24:36 2018 +0700 Committer: benwa <[email protected]> Committed: Fri Jul 20 18:18:14 2018 +0700 ---------------------------------------------------------------------- .../james/server/CassandraCleanupProbe.java | 40 -------------------- .../server/CassandraTruncateTableTask.java | 40 ++++++++++++++++++++ .../org/apache/james/DockerCassandraRule.java | 7 ++-- .../cassandra/cucumber/CassandraStepdefs.java | 6 +-- 4 files changed, 46 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/99339b11/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraCleanupProbe.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraCleanupProbe.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraCleanupProbe.java deleted file mode 100644 index fe8989d..0000000 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraCleanupProbe.java +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************** - * 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.server; - -import javax.annotation.PreDestroy; -import javax.inject.Inject; - -import org.apache.james.backends.cassandra.init.CassandraTableManager; -import org.apache.james.utils.GuiceProbe; - -public class CassandraCleanupProbe implements GuiceProbe { - private final CassandraTableManager tableManager; - - @Inject - public CassandraCleanupProbe(CassandraTableManager tableManager) { - this.tableManager = tableManager; - } - - @PreDestroy - public void clearAllTables() { - tableManager.clearAllTables(); - } -} http://git-wip-us.apache.org/repos/asf/james-project/blob/99339b11/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraTruncateTableTask.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraTruncateTableTask.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraTruncateTableTask.java new file mode 100644 index 0000000..741e6a6 --- /dev/null +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraTruncateTableTask.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.server; + +import javax.inject.Inject; + +import org.apache.james.CleanupTasksPerformer; +import org.apache.james.backends.cassandra.init.CassandraTableManager; + +public class CassandraTruncateTableTask implements CleanupTasksPerformer.CleanupTask { + private final CassandraTableManager tableManager; + + @Inject + public CassandraTruncateTableTask(CassandraTableManager tableManager) { + this.tableManager = tableManager; + } + + @Override + public Result run() { + tableManager.clearAllTables(); + return Result.COMPLETED; + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/99339b11/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java index cbf2fe4..d8d0369 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java @@ -20,9 +20,8 @@ package org.apache.james; import org.apache.james.backends.cassandra.init.configuration.ClusterConfiguration; -import org.apache.james.server.CassandraCleanupProbe; +import org.apache.james.server.CassandraTruncateTableTask; import org.apache.james.util.Host; -import org.apache.james.utils.GuiceProbe; import org.junit.runner.Description; import org.junit.runners.model.Statement; import org.testcontainers.containers.GenericContainer; @@ -54,9 +53,9 @@ public class DockerCassandraRule implements GuiceModuleTestRule { .maxRetry(20) .minDelay(5000) .build()), - binder -> Multibinder.newSetBinder(binder, GuiceProbe.class) + binder -> Multibinder.newSetBinder(binder, CleanupTasksPerformer.CleanupTask.class) .addBinding() - .to(CassandraCleanupProbe.class)); + .to(CassandraTruncateTableTask.class)); } public String getIp() { http://git-wip-us.apache.org/repos/asf/james-project/blob/99339b11/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java index 1e16410..1fd8703 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java @@ -27,6 +27,7 @@ import javax.inject.Inject; import org.apache.activemq.store.PersistenceAdapter; import org.apache.activemq.store.memory.MemoryPersistenceAdapter; +import org.apache.james.CleanupTasksPerformer; import org.apache.james.DockerCassandraRule; import org.apache.james.GuiceJamesServer; import org.apache.james.backends.es.EmbeddedElasticSearch; @@ -40,9 +41,8 @@ import org.apache.james.mailbox.store.search.PDFTextExtractor; import org.apache.james.modules.TestESMetricReporterModule; import org.apache.james.modules.TestElasticSearchModule; import org.apache.james.modules.TestJMAPServerModule; -import org.apache.james.server.CassandraCleanupProbe; +import org.apache.james.server.CassandraTruncateTableTask; import org.apache.james.server.core.configuration.Configuration; -import org.apache.james.utils.GuiceProbe; import org.junit.rules.TemporaryFolder; import com.github.fge.lambdas.runnable.ThrowingRunnable; @@ -86,7 +86,7 @@ public class CassandraStepdefs { .overrideWith(cassandraServer.getModule()) .overrideWith(binder -> binder.bind(TextExtractor.class).to(DefaultTextExtractor.class)) .overrideWith((binder) -> binder.bind(PersistenceAdapter.class).to(MemoryPersistenceAdapter.class)) - .overrideWith(binder -> Multibinder.newSetBinder(binder, GuiceProbe.class).addBinding().to(CassandraCleanupProbe.class)); + .overrideWith(binder -> Multibinder.newSetBinder(binder, CleanupTasksPerformer.CleanupTask.class).addBinding().to(CassandraTruncateTableTask.class)); mainStepdefs.awaitMethod = () -> embeddedElasticSearch.awaitForElasticSearch(); mainStepdefs.init(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
