Thorntail: Config API for MicroProfile Config

Parent POM for JBoss projects. Provides default project build configuration.

License

License

Categories

Categories

config Application Layer Libs Configuration
GroupId

GroupId

io.thorntail
ArtifactId

ArtifactId

microprofile-config-api
Last Version

Last Version

1.3.0
Release Date

Release Date

Type

Type

jar
Description

Description

Thorntail: Config API for MicroProfile Config
Parent POM for JBoss projects. Provides default project build configuration.
Project Organization

Project Organization

JBoss by Red Hat

Download microprofile-config-api

How to add to project

<!-- https://jarcasting.com/artifacts/io.thorntail/microprofile-config-api/ -->
<dependency>
    <groupId>io.thorntail</groupId>
    <artifactId>microprofile-config-api</artifactId>
    <version>1.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/io.thorntail/microprofile-config-api/
implementation 'io.thorntail:microprofile-config-api:1.3.0'
// https://jarcasting.com/artifacts/io.thorntail/microprofile-config-api/
implementation ("io.thorntail:microprofile-config-api:1.3.0")
'io.thorntail:microprofile-config-api:jar:1.3.0'
<dependency org="io.thorntail" name="microprofile-config-api" rev="1.3.0">
  <artifact name="microprofile-config-api" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.thorntail', module='microprofile-config-api', version='1.3.0')
)
libraryDependencies += "io.thorntail" % "microprofile-config-api" % "1.3.0"
[io.thorntail/microprofile-config-api "1.3.0"]

Dependencies

compile (1)

Group / Artifact Type Version
io.thorntail : config-api-runtime jar 1.4.0

provided (1)

Group / Artifact Type Version
org.wildfly.core : wildfly-controller jar 3.0.8.Final

test (2)

Group / Artifact Type Version
junit : junit jar 4.11
io.thorntail : config-api-generator jar 1.4.0

Project Modules

There are no modules declared in this project.

wildfly-microprofile-config

WildFly/Thorntail Extension for Eclipse MicroProfile Config, based on the SmallRye Config implementation.

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

io.thorntail

WildFly extras

Community extras for WildFly

Versions

Version
1.3.0