How can I override a typesafe config list value on the command line?

14,692

Solution 1

An alternative syntax is implemented in version 1.0.1 for this:

-Dpoller.datacenters.0=SJC -Dpoller.datacenters.1=IAD

Solution 2

I had the same issue some weeks ago, and finally dived into the source code to understand what's going on:

  • This feature is not implemented, it's not possible to define a list using command line argument

Fixing it wouldn't be that hard, but someone need to take time to do it.

Share:
14,692
Michael Frank
Author by

Michael Frank

Updated on June 05, 2022

Comments

  • Michael Frank
    Michael Frank almost 2 years

    I have an application.conf file with a structure like the following:

    poller {
      datacenters = []
    }
    

    I would like to override "datacenters" on the command line.

    For other configuration keys whose values are simple types (strings, numbers) I can override using -Dpath.to.config.value=<value>, and this works fine.

    However, I can't seem to find a way to do this for lists. In the example above, I tried to set "datacenters" to ["SJC", "IAD"] like so: -Dpoller.datacenters="['SJC', 'IAD']", but I get an exception that the key value is a string, not a list.

    Is there a way to signal to the typesafe config library that this value is a list?

  • Grigoriev Nick
    Grigoriev Nick over 4 years
    What if I need to put an empty List?