Package com.mchange.v3.hocon
Class HoconPropertiesConfigSource
- java.lang.Object
-
- com.mchange.v3.hocon.HoconPropertiesConfigSource
-
- All Implemented Interfaces:
PropertiesConfigSource
public final class HoconPropertiesConfigSource extends java.lang.Object implements PropertiesConfigSource
An implementation ofPropertiesConfigSource
that reads HOCON configs into properties for incorporation intoMultiPropertiesConfig
. HOCON config files are read as resources by an identifier, which might look like hocon:reference,application,special.json,scoped.conf#my-scope,/ Elements within this path are interpreted as URLs if they contain a colon, e.g. hocon:reference,application,http://my.host.name/networkconfig,/ URL elements can contain substitutions based on System properties or environment variables (with System properties taking preference if both are found) hocon:reference,application,file:${user.home}/.myconfig,/ NOTE: Hash symbols (#) within URLs will be interpreted as denoting a config scope (see below). They and any subsequent text will NOT be treated as part of the URL All Configs found are merged, with later elements in the list taking preference over earlier elements. Substitutions within the full, merged Config are resolved. Elements that have no suffix (or, more exactly, that contain no '.' character) are read appending all three HOCON standard suffixes, so that "xxx" reads all three of xxx.conf, xxx.json, and xxx.properties. Anything that follows a '#' character in an identifier is treated as a scope, such that the only Config loaded (as the new top-level!) are those underneath the scope key. So, in JSON format, if the config under scoped.conf is { "some-top-level-key" : "hello", "my-scope" : { "a" : "apple", "b" : "book", "c" : "cat" } } scoped.conf#my-scope will be read as: { "a" : "apple", "b" : "book", "c" : "cat" } The special element '/' refers to a Config containing System properties. Following HOCON config conventions, resources under the identifier 'application' will be replaced if any of "config.resource", "config.file", or "config.url" are set.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.mchange.v2.cfg.PropertiesConfigSource
PropertiesConfigSource.Parse
-
-
Constructor Summary
Constructors Constructor Description HoconPropertiesConfigSource()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PropertiesConfigSource.Parse
propertiesFromSource(java.lang.ClassLoader cl, java.lang.String identifier)
PropertiesConfigSource.Parse
propertiesFromSource(java.lang.String identifier)
An Exception signifies this source cannot be parsed at all; it is a bad source.
-
-
-
Method Detail
-
propertiesFromSource
public PropertiesConfigSource.Parse propertiesFromSource(java.lang.ClassLoader cl, java.lang.String identifier) throws java.io.FileNotFoundException, java.lang.Exception
- Throws:
java.io.FileNotFoundException
java.lang.Exception
-
propertiesFromSource
public PropertiesConfigSource.Parse propertiesFromSource(java.lang.String identifier) throws java.io.FileNotFoundException, java.lang.Exception
Description copied from interface:PropertiesConfigSource
An Exception signifies this source cannot be parsed at all; it is a bad source. More local failures should be handled and reported in parse messages.- Specified by:
propertiesFromSource
in interfacePropertiesConfigSource
- Throws:
java.io.FileNotFoundException
java.lang.Exception
-
-