2016-08-29 1 views
0

J'aime le typesafe config lib mais je n'ai pas encore compris si et comment il serait possible de surcharger certaines valeurs multiples.Valeur de remplacement multiple facultative avec variable d'environnement dans la bibliothèque de configuration typesafe

Quelque chose comme ça

multi = [ 
    "string" 
    "list" 
] 
multi=${?MULTI_ENV} 

Mais cette façon (si la variable d'environnement MULTI_ENV est fixé à, par exemple "value1,value2" ou "value1 value2") bien sûr le ConfigFactory.load().resolve().getStringList("multi") lève une exception, car plusieurs est un String simple, maintenant.

J'ai essayé multi=[${?MULTI_ENV}] aussi, mais cela ne veut pas faire l'affaire non plus, parce que dans le cas où la variable MULTI_ENV est pas défini multi sera vide.

Il ne semble pas être possible sans un code supplémentaire qui vérifie la variable d'environnement, l'analysant manuellement à List<String> et remplaçant manuellement la valeur config.withValue("multi",myParsedStringList), ou est-ce?

Répondre

0

On dirait qu'à partir d'aujourd'hui il y a une fonction intégrée pour cela.

Un feature request existe depuis mai 2015 mais il est peu probable qu'il soit implémenté car les variables d'environnement ne sont pas traitées comme ayant une syntaxe.

System properties already support something similar avec les touches numériques pour listes:

-Dfoo1=bar -Dfoo2=BAZ