JAMES-2470 implement cleanup tasks as a @PreDestroy component
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c51ae8ff Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c51ae8ff Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c51ae8ff Branch: refs/heads/master Commit: c51ae8fff4e4551ac4dae944dcfb585d98c421d6 Parents: 3b223d5 Author: Matthieu Baechler <[email protected]> Authored: Mon Nov 19 17:07:31 2018 +0100 Committer: Matthieu Baechler <[email protected]> Committed: Wed Dec 19 09:53:14 2018 +0100 ---------------------------------------------------------------------- .../james/mpt/smtp/CassandraRabbitMQSwiftSmtpTestRule.java | 4 +++- .../src/test/java/org/apache/james/CassandraJmapTestRule.java | 1 + .../org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java | 1 + .../src/main/java/org/apache/james/CleanupTasksPerformer.java | 2 ++ .../src/main/java/org/apache/james/GuiceJamesServer.java | 3 --- .../test/java/org/apache/james/JamesServerExtensionBuilder.java | 5 ++++- .../apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java | 3 ++- .../apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java | 3 ++- .../james/webadmin/integration/CassandraJmapExtension.java | 4 +++- 9 files changed, 18 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/mpt/impl/smtp/cassandra-rabbitmq-swift/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQSwiftSmtpTestRule.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra-rabbitmq-swift/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQSwiftSmtpTestRule.java b/mpt/impl/smtp/cassandra-rabbitmq-swift/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQSwiftSmtpTestRule.java index 71d6dd9..2f6c3a2 100644 --- a/mpt/impl/smtp/cassandra-rabbitmq-swift/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQSwiftSmtpTestRule.java +++ b/mpt/impl/smtp/cassandra-rabbitmq-swift/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQSwiftSmtpTestRule.java @@ -23,6 +23,7 @@ import java.util.function.Function; import org.apache.commons.configuration.DefaultConfigurationBuilder; import org.apache.james.CassandraJamesServerMain; +import org.apache.james.CleanupTasksPerformer; import org.apache.james.GuiceJamesServer; import org.apache.james.backend.rabbitmq.DockerRabbitMQSingleton; import org.apache.james.backends.cassandra.init.configuration.ClusterConfiguration; @@ -169,7 +170,8 @@ public class CassandraRabbitMQSwiftSmtpTestRule implements TestRule, SmtpHostSys .keyspace("testing") .replicationFactor(1) .build()), - binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)); + binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) + .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton())); } private void createSessionFactory() { http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java index 962f6a6..120ed3b 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java @@ -67,6 +67,7 @@ public class CassandraJmapTestRule implements TestRule { .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES)) .overrideWith(new TestESMetricReporterModule()) .overrideWith(guiceModuleTestRule.getModule()) + .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton())) .overrideWith(additionals); } http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java index b38851a..1f988ad 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java @@ -70,6 +70,7 @@ public class CassandraRabbitMQSwiftJmapTestRule implements TestRule { .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES)) .overrideWith(new TestESMetricReporterModule()) .overrideWith(guiceModuleTestRule.getModule()) + .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton())) .overrideWith(additionals); } http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/server/container/guice/guice-common/src/main/java/org/apache/james/CleanupTasksPerformer.java ---------------------------------------------------------------------- diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/CleanupTasksPerformer.java b/server/container/guice/guice-common/src/main/java/org/apache/james/CleanupTasksPerformer.java index 56772ac..c9e8396 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/CleanupTasksPerformer.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/CleanupTasksPerformer.java @@ -21,6 +21,7 @@ package org.apache.james; import java.util.Set; +import javax.annotation.PreDestroy; import javax.inject.Inject; import org.apache.james.task.Task; @@ -41,6 +42,7 @@ public class CleanupTasksPerformer { this.cleanupTasks = cleanupTasks; } + @PreDestroy public void clean() { Runnables .runParallel( http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java ---------------------------------------------------------------------- diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java b/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java index fa37195..74c7c64 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java @@ -20,7 +20,6 @@ package org.apache.james; import java.util.Arrays; import java.util.List; -import java.util.Optional; import javax.annotation.PreDestroy; @@ -82,13 +81,11 @@ public class GuiceJamesServer { preDestroy = injector.getInstance(Key.get(new TypeLiteral<Stager<PreDestroy>>() {})); injector.getInstance(ConfigurationsPerformer.class).initModules(); guiceProbeProvider = injector.getInstance(GuiceProbeProvider.class); - cleanupTasksPerformer = injector.getInstance(CleanupTasksPerformer.class); isStartedProbe.notifyStarted(); } public void stop() { isStartedProbe.notifyStoped(); - Optional.ofNullable(cleanupTasksPerformer).ifPresent(CleanupTasksPerformer::clean); if (preDestroy != null) { preDestroy.stage(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java ---------------------------------------------------------------------- diff --git a/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java b/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java index 8d521c0..1dbee14 100644 --- a/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java +++ b/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java @@ -112,7 +112,10 @@ public class JamesServerExtensionBuilder { .map(GuiceModuleTestExtension::getModule) .collect(Guavate.toImmutableList()); - return server.buildServer(configurationProvider.buildConfiguration(file)).overrideWith(modules); + return server + .buildServer(configurationProvider.buildConfiguration(file)) + .overrideWith(modules) + .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton())); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/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 cf5da77..4cb6304 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 @@ -84,7 +84,8 @@ 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, CleanupTasksPerformer.CleanupTask.class).addBinding().to(CassandraTruncateTableTask.class)); + .overrideWith(binder -> Multibinder.newSetBinder(binder, CleanupTasksPerformer.CleanupTask.class).addBinding().to(CassandraTruncateTableTask.class)) + .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton())); mainStepdefs.awaitMethod = () -> embeddedElasticSearch.awaitForElasticSearch(); mainStepdefs.init(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java index 83cbab3..027f793 100644 --- a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java +++ b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java @@ -94,7 +94,8 @@ public class RabbitMQStepdefs { .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, CleanupTasksPerformer.CleanupTask.class).addBinding().to(CassandraTruncateTableTask.class)); + .overrideWith(binder -> Multibinder.newSetBinder(binder, CleanupTasksPerformer.CleanupTask.class).addBinding().to(CassandraTruncateTableTask.class)) + .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton())); mainStepdefs.awaitMethod = () -> embeddedElasticSearch.awaitForElasticSearch(); mainStepdefs.init(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/c51ae8ff/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java ---------------------------------------------------------------------- diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java index 20ffeff..56ea367 100644 --- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java +++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java @@ -22,6 +22,7 @@ import static org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MO import java.io.IOException; +import org.apache.james.CleanupTasksPerformer; import org.apache.james.DockerCassandraRule; import org.apache.james.GuiceJamesServer; import org.apache.james.backends.es.EmbeddedElasticSearch; @@ -70,7 +71,8 @@ public class CassandraJmapExtension implements BeforeAllCallback, AfterAllCallba .overrideWith(cassandra.getModule()) .overrideWith(new TestElasticSearchModule(elasticSearch)) .overrideWith(new WebAdminConfigurationModule()) - .overrideWith(new UnauthorizedModule()); + .overrideWith(new UnauthorizedModule()) + .overrideWith((binder -> binder.bind(CleanupTasksPerformer.class).asEagerSingleton())); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
