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 ro...@apache.org on 2018/12/19 11:01:16 UTC

[2/2] james-project git commit: JAMES-2470 implement cleanup tasks as a @PreDestroy component

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 <ma...@apache.org>
Authored: Mon Nov 19 17:07:31 2018 +0100
Committer: Matthieu Baechler <ma...@apache.org>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org