Configur8
Nano-library which provides the ability to define typesafe (!) Configuration templates for applications.
Concept:
A Configuration
is a set of named and typed Property
instances, which are defined using a ConfigurationTemplate
.
Each defined Property can be set with a default value, or be blank with a requirement to be overridden. At runtime, the template is reified
into a concrete Configuration
object, but if any properties are missing this process will throw a Misconfiguration
error.
Assuming that the reification process is successful, property values can be retrieved in an (actually) type-safe manner, and are applied in the following descending order of precedence:
- Named environment property
- JVM system property
- Default value
Get it:
Currently, the library is published in Java, Kotlin and Scala versions in JCenter (and synced to Maven Central).
Maven:
Java:
<dependency>
<groupId>io.github.daviddenton</groupId>
<artifactId>configur8</artifactId>
<version>1.1.3</version>
</dependency>
Kotlin:
<dependency>
<groupId>io.github.daviddenton</groupId>
<artifactId>konfigur8</artifactId>
<version>1.1.3</version>
</dependency>
SBT:
libraryDependencies += "io.github.daviddenton" %% "configur8" % "1.1.3"