diff options
author | mcentner <mcentner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-05-27 15:21:57 +0000 |
---|---|---|
committer | mcentner <mcentner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-05-27 15:21:57 +0000 |
commit | e91a7c1b77d8e36a7268cc6c7cf8a6aba72f449f (patch) | |
tree | 7a002247ba80b6c12b9d750848f2949e1e5a3c75 /bkucommon/src/main/java/at/gv/egiz/bku/spring | |
parent | 00b274ad1a06a3a5d5a824cbb8dab6c13dc8e315 (diff) | |
download | mocca-e91a7c1b77d8e36a7268cc6c7cf8a6aba72f449f.tar.gz mocca-e91a7c1b77d8e36a7268cc6c7cf8a6aba72f449f.tar.bz2 mocca-e91a7c1b77d8e36a7268cc6c7cf8a6aba72f449f.zip |
Added 'failOnMissingResource' property to ConfigurationFactoryBean.
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@745 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'bkucommon/src/main/java/at/gv/egiz/bku/spring')
-rw-r--r-- | bkucommon/src/main/java/at/gv/egiz/bku/spring/ConfigurationFactoryBean.java | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/spring/ConfigurationFactoryBean.java b/bkucommon/src/main/java/at/gv/egiz/bku/spring/ConfigurationFactoryBean.java index a6a7c346..dd0aa1a6 100644 --- a/bkucommon/src/main/java/at/gv/egiz/bku/spring/ConfigurationFactoryBean.java +++ b/bkucommon/src/main/java/at/gv/egiz/bku/spring/ConfigurationFactoryBean.java @@ -36,6 +36,7 @@ import org.springframework.context.ResourceLoaderAware; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; +import at.gv.egiz.bku.conf.MoccaConfigurationException; import at.gv.egiz.bku.slcommands.impl.CreateXMLSignatureCommandImpl; /** @@ -59,6 +60,12 @@ public class ConfigurationFactoryBean implements FactoryBean, ResourceLoaderAwar * The URL of the configuration file. */ protected Resource configurationResource; + + /** + * Should building the configuration fail if the given configuration resource + * is not available? + */ + protected boolean failOnMissingResource = false; /** * The ResourceLoader. @@ -84,6 +91,14 @@ public class ConfigurationFactoryBean implements FactoryBean, ResourceLoaderAwar this.configurationResource = configurationResource; } + /** + * @param failOnMissingConfigurationResource the failOnMissingConfigurationResource to set + */ + public void setfailOnMissingResource( + Boolean failOnMissingResource) { + this.failOnMissingResource = failOnMissingResource; + } + protected Configuration getDefaultConfiguration() throws ConfigurationException, IOException { Resource resource = resourceLoader.getResource(DEFAULT_CONFIG); @@ -141,18 +156,30 @@ public class ConfigurationFactoryBean implements FactoryBean, ResourceLoaderAwar log.info("Configuration resource is {}.", configurationResource); - CompositeConfiguration configuration; - if (configurationResource == null) { + CompositeConfiguration configuration = null; + if (configurationResource != null) { + if (configurationResource.exists()) { + // initialize with writable configuration + URL url = configurationResource.getURL(); + XMLConfiguration writableConfiguration = new XMLConfiguration(url); + configuration = new CompositeConfiguration(writableConfiguration); + log.info("Initialized with configuration from '{}'.", url); + } else if (failOnMissingResource) { + StringBuilder message = new StringBuilder(); + message.append("ConfigurationResource '"); + message.append(configurationResource.getDescription()); + message.append("' does not exist!"); + log.error(message.toString()); + throw new MoccaConfigurationException(message.toString()); + } + } + + if (configuration == null) { // initialize default configuration log.warn("Initializing with default configuration."); configuration = new CompositeConfiguration(); - } else { - // initialize with writable configuration - URL url = configurationResource.getURL(); - XMLConfiguration writableConfiguration = new XMLConfiguration(url); - configuration = new CompositeConfiguration(writableConfiguration); - log.info("Initialized with configuration from '{}'.", url); } + configuration.addConfiguration(getDefaultConfiguration()); configuration.addConfiguration(getVersionConfiguration()); return configuration; |