Class ConfigFinder.ConfigFinderBuilder
- Enclosing class:
- ConfigFinder
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuild()
classpathFile
(String classpathYamlFilePath) A .yaml config file to search on the classpath.environmentVariablesPrefixes
(List<String> prefixes) The allowed prefixes an environment variable can have to be used as a configuration.environmentVariablesStripPrefix
(boolean strip) Should the prefix of an environment variable be stripped? For example, ifenvironmentVariablesPrefixes
indicate that "app." is an environment variable prefix, then "app.admin.email" would result in a "admin.email" key.externalFile
(String externalYamlFilePath) A .yaml config file to search to be found outside the application.externalFile
(String externalYamlFilePath, boolean overrideEnvironmentVariables) A .yaml config file to search to be found outside the application.systemPropertiesPrefixes
(List<String> prefixes) The allowed prefixes a system property can have to be used as a configuration.systemPropertiesStripPrefix
(boolean strip) Should the prefix of an system property be stripped? For example, ifsystemPropertiesPrefixes
indicate that "app." is an system property prefix, then "app.admin.email" would result in a "admin.email" key.throwExceptionIfSpecifiedClasspathConfigFileIsNotFound
(boolean enable) Should an exception be thrown if a classpath config file is specified (is notnull
) but is not found.throwExceptionIfSpecifiedExternalConfigFileIsNotFound
(boolean enable) Should an exception be thrown if an external config file is specified (is notnull
) but is not found.
-
Constructor Details
-
ConfigFinderBuilder
public ConfigFinderBuilder()
-
-
Method Details
-
classpathFile
A .yaml config file to search on the classpath. This is where you would put the default values of your configurations that can be overriden externally. This file would be provided in the resources of your application, for example :src/main/resources/app-config.yaml
-
externalFile
A .yaml config file to search to be found outside the application. This can be a relative or an absolute path. If the application is ran from the executable .jar, a relative path is relative to this .jar file.Important : a relative path MUST start with ".", otherwise the path will be considered as being absolute. For example, if your configuration file is called "app-config.yaml" and is next to the executable jar, you would use "./app-config.yaml" as the path.
-
externalFile
public ConfigFinder.ConfigFinderBuilder externalFile(String externalYamlFilePath, boolean overrideEnvironmentVariables) A .yaml config file to search to be found outside the application. This can be a relative or an absolute path. If the application is ran from the executable .jar, a relative path is relative to this .jar file.- Parameters:
overrideEnvironmentVariables
- If environment variables are used too, should the configs from this file override them? The default isfalse
: environment variables override the configs from the external file.
-
environmentVariablesPrefixes
The allowed prefixes an environment variable can have to be used as a configuration.Those prefixes will be stripped to produce the configuration keys!
Multiple prefixes are allowed so you can have configurations specific to an application, but also configurations common to multiple applications on the same server.
-
environmentVariablesStripPrefix
Should the prefix of an environment variable be stripped? For example, ifenvironmentVariablesPrefixes
indicate that "app." is an environment variable prefix, then "app.admin.email" would result in a "admin.email" key.Defaults to
false
. -
systemPropertiesPrefixes
The allowed prefixes a system property can have to be used as a configuration.Those prefixes will be stripped to produce the configuration keys!
Multiple prefixes are allowed so you can have configurations specific to an application, but also configurations common to multiple applications on the same server.
-
systemPropertiesStripPrefix
Should the prefix of an system property be stripped? For example, ifsystemPropertiesPrefixes
indicate that "app." is an system property prefix, then "app.admin.email" would result in a "admin.email" key.Defaults to
false
. -
throwExceptionIfSpecifiedClasspathConfigFileIsNotFound
public ConfigFinder.ConfigFinderBuilder throwExceptionIfSpecifiedClasspathConfigFileIsNotFound(boolean enable) Should an exception be thrown if a classpath config file is specified (is notnull
) but is not found.If set to
false
, a message will be logged but no exception will be thrown.Defaults to
false
. -
throwExceptionIfSpecifiedExternalConfigFileIsNotFound
public ConfigFinder.ConfigFinderBuilder throwExceptionIfSpecifiedExternalConfigFileIsNotFound(boolean enable) Should an exception be thrown if an external config file is specified (is notnull
) but is not found.If set to
false
, a message will be logged but no exception will be thrown.Defaults to
false
. -
build
-