Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
Description
It would be really handy of StrSubstitutor could support nested variable interpolation:
org.osgi.framework.system.packages=org.osgi.framework; version=1.4.0, \
org.osgi.service.packageadmin; version=1.2.0, \
org.osgi.service.startlevel; version=1.1.0, \
org.osgi.service.url; version=1.0.0, \
org.osgi.util.tracker; version=1.3.3 \
${jre-${java.specification.version}}
The process being to expand innermost variable references first and work outwards - this allows for very advance config, such as the above, which can dynamically detect the Java version and expand a JRE version specific property into the property being defined.
Looking at the implementation, it seems it might be a fairly straightforward enhancement to:
private int substitute(StrBuilder buf, int offset, int length, List priorVariables)
The code already has the cyclic map in place.
I already have code that achieves this within Apache Felix, so I will see if I can retro-fit a similar model to the above and if so submit a patch.