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]

Reply via email to