I am trying to create a TypeSafe config with optional values to end up writing the configuration into a file.
The problem is that when I do
val newConfig = config
.withValue("something",ConfigValueFactory.fromAnyRef("defaultvalue"))
.withValue("something", ConfigValueFactory.fromAnyRef("${?optional}"))
the result is something like:
{something: ${?optional}}
but I want something like:
{something: defaultValue, something: ${?optional}}
Is possible to do that programamtically??
The problem with
withValueis that the last call will just return a new object with only the new value. You could usewithFallback, except it will have the same problem because the value is being resolved while you construct the object.I played with this for a while, but it seems the Typesafe Config API is expressed in terms of the resolved object model, rather than the HOCON AST, making yours an unsupported use case. I would recommend you open a feature request in their GitHub repo here: https://github.com/lightbend/config/issues