commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Heger <>
Subject Re: [lang] Interpolation
Date Sat, 21 May 2005 14:01:45 GMT
Simon Kitching wrote:

>On Fri, 2005-05-20 at 19:00 +0200, Oliver Heger wrote:
>>a while ago there was a discussion about adding support for variable 
>>substitution/interpolation to lang. IIRC Simon Kitching proposed to 
>>extract the interpolation engine of digester. I'd like to know the 
>>current state of this project. Has there already been some work in this 
>>Background is that I would need such a feature for [configuration] where 
>>we plan to enhance our interpolation features. (ATM we have a dependency 
>>on [digester], but this will probably be removed in the future.)
>It's committed to the Lang subversion, in the "text" package.
>However I believe the Lang2.0 release which is currently at RC5 (and
>therefore will hopefully be released any day now!) deliberately excludes
>the "text" package as it is not regarded as "mature" yet.
>The interpolation stuff, being very simple, quite possibly could be
>released (my opinion) but:
> * it needs unit tests (my fault, but there's been no hurry as the
>    text package was never expected to be in the next release), and
> * there is other stuff in the text package that still needs work
>    before release.
>It's a shame you didn't mention this just a little earlier! Anyway, my
>suggestion would be to copy+paste the code from Lang into configuration
>for the moment. If/when a later version of lang includes that code, you
>could then switch to using it. And of course as one of the primary users
>you would be able to influence the features if they aren't exactly what
>you want right now!
>Digester is essentially in the same situation; it doesn't currently use
>Lang, so it has its own copy of the interpolation stuff (well, actually,
>the original :-). In Digester's case, though, we expose the substitution
>API to the user so they can customise the substitution; I don't know
>whether you need to do this in configuration.
I had found the Interpolation class in lang's text package, but I 
somehow hoped that digester's enhanced substitution features would make 
it into lang (especially the stuff with VariableExpander). This is very 
close to what I was looking for because we indeed would like to let the 
users customize the mechanism. Would this be of interest for lang or is 
it too, well, frameworkish?

In configuration there already exists an interpolation method, which is 
quite powerful and even detects cyclic substitutions. Don't know who the 
original author was. I think I will refactor this method out into an own 
class and add something like a VariableExpander interface (which will 
probably be slightly different from digester's original because we 
support other types than String, too).


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message