<dependency>
<groupId>org.apache.juneau</groupId>
<artifactId>juneau-svl</artifactId>
<version>8.0.0</version>
</dependency>
juneau-svl-8.0.0.jar
org.apache.juneau.svl_8.0.0.jar
The juneau-svl
module defines an API for a language called "Simple Variable Language".
In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form
"$varName{varKey}".
Variables can be recursively nested within the varKey (e.g. "$FOO{$BAR{xxx},$BAZ{xxx}}").
Variables can also return values that themselves contain more variables.
// Use the default variable resolver to resolve a string that contains $S (system property) variables
String myProperty = VarResolver.DEFAULT.resolve("The Java home directory is $S{java.home}");
The following shows how variables can be arbitrarily nested:
// Look up a property in the following order:
// 1) MYPROPERTY environment variable.
// 2) 'my.property' system property if environment variable not found.
// 3) 'not found' string if system property not found.
String myproperty = VarResolver.DEFAULT.resolve("$E{MYPROPERTY,$S{my.property,not found}}");
SVL is a large topic on it's own.
It is used extensively in the ConfigFile, REST and Microservice APIs.
Plugging in your own variables is also easy.
More Information: