You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by "David J. M. Karlsen" <da...@davidkarlsen.com> on 2007/08/21 00:23:06 UTC

[configuration] Interpolation over several files, commons config 1.4

Hi!

I'm can use interpolation within a property file with success.
But I'd like to be able to spread this over several files.

F.ex:

prop1.properties:
var1=somevalue1
var2=somevalue2


prop2.properties
myvar1=${var1}
myvar2=${var2}

so that the resulting java.util.Properties would contain these values:
var1=somevalue1
var2=somevalue2
myvar1=somevalue1
myvar2=somevalue2


I can't get this to work - even with a CompoundConfiguration.

Any pointers?

TIA,
David

-- 
David J. M. Karlsen - +47 90 68 22 43
http://www.davidkarlsen.com
http://mp3.davidkarlsen.com


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


Re: [configuration] Interpolation over several files, commons config 1.4

Posted by Oliver Heger <ol...@oliver-heger.de>.
David J. M. Karlsen wrote:
<snip/>

> See the attached spring-context which uses spring-modules to create a
> org.apache.commons.configuration.CompositeConfiguration consisting of
> two properties files, prop1 and prop2.
> 
>> Interpolation in CombinedConfiguration should work over multiple
>> configuration sources. But because I don't know your actual use case I
>> can't say whether this helps you.
>>
>> Did you have a look at the include directives for
>> PropertiesConfiguration [1]? Maybe this is an option?
>>  
>>
> That could be a way to go - but I'd prefer doing this with the
> spring-factory bean combining the files as shown
> 
> TIA,
> David

Did you test what happens if you create a CompositeConfiguration
manually and then add the sub configurations to it?

This would a) eleminate springmodules as a potential source of errors
and b) could serve as a basis for a unit test

Oliver

> 
> 
> ------------------------------------------------------------------------
> 
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
> 
> 	<bean id="configFactory" class="org.springmodules.commons.configuration.CommonsConfigurationFactoryBean">
> 		<property name="configurations">
> 			<list>
> 				<bean class="org.apache.commons.configuration.CompositeConfiguration">
> 					<constructor-arg>
> 						<list>
> 							<bean class="org.apache.commons.configuration.PropertiesConfiguration">
> 								<constructor-arg type="java.lang.String" value="prop1.properties" />
> 							</bean>
> 							<bean class="org.apache.commons.configuration.PropertiesConfiguration">
> 								<constructor-arg type="java.lang.String" value="prop2.properties" />
> 							</bean>									
> 						</list>
> 					</constructor-arg>
> 				</bean>
> 			</list>
> 		</property>
> 	</bean>
> 	
> 	<bean id="properties" factory-bean="&amp;configFactory" factory-method="getConfiguration"/>
> 
> </beans>
> 
> 
> ------------------------------------------------------------------------
> 
> prop2=value2
> myalias=${placeholder1}
> ${myvar}=123
> place=${prop2}
> 
> 
> ------------------------------------------------------------------------
> 
> prop1=value1
> placeholder1=placevalue1
> place2=${prop2}
> 
> 
> ------------------------------------------------------------------------
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org


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


Re: [configuration] Interpolation over several files, commons config 1.4

Posted by "David J. M. Karlsen" <da...@davidkarlsen.com>.
Oliver Heger skrev:

>David J. M. Karlsen wrote:
>  
>
>>Hi!
>>
>>I'm can use interpolation within a property file with success.
>>But I'd like to be able to spread this over several files.
>>
>>F.ex:
>>
>>prop1.properties:
>>var1=somevalue1
>>var2=somevalue2
>>
>>
>>prop2.properties
>>myvar1=${var1}
>>myvar2=${var2}
>>
>>so that the resulting java.util.Properties would contain these values:
>>var1=somevalue1
>>var2=somevalue2
>>myvar1=somevalue1
>>myvar2=somevalue2
>>
>>
>>I can't get this to work - even with a CompoundConfiguration.
>>
>>Any pointers?
>>
>>TIA,
>>David
>>
>>    
>>
>It would be helpful if you could provide some code fragments
>demonstrating what you are doing and how you are creating a
>java.util.Properties object. So I am not sure what is going wrong.
>  
>
See the attached spring-context which uses spring-modules to create a 
org.apache.commons.configuration.CompositeConfiguration consisting of 
two properties files, prop1 and prop2.

>Interpolation in CombinedConfiguration should work over multiple
>configuration sources. But because I don't know your actual use case I
>can't say whether this helps you.
>
>Did you have a look at the include directives for
>PropertiesConfiguration [1]? Maybe this is an option?
>  
>
That could be a way to go - but I'd prefer doing this with the 
spring-factory bean combining the files as shown

TIA,
David

Re: [configuration] Interpolation over several files, commons config 1.4

Posted by Oliver Heger <ol...@oliver-heger.de>.
David J. M. Karlsen wrote:
> Hi!
> 
> I'm can use interpolation within a property file with success.
> But I'd like to be able to spread this over several files.
> 
> F.ex:
> 
> prop1.properties:
> var1=somevalue1
> var2=somevalue2
> 
> 
> prop2.properties
> myvar1=${var1}
> myvar2=${var2}
> 
> so that the resulting java.util.Properties would contain these values:
> var1=somevalue1
> var2=somevalue2
> myvar1=somevalue1
> myvar2=somevalue2
> 
> 
> I can't get this to work - even with a CompoundConfiguration.
> 
> Any pointers?
> 
> TIA,
> David
> 
It would be helpful if you could provide some code fragments
demonstrating what you are doing and how you are creating a
java.util.Properties object. So I am not sure what is going wrong.

Interpolation in CombinedConfiguration should work over multiple
configuration sources. But because I don't know your actual use case I
can't say whether this helps you.

Did you have a look at the include directives for
PropertiesConfiguration [1]? Maybe this is an option?

Oliver

[1]
http://commons.apache.org/configuration/userguide/howto_properties.html#Includes

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