WildFly/Swarm extension for Eclipse MicroProfile Config
Java
Clone or download

README.md

wildfly-microprofile-config

WildFly/Thorntail Extension for Eclipse MicroProfile Config.

Build Status

Instructions

mvn clean install

Project structure

  • extension - WildFly Extension that provides the microprofile-config subsystem. It also allows to define ConfigSources that are stored in the subsystem configuration.
  • feature-pack - Feature pack that bundles the extension with the JBoss Modules required to run it in WildFly and Thorntail.
  • dist - A distribution of WildFly with the microprofile-config extension installed (in its standalone-microprofile.xml configuration)
  • config-api - Generation of Thorntail Config API that provides a Java API to manage the microprofile-config subsystem.

Example

Once this project has been installed, go to the examples/simple directory to run the simple example.

The Web endpoint is using the Eclipse MicroProfile Config to read the value of the some properties:

@Inject
Config config;

@Inject
@ConfigProperty(name = "BAR", defaultValue = "my BAR property comes from the code")
String bar;

@Inject
@ConfigProperty(name = "BOOL_PROP", defaultValue = "no")
boolean boolProp;

...
Optional<String> foo = config.getOptionalValue("FOO", String.class);
...

The Eclipse MicroProfile Config can be used by the application by adding the corresponding Thorntail fractions:

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>microprofile-config</artifactId>
  <version>${project.version}</version>
</dependency>

First, run the simple example:

$ cd examples/simple/
$ mvn thorntail:run
...
2017-04-14 10:35:24,416 WARN  [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction: Eclipse MicroProfile Config - UNSTABLE        io.thorntail:microprofile-config:1.0-SNAPSHOT
...
2017-04-14 10:35:30,676 INFO  [org.wildfly.swarm] (main) WFSWARM99999: Thorntail is Ready

If you go to http://localhost:8080/hello, you will see the message:

$ curl http://localhost:8080/hello
FOO property = Optional[My FOO property comes from the microprofile-config.properties file]
BAR property = my BAR property comes from the code
BOOL_PROP property = false

The application has configured its FOO property in its microprofile-config.properties file. The BAR and BOOL_PROP properties are configured with defaultValue using the @ConfigProperty annotation.

Let's now restart the application with the FOO, BAR, and BOOL_PROP environment variables set:

$ BOOL_PROP="yes" FOO="my FOO property comes from the env" BAR="my BAR property comes from the env" mvn wildfly-swarm:run
...
2017-04-14 10:35:30,676 INFO  [org.wildfly.swarm] (main) WFSWARM99999: WildFly Swarm is Ready

If you now go again to http://localhost:8080/hello, you will see the message:

$ curl http://localhost:8080/hello
FOO property = Optional[my FOO property comes from the env]
BAR property = my BAR property comes from the env
BOOL_PROP property = true

Links