commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Schaible <joerg.schai...@scalaris.com>
Subject Re: Commons Configuration - Variable interpolation not working
Date Tue, 29 Nov 2011 12:30:07 GMT
Hi,

Vinicius Carvalho wrote:

> Hi there! I'm trying to get Variable interpolation to work. But it seems
> that either I missed something at the docs or there's a bug here.
> 
> All I need is to replace a ${app} on my properties file to contain a
> string instead
> 
> so whenever I have ${app}.maxUsers=10 I want AppName.maxUsers=10
> 
> Here's some code:
> 
> private class AppInterpolator extends StrLookup{
> @Override
> public String lookup(String var) {
> return "#{"+appName+"}";
> }
>  }
> 
> ConfigurationInterpolator.registerGlobalLookup("app", new
> AppInterpolator());
> config = new CompositeConfiguration();
> PropertiesConfiguration localProps = new
> 
PropertiesConfiguration(this.getClass().getClassLoader().getResource(PROPERTIES_FILE_NAME));
> this.config.addConfiguration(localProps);
> 
> 
> But after using config.getProperty("") I've noticed that the property here
> is ${app}.maxUsers and not AppName.maxUsers
> 
> I've also noticed that it seems that PropertiesFile does not reference
> ConfigurationInterpolator at all.
> 
> Any ideas on how to fix this?

Let me cite the Javadoc or AbstractConfiguration:

"Support for variable interpolation. Property values containing special 
variable tokens (like ${var}) will be replaced by their corresponding 
values."

*values*, not *keys*

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message