Eclipse MicroProfile Config API
The Payara Platform 6.2023.5 provides MicroProfile Configuration 3.0.2
Background
The Config API was created to allow for the modification of application configuration from outside the application without needing the application to be repackaged.
The complete specification can be found on the Eclipse MicroProfile website.
Breaking changes introduced in MicroProfile Config 3.0.2 are listed in the official specification under Incompatible Changes
Config Sources
A ConfigSource
is a definition of a source of configuration values that can be used by an application. In addition to the default ConfigSources outlined by the specification, the following are also supported ConfigSources:
Where multiple configuration properties exist, the property from a source with a higher ordinal number is preferred. |
Source | Ordinal | Description |
---|---|---|
|
90 |
Reads configuration properties from files in a specified directory. Each file name is the configuration property name and the contents of the file are the config property value. This config source can be used to read Kubernetes secrets files. + You can find out more about directory config sources here: Directory Config Sources |
|
105 |
Retrieves and stores config values in the password alias store. These will be available to all server instances in a domain. |
|
110 |
Retrieves and stores config values in the domain.xml as key values. These will then apply to all instances within a domain |
|
115 |
Retrieves and stores config values within the JNDI tree. The property name being the dotted name path in the JNDI tree and the value being stored in the JNDI tree. These are modifiable by current admin console functionality. |
|
120 |
Retrieves and stores config values at the level of the named configuration in the domain.xml; |
|
130 |
Retrieves and stores config values at the level of the server in the domain.xml. Property values will only apply on the named server instance |
|
140 |
Retrieves and stores config values at the level of the application. Property values will only be available for the specified application on all server instances it is deployed |
|
150 |
Retrieves and stores config values at the level of an individual module within an application. Property values will only be available for the specified module on all server instances it is deployed |
|
160 |
Retrieves and stores config values in the Hazelcast cluster as name value pairs. These will be available for all server instances that are members of the cluster. |
|
170 |
Reads configuration properties from a |
|
180 |
Reads configuration properties from various Cloud provider secret stores. + You can find out more about our supported cloud config sources here: Cloud Config Sources |
|
190 |
Reads configuration properties from a specified database table. + You can find out more about JDBC config sources here: JDBC Config Sources |
|
200 |
Reads configuration properties from a specified LDAP directory. + You can find out more about LDAP config sources here: LDAP Config Sources |
Converters
In addition to the standard converters specified by the API, Payara Platform’s implementation includes out-of-the-box converters for URL and InetAddress
.
These have @Priority
of 1
, the same as the default converters.
Payara Platform Configuration Properties
In addition to the standard configuration properties, Payara Server and Micro provide a number of out-of-the-box config properties you can use in your application to find information about the runtime environment.
Property | Description |
---|---|
|
The type of the runtime from |
|
The name of the instance e.g. |
|
The directory which is the root of the instance installation |
|
The name of the Payara domain |
|
The directory which is the root of the Payara software installation |
|
The directory in which the server’s configuration files reside |
|
The start time of the server in |
|
The name of the configuration this server is using |
|
The administration port number of this instance |
|
The host IP address which the admin listener is listening on |
|
The HTTP port for http-listener |
|
The IP address the http listener is listening on |
|
Whether the http listener is enabled |
|
The HTTP port for https-listener |
|
The IP address the https listener is listening on |
|
Whether the https listener is enabled |
Payara Server offers additional facilities to configure specific settings of the MicroProfile Configuration API, described next.
Config Ordinal Configuration
Configuration variables ordinal values can be configured by using Admin Console or via the Asadmin CLI.
Using the Admin Console
To configure the ordinal value in the Admin Console, go to Configuration → [instance-configuration (like server-config)] → MicroProfile → Config → Ordinal:
Configuration Property Manipulation
Configuration properties can be configured by using Admin Console or Asadmin commands.
Using the Admin Console
To configure the property in the Admin Console, go to Configuration → [instance-configuration (like server-config)] → MicroProfile → Config → Property:
Cache Duration Configuration
The cache duration of the values of a configuration property can be configured by using Asadmin commands. By default, the cached value of properties have a TTL (time to live) of 60
seconds.
That means each individual property does not change for 60
seconds since it has been resolved before. Therefore, it can take up to 60
seconds for changes made visible by a source to become effective.
If properties were not resolved recently, the change can become visible faster than the cache duration or even immediately because some time already passed since they had been last resolved and cached. |
Use the set-config-cache
to modify this setting.