Author: matthieu
Date: Tue Nov  3 16:51:16 2015
New Revision: 1712342

URL: http://svn.apache.org/viewvc?rev=1712342&view=rev
Log:
JAMES-1626 use Filesystem to resolve configuration properties files

Modified:
    
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
    
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java?rev=1712342&r1=1712341&r2=1712342&view=diff
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
 Tue Nov  3 16:51:16 2015
@@ -18,35 +18,28 @@
  ****************************************************************/
 package org.apache.james.modules.mailbox;
 
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-
-import com.datastax.driver.core.Cluster;
-import com.datastax.driver.core.Session;
-import com.google.inject.AbstractModule;
-
+import java.io.FileNotFoundException;
 import java.util.Set;
 
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
 import org.apache.james.backends.cassandra.init.ClusterFactory;
 import 
org.apache.james.backends.cassandra.init.ClusterWithKeyspaceCreatedFactory;
 import 
org.apache.james.backends.cassandra.init.SessionWithInitializedTablesFactory;
-import org.apache.james.utils.PropertiesReader;
+import org.apache.james.filesystem.api.FileSystem;
 
-public class CassandraSessionModule extends AbstractModule {
-
-    private final PropertiesReader propertiesReader;
-    private final String keyspace;
+import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.Session;
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
 
-    public CassandraSessionModule() {
-        propertiesReader = new PropertiesReader("cassandra.properties");
-        keyspace = propertiesReader.getProperty("cassandra.keyspace");
-    }
+public class CassandraSessionModule extends AbstractModule {
 
     @Override
     protected void configure() {
-
     }
     
     @Provides
@@ -57,19 +50,28 @@ public class CassandraSessionModule exte
 
     @Provides
     @Singleton
-    Session provideSession(Cluster cluster, CassandraModule cassandraModule) {
+    Session provideSession(FileSystem fileSystem, Cluster cluster, 
CassandraModule cassandraModule)
+            throws FileNotFoundException, ConfigurationException{
+        PropertiesConfiguration configuration = getConfiguration(fileSystem);
+        String keyspace = configuration.getString("cassandra.keyspace");
         return new 
SessionWithInitializedTablesFactory(cassandraModule).createSession(cluster, 
keyspace);
     }
 
     @Provides
     @Singleton
-    Cluster provideCluster() {
+    Cluster provideCluster(FileSystem fileSystem) throws 
FileNotFoundException, ConfigurationException {
+        PropertiesConfiguration configuration = getConfiguration(fileSystem);
+        
         return 
ClusterWithKeyspaceCreatedFactory.clusterWithInitializedKeyspace(
             ClusterFactory.createClusterForSingleServerWithoutPassWord(
-                propertiesReader.getProperty("cassandra.ip"),
-                
Integer.parseInt(propertiesReader.getProperty("cassandra.port"))),
-            keyspace,
-            
Integer.parseInt(propertiesReader.getProperty("cassandra.replication.factor")));
+                configuration.getString("cassandra.ip"),
+                configuration.getInt("cassandra.port")),
+                configuration.getString("cassandra.keyspace"),
+                configuration.getInt("cassandra.replication.factor"));
     }
 
+    private PropertiesConfiguration getConfiguration(FileSystem fileSystem) 
throws FileNotFoundException, ConfigurationException {
+        return new 
PropertiesConfiguration(fileSystem.getFile("cassandra.properties"));
+    }
+    
 }
\ No newline at end of file

Modified: 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
URL: 
http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java?rev=1712342&r1=1712341&r2=1712342&view=diff
==============================================================================
--- 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
 (original)
+++ 
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
 Tue Nov  3 16:51:16 2015
@@ -19,18 +19,26 @@
 
 package org.apache.james.modules.mailbox;
 
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.TypeLiteral;
+import java.io.FileNotFoundException;
+
+import javax.inject.Singleton;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.mailbox.cassandra.CassandraId;
-import org.apache.james.mailbox.elasticsearch.*;
+import org.apache.james.mailbox.elasticsearch.ClientProvider;
+import org.apache.james.mailbox.elasticsearch.ClientProviderImpl;
+import org.apache.james.mailbox.elasticsearch.IndexCreationFactory;
+import org.apache.james.mailbox.elasticsearch.NodeMappingFactory;
 import 
org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
 import org.apache.james.mailbox.store.extractor.TextExtractor;
 import org.apache.james.mailbox.store.search.MessageSearchIndex;
 import org.apache.james.mailbox.tika.extractor.TikaTextExtractor;
-import org.apache.james.utils.PropertiesReader;
 
-import javax.inject.Singleton;
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.TypeLiteral;
 
 public class ElasticSearchMailboxModule extends AbstractModule {
 
@@ -44,13 +52,13 @@ public class ElasticSearchMailboxModule
 
     @Provides
     @Singleton
-    protected ClientProvider provideClientProvider() {
-        PropertiesReader propertiesReader = new 
PropertiesReader("elasticsearch.properties");
-        ClientProvider clientProvider = new 
ClientProviderImpl(propertiesReader.getProperty("elasticsearch.masterHost"),
-            
Integer.parseInt(propertiesReader.getProperty("elasticsearch.port")));
+    protected ClientProvider provideClientProvider(FileSystem fileSystem) 
throws ConfigurationException, FileNotFoundException {
+        PropertiesConfiguration propertiesReader = new 
PropertiesConfiguration(fileSystem.getFile("elasticsearch.properties"));
+        ClientProvider clientProvider = new 
ClientProviderImpl(propertiesReader.getString("elasticsearch.masterHost"),
+            propertiesReader.getInt("elasticsearch.port"));
         IndexCreationFactory.createIndex(clientProvider,
-            
Integer.parseInt(propertiesReader.getProperty("elasticsearch.nb.shards")),
-            
Integer.parseInt(propertiesReader.getProperty("elasticsearch.nb.replica")));
+            propertiesReader.getInt("elasticsearch.nb.shards"),
+            propertiesReader.getInt("elasticsearch.nb.replica"));
         NodeMappingFactory.applyMapping(clientProvider);
         return clientProvider;
     }



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