From 7faac284dfda3775fdbf6774b2eb5f59f596a2d7 Mon Sep 17 00:00:00 2001 From: Benoit Tellier Date: Sat, 10 Aug 2019 12:33:09 +0200 Subject: [PATCH] JAMES-2854 ConfigurationPerformer should be bound to a single startable Loops are supported by injection framework through stubbing. However, this does not play well with the "initialization will follow injection path" strategy: some modules might try to init against "not yet initialized" components that were stubbed by the init strategy. The issue here is that multi-components configuration performers adds additional complexity, and creates dependencies (init A & B at the same time) that lead to failures while modifying some injections. Saying "1 startable = 1 performer" prevents us from this, and fits our usage. --- .../data/CassandraDomainListModule.java | 8 +-- .../CassandraRecipientRewriteTableModule.java | 8 +-- .../data/CassandraUsersRepositoryModule.java | 7 +- .../mailbox/ElasticSearchMailboxModule.java | 7 +- .../ElasticSearchQuotaSearcherModule.java | 6 +- .../metrics/CassandraMetricsModule.java | 9 +-- ...assandraMessageIdManagerInjectionTest.java | 9 +-- .../james/data/LdapUsersRepositoryModule.java | 7 +- .../modules/event/RabbitMQEventBusModule.java | 7 +- .../james/utils/ConfigurationPerformer.java | 10 +-- .../ElasticSearchMetricReporterModule.java | 7 +- .../modules/server/DNSServiceModule.java | 7 +- .../server/DropWizardMetricsModule.java | 35 +++------ .../server/MailStoreRepositoryModule.java | 6 +- .../james/utils/ConfigurationsPerformer.java | 2 +- .../modules/ConfigurationsPerformerTest.java | 72 ++----------------- .../james/modules/server/JMXServerModule.java | 6 +- .../modules/data/JPADomainListModule.java | 8 +-- .../data/JPARecipientRewriteTableModule.java | 8 +-- .../data/JPAUsersRepositoryModule.java | 8 +-- .../modules/mailbox/DefaultEventModule.java | 7 +- .../server/CamelMailetContainerModule.java | 14 ++-- .../james/modules/data/MemoryDataModule.java | 44 ++++++++---- .../apache/james/GuiceJamesServerTest.java | 7 +- .../modules/protocols/IMAPServerModule.java | 7 +- .../modules/protocols/JMAPServerModule.java | 7 +- .../modules/protocols/LMTPServerModule.java | 7 +- .../protocols/ManageSieveServerModule.java | 8 +-- .../modules/protocols/POP3ServerModule.java | 8 +-- .../modules/protocols/SMTPServerModule.java | 7 +- .../modules/server/WebAdminServerModule.java | 7 +- 31 files changed, 107 insertions(+), 253 deletions(-) diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java index 6361357158a..6baa548bd9d 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.data; -import java.util.List; - import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.domainlist.api.DomainList; @@ -29,7 +27,6 @@ import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -59,7 +56,6 @@ public DomainListConfiguration provideDomainListConfiguration(ConfigurationProvi @Singleton public static class CassandraDomainListConfigurationPerformer implements ConfigurationPerformer { - private final DomainListConfiguration configuration; private final CassandraDomainList cassandraDomainList; @@ -79,8 +75,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(CassandraDomainList.class); + public Class forClass() { + return CassandraDomainList.class; } } } diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java index f3d009e1c4b..e6634d88992 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.data; -import java.util.List; - import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.lifecycle.api.Startable; @@ -31,7 +29,6 @@ import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -53,7 +50,6 @@ public void configure() { @Singleton public static class CassandraRecipientRewriteTablePerformer implements ConfigurationPerformer { - private final ConfigurationProvider configurationProvider; private final CassandraRecipientRewriteTable recipientRewriteTable; @@ -73,8 +69,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(CassandraRecipientRewriteTable.class); + public Class forClass() { + return CassandraRecipientRewriteTable.class; } } diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java index e6212ab003e..dd2a488ee0c 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.data; -import java.util.List; - import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.lifecycle.api.Startable; @@ -28,7 +26,6 @@ import org.apache.james.user.cassandra.CassandraUsersRepository; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -68,8 +65,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(CassandraUsersRepository.class); + public Class forClass() { + return CassandraUsersRepository.class; } } diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java index cfe33923192..83358fd143f 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java @@ -23,7 +23,6 @@ import java.io.FileNotFoundException; import java.io.IOException; -import java.util.List; import javax.inject.Inject; import javax.inject.Named; @@ -53,7 +52,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Provides; import com.google.inject.Scopes; @@ -86,7 +84,6 @@ void createIndex() throws IOException { } static class ElasticSearchMailboxIndexCreationPerformer implements ConfigurationPerformer { - private final MailboxIndexCreator mailboxIndexCreator; @Inject @@ -104,8 +101,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(MailboxIndexCreator.class); + public Class forClass() { + return MailboxIndexCreator.class; } } diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java index 1f6934cddfe..b21e73db83b 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java @@ -23,7 +23,6 @@ import java.io.FileNotFoundException; import java.io.IOException; -import java.util.List; import javax.inject.Inject; @@ -45,7 +44,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Provides; import com.google.inject.Singleton; @@ -95,8 +93,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(ElasticSearchQuotaIndexCreator.class); + public Class forClass() { + return ElasticSearchQuotaIndexCreator.class; } } diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/metrics/CassandraMetricsModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/metrics/CassandraMetricsModule.java index fccc0b577ba..8f728e2c51a 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/metrics/CassandraMetricsModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/metrics/CassandraMetricsModule.java @@ -19,14 +19,11 @@ package org.apache.james.modules.metrics; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; import org.apache.james.utils.ConfigurationPerformer; import com.codahale.metrics.MetricRegistry; import com.datastax.driver.core.Session; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -44,7 +41,7 @@ protected void configure() { .to(CassandraMetricsInjector.class); } - public static class CassandraMetricsInjector implements ConfigurationPerformer { + public static class CassandraMetricsInjector implements ConfigurationPerformer, Startable { private final MetricRegistry metricRegistry; private final Session session; @@ -64,8 +61,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(); + public Class forClass() { + return CassandraMetricsInjector.class; } } } diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java index 05f5f27d1d4..53701eb02f3 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java @@ -22,8 +22,6 @@ import static org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MODULE; import static org.assertj.core.api.Assertions.assertThatCode; -import java.util.List; - import javax.inject.Inject; import org.apache.james.lifecycle.api.Startable; @@ -35,7 +33,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; -import com.google.common.collect.ImmutableList; import com.google.inject.multibindings.Multibinder; class CassandraMessageIdManagerInjectionTest { @@ -60,7 +57,7 @@ void messageIdManagerShouldBeInjected(GuiceJamesServer server) { assertThatCode(server::start).doesNotThrowAnyException(); } - public static class CallMe implements ConfigurationPerformer { + public static class CallMe implements ConfigurationPerformer, Startable { @Inject public CallMe(MessageIdManager messageIdManager) { } @@ -71,8 +68,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(); + public Class forClass() { + return CallMe.class; } } } diff --git a/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java b/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java index 6ccb734bc6c..6f6a0cd8c33 100644 --- a/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java +++ b/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.data; -import java.util.List; - import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.lifecycle.api.Startable; import org.apache.james.server.core.configuration.ConfigurationProvider; @@ -28,7 +26,6 @@ import org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -76,8 +73,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(ReadOnlyUsersLDAPRepository.class); + public Class forClass() { + return ReadOnlyUsersLDAPRepository.class; } } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/event/RabbitMQEventBusModule.java b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/event/RabbitMQEventBusModule.java index 435ef7c5e44..b0641128af1 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/event/RabbitMQEventBusModule.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/event/RabbitMQEventBusModule.java @@ -19,8 +19,6 @@ package org.apache.james.modules.event; -import java.util.List; - import org.apache.james.event.json.EventSerializer; import org.apache.james.lifecycle.api.Startable; import org.apache.james.mailbox.events.EventBus; @@ -29,7 +27,6 @@ import org.apache.james.mailbox.events.RegistrationKey; import org.apache.james.mailbox.events.RetryBackoffConfiguration; import org.apache.james.utils.ConfigurationPerformer; -import org.parboiled.common.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; @@ -68,8 +65,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(RabbitMQEventBus.class); + public Class forClass() { + return RabbitMQEventBus.class; } } } diff --git a/server/container/guice/configuration/src/main/java/org/apache/james/utils/ConfigurationPerformer.java b/server/container/guice/configuration/src/main/java/org/apache/james/utils/ConfigurationPerformer.java index 503618ca8e2..9ac4cb32040 100644 --- a/server/container/guice/configuration/src/main/java/org/apache/james/utils/ConfigurationPerformer.java +++ b/server/container/guice/configuration/src/main/java/org/apache/james/utils/ConfigurationPerformer.java @@ -19,8 +19,6 @@ package org.apache.james.utils; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; public interface ConfigurationPerformer { @@ -30,11 +28,9 @@ public interface ConfigurationPerformer { /** * In order to initialize components in the right order, every * {@link ConfigurationPerformer} is supposed to declare which - * classes it will initialize. + * class it will initialize. * - * @return the list of Classes that this object will initialize. - * The list should never be empty. + * @return the Class that this object will initialize. */ - List> forClasses(); - + Class forClass(); } diff --git a/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ElasticSearchMetricReporterModule.java b/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ElasticSearchMetricReporterModule.java index 7c2aabb9171..343f8390a50 100644 --- a/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ElasticSearchMetricReporterModule.java +++ b/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ElasticSearchMetricReporterModule.java @@ -20,7 +20,6 @@ package org.apache.james.modules.server; import java.io.FileNotFoundException; -import java.util.List; import org.apache.commons.configuration2.Configuration; import org.apache.commons.configuration2.ex.ConfigurationException; @@ -32,7 +31,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -87,7 +85,6 @@ private boolean isMetricEnable(Configuration propertiesReader) { @Singleton public static class ESMetricReporterStarter implements ConfigurationPerformer { - private final ESMetricReporter esMetricReporter; @Inject @@ -101,8 +98,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(ESMetricReporter.class); + public Class forClass() { + return ESMetricReporter.class; } } diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java index 0b5e7d5b2aa..7fb7a68fdbc 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java @@ -18,15 +18,12 @@ ****************************************************************/ package org.apache.james.modules.server; -import java.util.List; - import org.apache.james.dnsservice.api.DNSService; import org.apache.james.dnsservice.dnsjava.DNSJavaService; import org.apache.james.lifecycle.api.Startable; import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -66,8 +63,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(DNSJavaService.class); + public Class forClass() { + return DNSJavaService.class; } } } \ No newline at end of file diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DropWizardMetricsModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DropWizardMetricsModule.java index 662f9c1c8a1..047b78389af 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DropWizardMetricsModule.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DropWizardMetricsModule.java @@ -19,8 +19,6 @@ package org.apache.james.modules.server; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; import org.apache.james.metrics.api.GaugeRegistry; import org.apache.james.metrics.api.MetricFactory; @@ -30,7 +28,6 @@ import org.apache.james.utils.ConfigurationPerformer; import com.codahale.metrics.MetricRegistry; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -53,39 +50,25 @@ protected void configure() { } @Singleton - public static class DropWizardConfigurationPerformer implements ConfigurationPerformer { - private final DropWizardInitializer dropWizardInitializer; - - @Inject - public DropWizardConfigurationPerformer(DropWizardInitializer dropWizardInitializer) { - this.dropWizardInitializer = dropWizardInitializer; - } - - @Override - public void initModule() { - dropWizardInitializer.start(); - } - - @Override - public List> forClasses() { - return ImmutableList.of(DropWizardInitializer.class); - } - } - - public static class DropWizardInitializer implements Startable { + public static class DropWizardConfigurationPerformer implements ConfigurationPerformer, Startable { private final DropWizardMetricFactory dropWizardMetricFactory; private final DropWizardJVMMetrics dropWizardJVMMetrics; @Inject - public DropWizardInitializer(DropWizardMetricFactory dropWizardMetricFactory, DropWizardJVMMetrics dropWizardJVMMetrics) { + public DropWizardConfigurationPerformer(DropWizardMetricFactory dropWizardMetricFactory, DropWizardJVMMetrics dropWizardJVMMetrics) { this.dropWizardMetricFactory = dropWizardMetricFactory; this.dropWizardJVMMetrics = dropWizardJVMMetrics; } - public void start() { + @Override + public void initModule() { dropWizardMetricFactory.start(); dropWizardJVMMetrics.start(); } - } + @Override + public Class forClass() { + return DropWizardConfigurationPerformer.class; + } + } } diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java index 7f83c445a05..31722850c43 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java @@ -19,7 +19,6 @@ package org.apache.james.modules.server; -import java.util.List; import java.util.function.Supplier; import org.apache.commons.configuration2.HierarchicalConfiguration; @@ -37,7 +36,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -93,8 +91,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(MemoryMailRepositoryStore.class); + public Class forClass() { + return MemoryMailRepositoryStore.class; } } diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java index 68b95332e81..166eda7ba0b 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java @@ -55,7 +55,7 @@ private Set processConfigurables() { private Stream configurationPerformerFor(Class configurable) { return configurationPerformers.stream() - .filter(x -> x.forClasses().contains(configurable)); + .filter(x -> x.forClass().equals(configurable)); } private void processOthers(Set processed) { diff --git a/server/container/guice/guice-common/src/test/java/org/apache/james/modules/ConfigurationsPerformerTest.java b/server/container/guice/guice-common/src/test/java/org/apache/james/modules/ConfigurationsPerformerTest.java index 062d8d1a2c5..1228f51e0af 100644 --- a/server/container/guice/guice-common/src/test/java/org/apache/james/modules/ConfigurationsPerformerTest.java +++ b/server/container/guice/guice-common/src/test/java/org/apache/james/modules/ConfigurationsPerformerTest.java @@ -21,8 +21,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import java.util.List; - import javax.inject.Inject; import org.apache.commons.configuration2.HierarchicalConfiguration; @@ -33,7 +31,6 @@ import org.apache.james.utils.ConfigurationsPerformer; import org.junit.Test; -import com.google.common.collect.ImmutableList; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Scopes; @@ -66,7 +63,6 @@ protected void configure() { } private static class AConfigurationPerformer implements ConfigurationPerformer { - private final A a; @Inject @@ -84,13 +80,12 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(A.class); + public Class forClass() { + return A.class; } } private static class BConfigurationPerformer implements ConfigurationPerformer { - private final B b; @Inject @@ -108,13 +103,12 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(B.class); + public Class forClass() { + return B.class; } } private static class A implements Configurable { - @SuppressWarnings("unused") private final C c; private boolean configured; @@ -136,7 +130,6 @@ public boolean isConfigured() { } private static class B implements Configurable { - private final A a; @SuppressWarnings("unused") private final C c; @@ -161,61 +154,4 @@ public boolean isConfigured() { private static class C { } - - @Test - public void initModulesShouldBePerformedOneTimeWhenConfigurableModuleContainsMultipleDependencies() throws Exception { - Injector injector = Guice.createInjector(new StartablesModule(), - new DualResponsibilityConfigurationPerformerModule()); - - injector.getInstance(ConfigurationsPerformer.class).initModules(); - - assertThat(injector.getInstance(A.class).isConfigured()).isTrue(); - assertThat(injector.getInstance(B.class).isConfigured()).isTrue(); - } - - private static class DualResponsibilityConfigurationPerformer implements ConfigurationPerformer { - - private final A a; - private final B b; - private boolean configured; - - @Inject - private DualResponsibilityConfigurationPerformer(A a, B b) { - this.a = a; - this.b = b; - this.configured = false; - } - - @Override - public void initModule() { - if (configured) { - throw new RuntimeException("Already configured"); - } - - try { - a.configure(null); - b.configure(null); - configured = true; - } catch (ConfigurationException e) { - throw new RuntimeException(e); - } - } - - @Override - public List> forClasses() { - return ImmutableList.of(A.class, B.class); - } - } - - private static class DualResponsibilityConfigurationPerformerModule extends StartablesModule { - - @Override - protected void configure() { - bind(B.class).in(Scopes.SINGLETON); - bind(A.class).in(Scopes.SINGLETON); - bind(C.class).in(Scopes.SINGLETON); - - Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(DualResponsibilityConfigurationPerformer.class); - } - } } diff --git a/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java b/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java index a7adfe68e6d..ea1f9a5f112 100644 --- a/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java +++ b/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java @@ -20,7 +20,6 @@ package org.apache.james.modules.server; import java.io.FileNotFoundException; -import java.util.List; import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.adapter.mailbox.MailboxCopierManagement; @@ -53,7 +52,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -165,8 +163,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(JMXServer.class); + public Class forClass() { + return JMXServer.class; } } diff --git a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java index 2fa244dd5aa..85a2adcbec2 100644 --- a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java +++ b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.data; -import java.util.List; - import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.domainlist.api.DomainList; import org.apache.james.domainlist.jpa.JPADomainList; @@ -28,7 +26,6 @@ import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -57,7 +54,6 @@ public DomainListConfiguration provideDomainListConfiguration(ConfigurationProvi @Singleton public static class JPADomainListConfigurationPerformer implements ConfigurationPerformer { - private final DomainListConfiguration configuration; private final JPADomainList jpaDomainList; @@ -77,8 +73,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(JPADomainList.class); + public Class forClass() { + return JPADomainList.class; } } } diff --git a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java index f6126d57b33..b9702e20c76 100644 --- a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java +++ b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.data; -import java.util.List; - import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.lifecycle.api.Startable; import org.apache.james.rrt.api.RecipientRewriteTable; @@ -27,7 +25,6 @@ import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -45,7 +42,6 @@ public void configure() { @Singleton public static class JPARecipientRewriteTablePerformer implements ConfigurationPerformer { - private final ConfigurationProvider configurationProvider; private final JPARecipientRewriteTable recipientRewriteTable; @@ -65,8 +61,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(JPARecipientRewriteTable.class); + public Class forClass() { + return JPARecipientRewriteTable.class; } } diff --git a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java index 7aedad51e2b..69a0675378a 100644 --- a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java +++ b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.data; -import java.util.List; - import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.lifecycle.api.Startable; import org.apache.james.server.core.configuration.ConfigurationProvider; @@ -27,7 +25,6 @@ import org.apache.james.user.jpa.JPAUsersRepository; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -45,7 +42,6 @@ public void configure() { @Singleton public static class JPAUsersRepositoryConfigurationPerformer implements ConfigurationPerformer { - private final ConfigurationProvider configurationProvider; private final JPAUsersRepository usersRepository; @@ -65,8 +61,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(JPAUsersRepository.class); + public Class forClass() { + return JPAUsersRepository.class; } } diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/DefaultEventModule.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/DefaultEventModule.java index 1fb2c6d6898..3d32d08fe71 100644 --- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/DefaultEventModule.java +++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/DefaultEventModule.java @@ -19,8 +19,6 @@ package org.apache.james.modules.mailbox; -import java.util.List; - import javax.inject.Inject; import org.apache.commons.configuration2.ex.ConfigurationException; @@ -36,7 +34,6 @@ import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Provides; import com.google.inject.Scopes; @@ -87,8 +84,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(MailboxListenersLoaderImpl.class); + public Class forClass() { + return MailboxListenersLoaderImpl.class; } } } diff --git a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java index e04d95ba41d..748cc22dc0a 100644 --- a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java +++ b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java @@ -55,7 +55,6 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -138,8 +137,8 @@ private HierarchicalConfiguration getJamesSpoolerConfiguration() { } @Override - public List> forClasses() { - return ImmutableList.of(JamesMailSpooler.class); + public Class forClass() { + return JamesMailSpooler.class; } } @@ -174,14 +173,13 @@ private HierarchicalConfiguration getMailetContextConfiguration() { } @Override - public List> forClasses() { - return ImmutableList.of(JamesMailetContext.class); + public Class forClass() { + return JamesMailetContext.class; } } @Singleton public static class MailetModuleConfigurationPerformer implements ConfigurationPerformer { - private final ConfigurationProvider configurationProvider; private final CamelCompositeProcessor camelCompositeProcessor; private final DefaultProcessorsConfigurationSupplier defaultProcessorsConfigurationSupplier; @@ -240,8 +238,8 @@ private void checkProcessors() throws ConfigurationException { } @Override - public List> forClasses() { - return ImmutableList.of(CamelCompositeProcessor.class); + public Class forClass() { + return CamelCompositeProcessor.class; } } diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java index d24b7621c05..f4c76666cc6 100644 --- a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java +++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java @@ -19,8 +19,6 @@ package org.apache.james.modules.data; -import java.util.List; - import org.apache.commons.configuration2.BaseHierarchicalConfiguration; import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.james.dlp.api.DLPConfigurationStore; @@ -80,7 +78,9 @@ protected void configure() { bind(EventSourcingDLPConfigurationStore.class).in(Scopes.SINGLETON); bind(DLPConfigurationStore.class).to(EventSourcingDLPConfigurationStore.class); - Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(MemoryDataConfigurationPerformer.class); + Multibinder configurationPerformers = Multibinder.newSetBinder(binder(), ConfigurationPerformer.class); + configurationPerformers.addBinding().to(MemoryRRTConfigurationPerformer.class); + configurationPerformers.addBinding().to(MemoryDomainListConfigurationPerformer.class); bind(MailStoreRepositoryModule.DefaultItemSupplier.class).toInstance(() -> MEMORY_MAILREPOSITORY_DEFAULT_DECLARATION); @@ -99,25 +99,45 @@ public DomainListConfiguration provideDomainListConfiguration(ConfigurationProvi } @Singleton - public static class MemoryDataConfigurationPerformer implements ConfigurationPerformer { - - private final ConfigurationProvider configurationProvider; + public static class MemoryDomainListConfigurationPerformer implements ConfigurationPerformer { private final DomainListConfiguration domainListConfiguration; private final MemoryDomainList memoryDomainList; - private final MemoryRecipientRewriteTable memoryRecipientRewriteTable; @Inject - public MemoryDataConfigurationPerformer(ConfigurationProvider configurationProvider, DomainListConfiguration domainListConfiguration, MemoryDomainList memoryDomainList, MemoryRecipientRewriteTable memoryRecipientRewriteTable) { - this.configurationProvider = configurationProvider; + public MemoryDomainListConfigurationPerformer(DomainListConfiguration domainListConfiguration, MemoryDomainList memoryDomainList) { this.domainListConfiguration = domainListConfiguration; this.memoryDomainList = memoryDomainList; - this.memoryRecipientRewriteTable = memoryRecipientRewriteTable; } @Override public void initModule() { try { memoryDomainList.configure(domainListConfiguration); + } catch (ConfigurationException e) { + throw new RuntimeException(e); + } + } + + @Override + public Class forClass() { + return MemoryDomainList.class; + } + } + + @Singleton + public static class MemoryRRTConfigurationPerformer implements ConfigurationPerformer { + private final ConfigurationProvider configurationProvider; + private final MemoryRecipientRewriteTable memoryRecipientRewriteTable; + + @Inject + public MemoryRRTConfigurationPerformer(ConfigurationProvider configurationProvider, MemoryRecipientRewriteTable memoryRecipientRewriteTable) { + this.configurationProvider = configurationProvider; + this.memoryRecipientRewriteTable = memoryRecipientRewriteTable; + } + + @Override + public void initModule() { + try { memoryRecipientRewriteTable.configure(configurationProvider.getConfiguration("recipientrewritetable")); } catch (ConfigurationException e) { throw new RuntimeException(e); @@ -125,8 +145,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(MemoryDomainList.class, MemoryRecipientRewriteTable.class); + public Class forClass() { + return MemoryRecipientRewriteTable.class; } } } diff --git a/server/container/guice/memory-guice/src/test/java/org/apache/james/GuiceJamesServerTest.java b/server/container/guice/memory-guice/src/test/java/org/apache/james/GuiceJamesServerTest.java index 4ad7122c8d0..51201ce9f8f 100644 --- a/server/container/guice/memory-guice/src/test/java/org/apache/james/GuiceJamesServerTest.java +++ b/server/container/guice/memory-guice/src/test/java/org/apache/james/GuiceJamesServerTest.java @@ -3,8 +3,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; import org.apache.james.modules.TestJMAPServerModule; import org.apache.james.utils.ConfigurationPerformer; @@ -14,7 +12,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableList; import com.google.inject.multibindings.Multibinder; class GuiceJamesServerTest { @@ -66,8 +63,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(); + public Class forClass() { + return Startable.class; } }; diff --git a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java index 043054063f2..8af4fba21fc 100644 --- a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java +++ b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.protocols; -import java.util.List; - import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.decode.ImapDecoder; import org.apache.james.imap.encode.ImapEncoder; @@ -39,7 +37,6 @@ import org.apache.james.utils.ConfigurationPerformer; import org.apache.james.utils.GuiceProbe; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -111,8 +108,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(IMAPServerFactory.class); + public Class forClass() { + return IMAPServerFactory.class; } } } \ No newline at end of file diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/modules/protocols/JMAPServerModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/modules/protocols/JMAPServerModule.java index f51549ca816..c57c87b3aef 100644 --- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/modules/protocols/JMAPServerModule.java +++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/modules/protocols/JMAPServerModule.java @@ -20,7 +20,6 @@ package org.apache.james.modules.protocols; import java.security.Security; -import java.util.List; import org.apache.james.jmap.JMAPConfiguration; import org.apache.james.jmap.JMAPModule; @@ -33,7 +32,6 @@ import org.apache.james.utils.MessageIdProbe; import org.bouncycastle.jce.provider.BouncyCastleProvider; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -51,7 +49,6 @@ protected void configure() { @Singleton public static class JMAPModuleConfigurationPerformer implements ConfigurationPerformer { - private final JMAPServer server; private final JamesSignatureHandler signatureHandler; private final JMAPConfiguration jmapConfiguration; @@ -81,8 +78,8 @@ private void registerPEMWithSecurityProvider() { } @Override - public List> forClasses() { - return ImmutableList.of(JMAPServer.class); + public Class forClass() { + return JMAPServer.class; } } diff --git a/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java b/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java index 95491430be7..8fb9624b13d 100644 --- a/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java +++ b/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java @@ -19,8 +19,6 @@ package org.apache.james.modules.protocols; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; import org.apache.james.lmtpserver.netty.LMTPServerFactory; import org.apache.james.lmtpserver.netty.OioLMTPServerFactory; @@ -29,7 +27,6 @@ import org.apache.james.utils.ConfigurationPerformer; import org.apache.james.utils.GuiceProbe; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -70,8 +67,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(LMTPServerFactory.class); + public Class forClass() { + return LMTPServerFactory.class; } } diff --git a/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java b/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java index 86553e2cbef..2c89f9479f0 100644 --- a/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java +++ b/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.modules.protocols; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; import org.apache.james.managesieve.api.commands.CoreCommands; import org.apache.james.managesieve.core.CoreProcessor; @@ -29,7 +27,6 @@ import org.apache.james.utils.ConfigurationPerformer; import org.apache.james.utils.GuiceProbe; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -46,7 +43,6 @@ protected void configure() { @Singleton public static class ManageSieveModuleConfigurationPerformer implements ConfigurationPerformer { - private final ConfigurationProvider configurationProvider; private final ManageSieveServerFactory manageSieveServerFactory; @@ -67,8 +63,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(ManageSieveServerFactory.class); + public Class forClass() { + return ManageSieveServerFactory.class; } } } \ No newline at end of file diff --git a/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java b/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java index beabceff7bc..592e7405c10 100644 --- a/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java +++ b/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java @@ -19,8 +19,6 @@ package org.apache.james.modules.protocols; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; import org.apache.james.pop3server.netty.OioPOP3ServerFactory; import org.apache.james.pop3server.netty.POP3ServerFactory; @@ -28,7 +26,6 @@ import org.apache.james.utils.ConfigurationPerformer; import org.apache.james.utils.GuiceProbe; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -48,7 +45,6 @@ protected void configure() { @Singleton public static class POP3ModuleConfigurationPerformer implements ConfigurationPerformer { - private final ConfigurationProvider configurationProvider; private final POP3ServerFactory pop3ServerFactory; @@ -69,8 +65,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(POP3ServerFactory.class); + public Class forClass() { + return POP3ServerFactory.class; } } diff --git a/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java b/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java index 83187277bc1..0cc441f8269 100644 --- a/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java +++ b/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java @@ -19,8 +19,6 @@ package org.apache.james.modules.protocols; -import java.util.List; - import org.apache.james.lifecycle.api.Startable; import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.smtpserver.SendMailHandler; @@ -29,7 +27,6 @@ import org.apache.james.utils.ConfigurationPerformer; import org.apache.james.utils.GuiceProbe; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Scopes; @@ -76,8 +73,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(SMTPServerFactory.class); + public Class forClass() { + return SMTPServerFactory.class; } } diff --git a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java index 07165399b80..b333cecfb3b 100644 --- a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java +++ b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java @@ -22,7 +22,6 @@ import static org.apache.james.webadmin.WebAdminConfiguration.DISABLED_CONFIGURATION; import java.io.FileNotFoundException; -import java.util.List; import java.util.Optional; import org.apache.commons.configuration2.Configuration; @@ -44,7 +43,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableList; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -127,7 +125,6 @@ private Optional readHttpsConfiguration(Configuration configur @Singleton public static class WebAdminServerModuleConfigurationPerformer implements ConfigurationPerformer { - private final WebAdminServer webAdminServer; @Inject @@ -141,8 +138,8 @@ public void initModule() { } @Override - public List> forClasses() { - return ImmutableList.of(WebAdminServer.class); + public Class forClass() { + return WebAdminServer.class; } }