Typesafe Config не использует системные свойства, которые были установлены во время выполнения.

У меня есть основная библиотека, которая устанавливает свою конфигурацию в качестве системных свойств.

mail.from = [email protected]

Я хотел переопределить свою конфигурацию с ними, например:

my.mail.from = "[email protected]"
my.mail.from = ${?mail.from}

Это работает в модульных тестах. В моем приложении Play (2.6) этого нет.

PropertiesConfiguration.init() // this inits the system properties
info("mail.from: " + sys.props.get("mail.from")) // >> '[email protected]' as expected   
val config = ConfigFactory.load()
info("my.mail.from: " + config.getString("my.mail.from")) // >> '[email protected]' instead of '[email protected]'

Это невозможно или я что-то упускаю?


person pme    schedule 27.10.2017    source источник


Ответы (1)


Попробуйте аннулировать любые кешированные конфигурации, чтобы получить изменения в системных свойствах:

PropertiesConfiguration.init()
info("mail.from: " + sys.props.get("mail.from"))

ConfigFactory.invalidateCaches()

val config = ConfigFactory.load()
info("my.mail.from: " + config.getString("my.mail.from"))
person Jeffrey Chung    schedule 27.10.2017