web-dev-qa-db-fra.com

Comment puis-je remplacer une valeur de liste de configuration typesafe sur la ligne de commande?

J'ai un application.conf fichier avec une structure comme celle-ci:

poller {
  datacenters = []
}

Je voudrais remplacer "datacenters" sur la ligne de commande.

Pour les autres clés de configuration dont les valeurs sont des types simples (chaînes, nombres), je peux remplacer en utilisant -Dpath.to.config.value=<value>, et cela fonctionne bien.

Cependant, je n'arrive pas à trouver un moyen de le faire pour list s. Dans l'exemple ci-dessus, j'ai essayé de définir "datacenters" à ["SJC", "IAD"] ainsi: -Dpoller.datacenters="['SJC', 'IAD']", mais j'obtiens une exception selon laquelle la valeur de clé est une chaîne, pas une liste.

Existe-t-il un moyen de signaler à la bibliothèque de configuration typesafe que cette valeur est une liste?

41
Michael Frank

Une syntaxe alternative est implémentée dans la version 1.0.1 pour cela:

-Dpoller.datacenters.0=SJC -Dpoller.datacenters.1=IAD
63
Patrik Nordwall

J'ai eu le même problème il y a quelques semaines et j'ai finalement plongé dans le code source pour comprendre ce qui se passait:

  • Cette fonctionnalité n'est pas implémentée, il n'est pas possible de définir une liste à l'aide d'un argument de ligne de commande

Le réparer ne serait pas si difficile, mais quelqu'un doit prendre le temps de le faire.

3
Alois Cochard