Size: a a a

2019 December 12

M

Marat.k in Kotlin JVM
Alexey Tkachenko
Как-то мои вопросы невпопад получаются, туповат, видать. Была надежда, что можно как в спринге прочитать разных конфигов из разных мест и они все сольются в один environment. Штош. Пойду писать свой загрузчик конфигов
источник

M

Marat.k in Kotlin JVM
Alexey Tkachenko
Как-то мои вопросы невпопад получаются, туповат, видать. Была надежда, что можно как в спринге прочитать разных конфигов из разных мест и они все сольются в один environment. Штош. Пойду писать свой загрузчик конфигов
val config = systemProperties() overriding
            EnvironmentVariables() overriding
            ConfigurationProperties.fromFile(File("/etc/myservice.properties")) overriding
            ConfigurationProperties.fromResource("defaults.properties")
источник

VA

Victor Alenkov in Kotlin JVM
Alexey Tkachenko
почитал, но так и не сообразил, как сделать две вещи:
1. сделать один большой дефолтный конфиг в ресурсах, а второй с оверрайдами — в файловой системе
2. можно ли как-то поменять настройки ktor после того, как все конфиги загрузились, но до того, как стартанёт сервер
1) оверрайдите прям в конфиге. Более того - дробите большой на маленькие и через include их в “большой” application.conf
2) зачем?
источник

AT

Alexey Tkachenko in Kotlin JVM
Во, отличная штука, спасибо!
Правда, мне бы ещё правильный способ, как эту конфигурацию скормить ктору, а то пока что я скопировал себе исходники метода commandLineEnvironment и подправил там загрузку конфигов
источник

VA

Victor Alenkov in Kotlin JVM
Alexey Tkachenko
Во, отличная штука, спасибо!
Правда, мне бы ещё правильный способ, как эту конфигурацию скормить ктору, а то пока что я скопировал себе исходники метода commandLineEnvironment и подправил там загрузку конфигов
он не нужен тут) всё пашет через стандартные конфиги. у меня так десяток модулей собирается в один сервис и с раздробленными конфигами
источник

VA

Victor Alenkov in Kotlin JVM
пример перегрузки default значения через env переменную (если она есть):

ktor {
 deployment {
 port = 8081
 port = ${?PORT}
источник

AT

Alexey Tkachenko in Kotlin JVM
Victor Alenkov
1) оверрайдите прям в конфиге. Более того - дробите большой на маленькие и через include их в “большой” application.conf
2) зачем?
1) оверрайдите прям в конфиге. Более того - дробите большой на маленькие и через include их в “большой” application.conf
А include будет работать, если основной конфиг в ресурсах, а оверрайды — в файловой системе?

2) зачем?
Например, чтобы описать все дефолты в основном конфиге в ресурсах и потом перекрывать их локальными файлами
источник

AT

Alexey Tkachenko in Kotlin JVM
Victor Alenkov
он не нужен тут) всё пашет через стандартные конфиги. у меня так десяток модулей собирается в один сервис и с раздробленными конфигами
Рад за вас 😊 (тут анекдот про такую же ногу, которая не болит)
источник

VA

Victor Alenkov in Kotlin JVM
Alexey Tkachenko
Рад за вас 😊 (тут анекдот про такую же ногу, которая не болит)
я вам пример скинул. надо целиком решение показать?
источник

M

Marat.k in Kotlin JVM
Alexey Tkachenko
Во, отличная штука, спасибо!
Правда, мне бы ещё правильный способ, как эту конфигурацию скормить ктору, а то пока что я скопировал себе исходники метода commandLineEnvironment и подправил там загрузку конфигов
Я с конфигами кейтора тоже не подружился, дергаю в ручном режиме настройки из konfig для настройки сервака
источник

VA

Victor Alenkov in Kotlin JVM
источник

AT

Alexey Tkachenko in Kotlin JVM
Victor Alenkov
я вам пример скинул. надо целиком решение показать?
Извините, возможно, был невнимателен, но не вижу вашего примера. С загрузкой конфигов я более-менее разобрался, Hocon решает и загружает всё как надо. Теперь мне нужен пример запуска ktor-сервера с загруженным конфигом
источник

AT

Alexey Tkachenko in Kotlin JVM
Victor Alenkov
я вам пример скинул. надо целиком решение показать?
Да, там есть пример «смешанной» загрузки — и из ресурсов, и из файлов, спасибо
источник

VA

Victor Alenkov in Kotlin JVM
файл application.conf в ресурсах подхватывается автоматически. Если не передан параметр "-config=" в запуске. Если передан - используется тот, что в параметре.
https://ktor.io/servers/configuration.html
https://ktor.io/servers/configuration/environments.html
источник

AT

Alexey Tkachenko in Kotlin JVM
Victor Alenkov
файл application.conf в ресурсах подхватывается автоматически. Если не передан параметр "-config=" в запуске. Если передан - используется тот, что в параметре.
https://ktor.io/servers/configuration.html
https://ktor.io/servers/configuration/environments.html
Ну да, подхватывается. Но если у меня свой, кастомный, который я сам хитрым образом загрузил, то фиг
источник

VA

Victor Alenkov in Kotlin JVM
Alexey Tkachenko
Да, там есть пример «смешанной» загрузки — и из ресурсов, и из файлов, спасибо
более того. Вы можете в ресурсном конфиге определить “предполагаемый” файл для перегрузки параметров из файловой системы, но не делать его обязательным. Появится в системе - используется. Нет - ну и фиг с ним
источник

AO

Alexey Otts in Kotlin JVM
Alexey Tkachenko
Ну да, подхватывается. Но если у меня свой, кастомный, который я сам хитрым образом загрузил, то фиг
хитрым образом это как?
источник

AT

Alexey Tkachenko in Kotlin JVM
Alexey Otts
хитрым образом это как?
Да вообще неважно как. Например, из виндового реестра прочитал
источник

AT

Alexey Tkachenko in Kotlin JVM
не, можно, конечно, его сложить в файлик во временной папочке и скормить ктору через «-config=»
источник

VA

Victor Alenkov in Kotlin JVM
Alexey Tkachenko
Да вообще неважно как. Например, из виндового реестра прочитал
а содержимое этого файла валидно для HOCON?
источник