Конфигурация программного переопределения akka java

Несколько тем, которые я могу найти по этому поводу, относятся к Scala, а не к Java, и ни одна из них не касается удаленных участников.

У меня есть базовый файл конфигурации (SERVER_CONFIG_FILE):

Include "akka-common"

TheSystem {
  akka {
    actor {
      provider = "akka.remote.RemoteActorRefProvider"
        deployment { 
          /OtherSupervisor {
            remote = "akka://[email protected]:8553"
          }
        }
      }
    remote {
      transport = "akka.remote.netty.NettyRemoteTransport"
      netty {
        hostname = "127.0.0.1"
        port = 8552
      }
    }
  }
}

Я хочу загрузить его в свою программу, а затем переопределить несколько настроек, но не могу понять код. Что-то вроде:

private final Config serverConfig = ConfigFactory.load(SERVER_CONFIG_FILE).withValue...?

Мне нужно переопределить значение «akka://[email protected]:8553», а также имя хоста. Я думаю, что к имени хоста можно обратиться с помощью «ComparisonSystem.akka.remote.netty.hostname», но подтверждение поможет.

Я действительно не знаю, как обращаться к первому значению и какие вызовы java использовать, чтобы собрать его вместе. Я могу учиться на примере, который я вижу, но не на Scala, который я нахожу, и ничто не обращается к этому имени актера в пути.

Заранее спасибо.


person bret    schedule 25.02.2016    source источник


Ответы (1)


Вы можете сделать это следующим образом, обратите внимание, что вы используете экземпляр Config с переопределениями и позволяете ему вернуться к вашей конфигурации по умолчанию, а не наоборот:

Config overrides = ConfigFactory.parseString("some.setting=a-value");
Config actualConfig = overrides.withFallback(ConfigFactory.load());

Или, если вам не нравится создавать строки, вы можете использовать свойства для указания ваших переопределений:

Properties properties = new Properties();
properties.setProperty("some.setting", "a-value");
Config overrides = ConfigFactory.parseProperties(properties);
Config actualConfig = overrides.withFallback(ConfigFactory.load());
person johanandren    schedule 26.02.2016