Bug 5329: Add factory akka.conf
[controller.git] / opendaylight / md-sal / sal-clustering-commons / src / main / java / org / opendaylight / controller / cluster / common / actor / FileAkkaConfigurationReader.java
index 384ba81526329748b98e82e3287c7ade905c5ecb..1e3adf9d391051ef2173de187004c3c6edaa6e40 100644 (file)
@@ -14,12 +14,19 @@ import com.typesafe.config.ConfigFactory;
 import java.io.File;
 
 public class FileAkkaConfigurationReader implements AkkaConfigurationReader {
-    private static final String DEFAULT_AKKA_CONF_PATH = "./configuration/initial/akka.conf";
+    private static final String CUSTOM_AKKA_CONF_PATH = "./configuration/initial/akka.conf";
+    private static final String FACTORY_AKKA_CONF_PATH = "./configuration/factory/akka.conf";
 
-    @Override public Config read() {
-        File configFile = new File(DEFAULT_AKKA_CONF_PATH);
-        Preconditions.checkState(configFile.exists(), "%s is missing", configFile);
-        return ConfigFactory.parseFile(configFile);
+    @Override
+    public Config read() {
+        File customConfigFile = new File(CUSTOM_AKKA_CONF_PATH);
+        Preconditions.checkState(customConfigFile.exists(), "%s is missing", customConfigFile);
 
+        File factoryConfigFile = new File(FACTORY_AKKA_CONF_PATH);
+        if(factoryConfigFile.exists()) {
+            return ConfigFactory.parseFile(customConfigFile).withFallback(ConfigFactory.parseFile(factoryConfigFile));
+        }
+
+        return ConfigFactory.parseFile(customConfigFile);
     }
 }