JAMES-2513 JPA Domain List configuration should rely on POJO
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8d33e65e Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8d33e65e Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8d33e65e Branch: refs/heads/master Commit: 8d33e65eb3ee15b16d57dee134df874802e2441a Parents: 75097ea Author: benwa <btell...@linagora.com> Authored: Thu Aug 2 14:06:07 2018 +0700 Committer: Benoit Tellier <btell...@linagora.com> Committed: Fri Aug 3 15:51:30 2018 +0700 ---------------------------------------------------------------------- .../james/modules/data/JPADomainListModule.java | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/8d33e65e/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java ---------------------------------------------------------------------- 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 3aaa16f..01ff8e0 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 @@ -23,6 +23,7 @@ import java.util.List; import org.apache.commons.configuration.ConfigurationException; import org.apache.james.domainlist.api.DomainList; import org.apache.james.domainlist.jpa.JPADomainList; +import org.apache.james.domainlist.lib.DomainListConfiguration; import org.apache.james.lifecycle.api.Configurable; import org.apache.james.server.core.configuration.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; @@ -30,6 +31,7 @@ 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; import com.google.inject.Scopes; import com.google.inject.Singleton; import com.google.inject.multibindings.Multibinder; @@ -42,23 +44,33 @@ public class JPADomainListModule extends AbstractModule { bind(DomainList.class).to(JPADomainList.class); Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(JPADomainListConfigurationPerformer.class); } + + @Provides + @Singleton + public DomainListConfiguration provideDomainListConfiguration(ConfigurationProvider configurationProvider) { + try { + return DomainListConfiguration.from(configurationProvider.getConfiguration("domainlist")); + } catch (ConfigurationException e) { + throw new RuntimeException(e); + } + } @Singleton public static class JPADomainListConfigurationPerformer implements ConfigurationPerformer { - private final ConfigurationProvider configurationProvider; + private final DomainListConfiguration configuration; private final JPADomainList jpaDomainList; @Inject - public JPADomainListConfigurationPerformer(ConfigurationProvider configurationProvider, JPADomainList jpaDomainList) { - this.configurationProvider = configurationProvider; + public JPADomainListConfigurationPerformer(DomainListConfiguration configuration, JPADomainList jpaDomainList) { + this.configuration = configuration; this.jpaDomainList = jpaDomainList; } @Override public void initModule() { try { - jpaDomainList.configure(configurationProvider.getConfiguration("domainlist")); + jpaDomainList.configure(configuration); } catch (ConfigurationException e) { throw new RuntimeException(e); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org