WildFly Extension for Eclipse MicroProfile Config
Java
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config-api
dist
examples
extension
feature-pack
fraction
implementation
tck
.gitignore
LICENSE
README.md
TODO.md
pom.xml

README.md

microprofile-config-extension

WildFly/Swarm Extension for Eclipse MicroProfile Config.

Instructions

mvn clean install

Project structure

  • implementation - Implementation of the Eclipse MicroProfile Config API.
  • tck - Test suite to run the implementation against the Eclipse MicroProfile Config TCK.
  • 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 Swarm.
  • dist - A distribution of WildFly with the microprofile-config extension installed (in its standalone-microprofile.xml configuration)
  • config-api - Generation of Swarm Config API that provides a Java API to manage the microprofile-config subsystem.
  • fraction - Swarm Fraction to use the MicroProfile Config API in your application.
  • example - a Swarm application that uses an Config instance injected with CDI.

Example

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

The Web endpoint is using the Eclipse MicroProfile Config to read the value of the FOO_BAR property:

@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 Swarm fractions:

<dependency>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>cdi</artifactId>
</dependency>
<dependency>
  <groupId>org.wildfly</groupId>
  <artifactId>wildfly-microprofile-config-fraction</artifactId>
  <version>${project.version}</version>
</dependency>

First, run the example:

$ cd examples/simple/
$ mvn wildfly-swarm:run
...
2017-04-14 10:35:24,416 WARN  [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction: Eclipse MicroProfile Config - UNSTABLE        org.wildfly.swarm:microprofile-config:1.0-SNAPSHOT
...
2017-04-14 10:35:30,676 INFO  [org.wildfly.swarm] (main) WFSWARM99999: WildFly Swarm 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