This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 38bd8e9d908c73cf754f6fb0b2f6c17b54269536 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Thu Apr 23 15:00:05 2020 +0700 JAMES-3140 Avoid a module override for CassandraBlobStore The "conbine" semantic for configuration enabled modules is safer (thus should be used) but then we can no longer override repvious declaration. A better organisation then need to be setted up. We need to split Cassandra Blob store dependency module from the actual declaration. --- .../james/mpt/smtp/CassandraSmtpTestRuleFactory.java | 2 ++ .../org/apache/james/CassandraJamesServerMain.java | 6 ++++-- ...java => CassandraBlobStoreDeclarationModule.java} | 20 +------------------- ...ava => CassandraBlobStoreDependenciesModule.java} | 8 +------- .../james/RabbitMQJamesServerReprocessingTest.java | 1 + 5 files changed, 9 insertions(+), 28 deletions(-) diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpTestRuleFactory.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpTestRuleFactory.java index 98cb9c4..dfec67e 100644 --- a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpTestRuleFactory.java +++ b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpTestRuleFactory.java @@ -24,6 +24,7 @@ import org.apache.james.GuiceJamesServer; import org.apache.james.backends.cassandra.DockerCassandra; import org.apache.james.backends.cassandra.init.configuration.ClusterConfiguration; import org.apache.james.dnsservice.api.DNSService; +import org.apache.james.modules.mailbox.CassandraBlobStoreDeclarationModule; import org.apache.james.modules.mailbox.KeyspacesConfiguration; import org.apache.james.modules.protocols.SmtpGuiceProbe.SmtpServerConnectedType; import org.apache.james.modules.server.CamelMailetContainerModule; @@ -48,6 +49,7 @@ public final class CassandraSmtpTestRuleFactory { return GuiceJamesServer.forConfiguration(configuration) .combineWith(CassandraJamesServerMain.CASSANDRA_SERVER_CORE_MODULE, + new CassandraBlobStoreDeclarationModule(), SmtpTestRule.SMTP_PROTOCOL_MODULE, binder -> binder.bind(MailQueueItemDecoratorFactory.class).to(RawMailQueueItemDecoratorFactory.class), binder -> binder.bind(CamelMailetContainerModule.DefaultProcessorsConfigurationSupplier.class) diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java index bc01ba1..440828e 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java @@ -35,7 +35,8 @@ import org.apache.james.modules.data.CassandraSieveRepositoryModule; import org.apache.james.modules.data.CassandraUsersRepositoryModule; import org.apache.james.modules.eventstore.CassandraEventStoreModule; import org.apache.james.modules.mailbox.BlobStoreAPIModule; -import org.apache.james.modules.mailbox.CassandraBlobStoreModule; +import org.apache.james.modules.mailbox.CassandraBlobStoreDeclarationModule; +import org.apache.james.modules.mailbox.CassandraBlobStoreDependenciesModule; import org.apache.james.modules.mailbox.CassandraDeletedMessageVaultModule; import org.apache.james.modules.mailbox.CassandraMailboxModule; import org.apache.james.modules.mailbox.CassandraQuotaMailingModule; @@ -123,12 +124,12 @@ public class CassandraJamesServerMain implements JamesServerMain { public static final Module CASSANDRA_SERVER_CORE_MODULE = Modules.combine( new ActiveMQQueueModule(), + new CassandraBlobStoreDependenciesModule(), new CassandraDomainListModule(), new CassandraDLPConfigurationStoreModule(), new CassandraEventStoreModule(), new CassandraMailRepositoryModule(), new CassandraMetricsModule(), - new CassandraBlobStoreModule(), new CassandraRecipientRewriteTableModule(), new CassandraSessionModule(), new CassandraSieveRepositoryModule(), @@ -154,6 +155,7 @@ public class CassandraJamesServerMain implements JamesServerMain { new DKIMMailetModule()); public static Module ALL_BUT_JMX_CASSANDRA_MODULE = Modules.combine( + new CassandraBlobStoreDeclarationModule(), REQUIRE_TASK_MANAGER_MODULE, new TaskManagerModule(), CASSANDRA_EVENT_STORE_JSON_SERIALIZATION_DEFAULT_MODULE diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDeclarationModule.java similarity index 62% copy from server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java copy to server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDeclarationModule.java index 97f5eb6..e885e15 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDeclarationModule.java @@ -19,36 +19,18 @@ package org.apache.james.modules.mailbox; -import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.blob.api.BlobStore; -import org.apache.james.blob.api.BucketName; import org.apache.james.blob.api.MetricableBlobStore; -import org.apache.james.blob.cassandra.CassandraBlobModule; import org.apache.james.blob.cassandra.CassandraBlobStore; -import org.apache.james.blob.cassandra.CassandraDefaultBucketDAO; -import org.apache.james.blob.cassandra.CassandraDumbBlobStore; import com.google.inject.AbstractModule; -import com.google.inject.Scopes; -import com.google.inject.multibindings.Multibinder; import com.google.inject.name.Names; -public class CassandraBlobStoreModule extends AbstractModule { +public class CassandraBlobStoreDeclarationModule extends AbstractModule { @Override protected void configure() { - bind(CassandraDefaultBucketDAO.class).in(Scopes.SINGLETON); - bind(CassandraBlobStore.class).in(Scopes.SINGLETON); - bind(CassandraDumbBlobStore.class).in(Scopes.SINGLETON); - - bind(BucketName.class) - .annotatedWith(Names.named(CassandraDumbBlobStore.DEFAULT_BUCKET)) - .toInstance(BucketName.DEFAULT); - bind(BlobStore.class) .annotatedWith(Names.named(MetricableBlobStore.BLOB_STORE_IMPLEMENTATION)) .to(CassandraBlobStore.class); - - Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class); - cassandraDataDefinitions.addBinding().toInstance(CassandraBlobModule.MODULE); } } diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java similarity index 88% rename from server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java rename to server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java index 97f5eb6..ea5b1a7 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java @@ -20,9 +20,7 @@ package org.apache.james.modules.mailbox; import org.apache.james.backends.cassandra.components.CassandraModule; -import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.MetricableBlobStore; import org.apache.james.blob.cassandra.CassandraBlobModule; import org.apache.james.blob.cassandra.CassandraBlobStore; import org.apache.james.blob.cassandra.CassandraDefaultBucketDAO; @@ -33,7 +31,7 @@ import com.google.inject.Scopes; import com.google.inject.multibindings.Multibinder; import com.google.inject.name.Names; -public class CassandraBlobStoreModule extends AbstractModule { +public class CassandraBlobStoreDependenciesModule extends AbstractModule { @Override protected void configure() { bind(CassandraDefaultBucketDAO.class).in(Scopes.SINGLETON); @@ -44,10 +42,6 @@ public class CassandraBlobStoreModule extends AbstractModule { .annotatedWith(Names.named(CassandraDumbBlobStore.DEFAULT_BUCKET)) .toInstance(BucketName.DEFAULT); - bind(BlobStore.class) - .annotatedWith(Names.named(MetricableBlobStore.BLOB_STORE_IMPLEMENTATION)) - .to(CassandraBlobStore.class); - Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class); cassandraDataDefinitions.addBinding().toInstance(CassandraBlobModule.MODULE); } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/RabbitMQJamesServerReprocessingTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/RabbitMQJamesServerReprocessingTest.java index 59c3ab8..f5aa48f 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/RabbitMQJamesServerReprocessingTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/RabbitMQJamesServerReprocessingTest.java @@ -26,6 +26,7 @@ import org.apache.james.jmap.draft.JmapJamesServerContract; import org.apache.james.mailrepository.api.MailRepositoryUrl; import org.apache.james.modules.RabbitMQExtension; import org.apache.james.modules.TestJMAPServerModule; +import org.apache.james.modules.blobstore.BlobStoreChoosingModule; import org.apache.james.modules.protocols.SmtpGuiceProbe; import org.apache.james.utils.MailRepositoryProbeImpl; import org.apache.james.utils.SMTPMessageSender; --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org