1

I am currently working with my java application with dropwizard.

It works fine and I run it sending a yml file full or parameters.

So, for example, one of them is this one:

reporting:
  enabled: false

So, what I want to do is to make this yml file my default and when needed (for future functions) send the value of this var

So Id like to do something like this

reporting:
  enabled: ${REPORTING_FLAG:false}

Then I can send REPORTING_FLAG as a environment parameter (docker) and should work fine....

The issue is that I see this model is not recognised by my app.

Is there any way I can do it like this? is there an extra configuration to take in consideration? Ive done it before with a spring app but this seems to be different.

Right now I am getting an error that the expected boolean value is not valid (taking the whole line as a string)

Ideas?

chrylis -cautiouslyoptimistic-
  • 75,269
  • 21
  • 115
  • 152
jpganz18
  • 5,508
  • 17
  • 66
  • 115

1 Answers1

5

So, after reading more dropwizard documentation I found this: https://www.dropwizard.io/0.8.2/docs/manual/core.html

Environment variables

The dropwizard-configuration module also provides the capabilities to substitute configuration settings with the value of environment variables using a SubstitutingSourceProvider and EnvironmentVariableSubstitutor.

public class MyApplication extends Application<MyConfiguration> {
    // [...]
    @Override
    public void initialize(Bootstrap<MyConfiguration> bootstrap) {
        // Enable variable substitution with environment variables
        bootstrap.setConfigurationSourceProvider(
                new SubstitutingSourceProvider(bootstrap.getConfigurationSourceProvider(),
                                                   new EnvironmentVariableSubstitutor()
                )
        );

    }

    // [...]
}

The configuration settings which should be substituted need to be explicitly written in the configuration file and follow the substitution rules of StrSubstitutor from the Apache Commons Lang library.

mySetting: ${DW_MY_SETTING}
defaultSetting: ${DW_DEFAULT_SETTING:-default value}
jpganz18
  • 5,508
  • 17
  • 66
  • 115