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

Reply via email to