JAMES-1688 CassandraRecipientRewriteTable should be initialized

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/69916b7a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/69916b7a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/69916b7a

Branch: refs/heads/master
Commit: 69916b7a5112e54a51004d5defb1a69e77d72475
Parents: 1578407
Author: Antoine Duprat <antdup...@gmail.com>
Authored: Fri Feb 12 11:52:43 2016 +0100
Committer: Matthieu Baechler <matthieu.baech...@gmail.com>
Committed: Fri Feb 19 11:55:19 2016 +0100

----------------------------------------------------------------------
 .../CassandraRecipientRewriteTableModule.java   | 30 ++++++++++++++++++++
 1 file changed, 30 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/69916b7a/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
----------------------------------------------------------------------
diff --git 
a/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
 
b/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
index c28ca20..d261a7d 100644
--- 
a/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
+++ 
b/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
@@ -22,17 +22,47 @@ import 
org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.cassandra.CassandraRRTModule;
 import org.apache.james.rrt.cassandra.CassandraRecipientRewriteTable;
+import org.apache.james.utils.ConfigurationPerformer;
+import org.apache.james.utils.ConfigurationProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Scopes;
+import com.google.inject.Singleton;
 import com.google.inject.multibindings.Multibinder;
 
 public class CassandraRecipientRewriteTableModule extends AbstractModule {
 
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(RecipientRewriteTable.class);
+
     @Override
     public void configure() {
+        bind(CassandraRecipientRewriteTable.class).in(Scopes.SINGLETON);
         
bind(RecipientRewriteTable.class).to(CassandraRecipientRewriteTable.class);
         Multibinder<CassandraModule> cassandraDataDefinitions = 
Multibinder.newSetBinder(binder(), CassandraModule.class);
         cassandraDataDefinitions.addBinding().to(CassandraRRTModule.class);
+        Multibinder.newSetBinder(binder(), 
ConfigurationPerformer.class).addBinding().to(CassandraRecipientRewriteTablePerformer.class);
+    }
+
+    @Singleton
+    public static class CassandraRecipientRewriteTablePerformer implements 
ConfigurationPerformer {
+
+        private final ConfigurationProvider configurationProvider;
+        private final CassandraRecipientRewriteTable recipientRewriteTable;
+
+        @Inject
+        public CassandraRecipientRewriteTablePerformer(ConfigurationProvider 
configurationProvider, CassandraRecipientRewriteTable recipientRewriteTable) {
+            this.configurationProvider = configurationProvider;
+            this.recipientRewriteTable = recipientRewriteTable;
+        }
+
+        @Override
+        public void initModule() throws Exception {
+            recipientRewriteTable.setLog(LOGGER);
+            
recipientRewriteTable.configure(configurationProvider.getConfiguration("recipientrewritetable"));
+        }
     }
 
 }


---------------------------------------------------------------------
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