Martin Ritchie schrieb:
2009/9/14 Oliver Heger <[email protected]>:
Martin Ritchie schrieb:
Hi,

I have been reading the Configuration Builder docs

(http://commons.apache.org/configuration/userguide/howto_configurationbuilder.html)
and have been trying to get the configuration below to take my
optional configuration.
However, both the test.config property and the resulting file must
exist even though I have marked the config as optional. Can someone
with more understanding of commons configuartion take a look at the
config below and point out what I've done wrong?

Regards
Martin

<configuration>
  <system/>
  <override>
      <xml fileName="${test.config}" config-optional="true"/>
      <xml fileName="${TEST_HOME}/etc/config-systests-settings.xml"/>
      <xml fileName="${TEST_HOME}/etc/config.xml"/>
  </override>
</configuration>

Maybe you can provide a short code fragment demonstrating how you load this
configuration. What exactly happens, do you get an exception?

Per default, the configuration builder logs an exception if it cannot create
a configuration marked as optional. But this should not have any further
consequences.

Oliver

Hi Oliver,

I've put the code and errors up here:
http://pastie.org/617143

Perhaps I'm misunderstanding quite how the Configuration works. I
would have expected that an optional value would be skipped if it
cannot resolve the variables in the name or the file does not exist.

If the default behaviour is to create the optional configuration then
I can understand my first exception as I have not defined variable ;
test.config. However I can't understand the second exception occurs
because the file does not exist and so the default behaviour of
creating the file should proceed.

Thanks again for your help

Martin


Whether the variable for the file name exists or not is not checked, the configuration always tries to load the file.

The second exception is probably caused by your usage of ConfigurationFactory. Try DefaultConfigurationBuilder instead. Its API is very similar to the one of ConfigurationFactory, but it is more powerful and thus it is recommended to use this class. IIRC ConfigurationFactory does not understand the "config-optional" attribute - it only knows the "optional" attribute.

Oliver

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to