[ 
https://issues.apache.org/jira/browse/CONFIGURATION-595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14286225#comment-14286225
 ] 

Oliver Heger commented on CONFIGURATION-595:
--------------------------------------------

It is correct that {{PropertiesConfiguration}} does not support optional 
includes.

However, you can achieve something similar - and more flexible and powerful - 
with {{CombinedConfigurationBuilder}} (or {{DefaultConfigurationBuilder}} if 
you are still using version 1.10). This class allows constructing a combined 
configuration from an arbitrary number of configuration sources. Optional 
sources are supported as well. This is described in the user's guide at

http://commons.apache.org/proper/commons-configuration/userguide/howto_combinedbuilder.html#Optional_configuration_sources

Please have a look and tell us whether this fits your needs. I am a bit 
reluctant of extending the include mechanism of {{PropertiesConfiguration}} 
because it is a specific feature of this class and not supported by other 
configuration implementations - especially if combined configuration sources 
offer a super set of the functionality available.

> need optional include without exception
> ---------------------------------------
>
>                 Key: CONFIGURATION-595
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-595
>             Project: Commons Configuration
>          Issue Type: Improvement
>          Components: Expression engine
>    Affects Versions: 2.x, 1.10
>            Reporter: ryenus
>
> I'm trying to include a server local properties file during initialization of 
> a distributed application.
> The file to be included might not exist on some of the servers, and this 
> should be fine in terms of our application logic.
> But this is not possible with commons configuration, inside 
> org.apache.commons.configuration.PropertiesConfiguration.loadIncludeFile(String),
>  when an included file doesn't exist, namely the resolved url would be null, 
> it always throws a ConfigurationException. 
> See: 
> https://github.com/apache/commons-configuration/blob/trunk/src/main/java/org/apache/commons/configuration2/PropertiesConfiguration.java#L1414
> This might be good to ensure configuration integrity, but looking around, for 
> bash, ~/.bashrc is optional, for maven, ~/.m2/settings.xml is optional, I 
> wish there could be a way to do the same in commons configurations.
> One way is to skip the exception, and print a warning to stderr (or some 
> better logging options).
> Alternatively, an `optionalInclude` key can be introduced to serve this 
> purpose.
> Thanks!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to