Implementations of this interface have the responsibility to get the value corresponding to a property name, and to enumerate available property names.
A configuration source is always read-only; any potential updates of the backing configuration values must be handled directly inside each configuration source instance.
Some configuration sources are known as default configuration sources. These configuration sources are normally available in all automatically-created configurations, and can be manually added to manually-created configurations as well. The default configuration sources are:
400300/META-INF/microprofile-config.properties resource, with
an ordinal value of 100
Some operating systems allow only alphabetic characters or an underscore (_) in environment variable names.
Other characters such as ., /, etc. may be disallowed. In order to set a value for a config property
that has a name containing such disallowed characters from an environment variable, the following rules are used.
Three environment variables are searched for a given property name (e.g. "com.ACME.size"):
com.ACME.size")com_ACME_size")COM_ACME_SIZE")The first of these environment variables that is found for a given name is returned.
Discovered configuration sources are loaded via the java. mechanism and and can be
registered by providing a resource named META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource,
which contains the fully qualified ConfigSource implementation class name as its content.
Configuration sources may also be added by defining org.
classes which are discoverable in this manner.
If a configuration source implements the AutoCloseable interface, then its close method will be called when the underlying configuration is released.
| Modifier and Type | Field and Description |
|---|---|
| public static final String | CONFIG_ORDINAL
The name of the configuration ordinal property, " |
| public static final int | DEFAULT_ORDINAL
The default configuration ordinal value, |
| Modifier and Type | Method and Description |
|---|---|
| public String | |
| public default int | Returns: the ordinal valueReturn the ordinal priority value of this configuration source. |
| public default Map | Returns: a map containing properties of this configuration sourceReturn the properties in this configuration source as a map. |
| public Set | Returns: a set of property names that are known to this configuration sourceGets all property names known to this configuration source, potentially without evaluating the values. |
| public String |
| CONFIG_ORDINAL | back to summary |
|---|---|
| public static final String CONFIG_ORDINAL The name of the configuration ordinal property, " | |
| DEFAULT_ORDINAL | back to summary |
|---|---|
| public static final int DEFAULT_ORDINAL The default configuration ordinal value, | |
| getName | back to summary |
|---|---|
| public String getName() The name of the configuration source. The name might be used for logging or for analysis of configured values, and also may be used in ordering decisions.
An example of a configuration source name is "
| |
| getOrdinal | back to summary |
|---|---|
| public default int getOrdinal() Return the ordinal priority value of this configuration source. If a property is specified in multiple config sources, the value in the config source with the highest ordinal takes precedence. For configuration sources with the same ordinal value, the configuration source name will be used for sorting according to string sorting criteria. Note that this method is only evaluated during the construction of the configuration, and does not affect the ordering of configuration sources within a configuration after that time. The ordinal values for the default configuration sources can be found above. Any configuration source which is a part of an application will typically use an ordinal between 0 and 200. Configuration sources provided by the container or 'environment' typically use an ordinal higher than 200. A framework which intends have values overridden by the application will use ordinals between 0 and 100.
The default implementation of this method looks for a configuration property named " This method may be overridden by configuration source implementations to provide a different behavior.
| |
| getProperties | back to summary |
|---|---|
| public default Map Return the properties in this configuration source as a map. | |
| getPropertyNames | back to summary |
|---|---|
| public Set Gets all property names known to this configuration source, potentially without evaluating the values. The returned property names may be a subset of the names of the total set of retrievable properties in this config source. The returned set is not required to allow concurrent or multi-threaded iteration; however, if the same set is returned by multiple calls to this method, then the implementation must support concurrent and multi-threaded iteration of that set. The set of keys returned may be a point-in-time snapshot, or may change over time (even during active iteration) to reflect dynamic changes to the available set of keys. | |
| getValue | back to summary |
|---|---|
| public String getValue(String propertyName) Return the value for the specified property in this configuration source. | |