blob: 1a4b9678c7a27387049685a4fac50e789832365f [file] [log] [blame]
:jbake-type: page
:jbake-status: published
= Apache Tamaya -- Extension: Optional Tamaya Configuration
toc::[]
[[Optional]]
== Tamaya Optional Configuration (Extension Module)
=== Overview
The Tamaya optional module provides contains three types only. It is for projects that want to benefit from Tamaya
configuration optionally only. E.g. doing an OSS project you can declare to support configuration with Tamaya as
an optional extension. This module can be added as a hard dependency to your code, hereby adding only three artofacts.
It automatically checks the availability of Tamaya on the classpath and only if available tries to access it for
configuration evaluation. Additionally an EvaluationPolicy lets you define the precedence of configured values
(yours, or Tamaya ones if present).
=== Compatibility
The module is based on Java 7, so it will not run on Java 7 and beyond.
=== Installation
To benefit from configuration builder support you only must add the corresponding dependency to your module:
[source, xml]
-----------------------------------------------
<dependency>
<groupId>org.apache.tamaya.ext</groupId>
<artifactId>tamaya-optional</artifactId>
<version>{tamaya_version}</version>
</dependency>
-----------------------------------------------
=== Reading configuration using the Tamaya Optional Module
The optional module allows reading configuration with a small subset of functionality only. For extended of full
featured config please consider using the Apache Tamaya as a full configuration backend.
[source, java]
-----------------------------------------------
BigDecimal interestRate =
OptionalConfiguration.of(
EvaluationPolicy.TAMAYA_OVERRIDES_OTHER,
(k) -> MyConfigMechanism.get(k) // String get(String key);
)
.get("com.mycomp.ratecalculator.rate", BigDecimal.class))
.orElse(BigDecimal.of(0.05d));
-----------------------------------------------