the best way that I've found to do this is to use a default file for common
props and just override the differences in an environment specific file.
Spring has support for this...
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:/environments/default.properties</value>
<value>classpath:/environments/${env}.properties</value>
...
then, you can run your app using -Denv=dev, etc...
Raji wrote:
>
> It would be nice to have the Property Placeholder support recursive
> substitution. I use this feature in Spring to configure properties for
> various environments. For example:
>
> db.URL= ${${env}.db.URL}
>
> dev.db.URL=jdbc:jtds:sqlserver://S08DX01:7531/UserAcnt
> test.db.URL=jdbc:jtds:sqlserver://S08DXK01:1433/UserAcnt
> prod.db.URL=jdbc:jtds:sqlserver://S08DXJ01:8413/UserAcnt
>
> Then in the JVM launch I just have to use -Denv=dev for the dev
> environment. But this concept does not work for the Camel Property Place
> Holder. I tried to invoke Spring's Place Holder using the Endpoint URI
> option but there also it fails.
>
> I can achieve something similar by using the Spring Placeholder to specify
> the name of the properties file for the different environment:
>
> <propertyPlaceholder id="properties"
> location="classpath:${env}-file-poll.properties"/>
>
> and then have three separate properties file dev-file-poll.properties,
> test-file-poll.properties,etc.
>
> I am trying to avoid creating separate properties file for this as it
> becomes a maintenance headache. Probably using the Registry or the
> Blueprint services I can achieve similar results. Any other options?
>
> Thanks
> Raji
>
-----
Ben O'Day
IT Consultant -http://consulting-notes.com
--
View this message in context:
http://camel.465427.n5.nabble.com/Recursive-Property-Placeholder-tp4727692p4727819.html
Sent from the Camel - Users mailing list archive at Nabble.com.