@Override
protected synchronized Configuration doGetConfiguration()
{
try
{
this.configurationSource.loadConfiguration();
boolean modified = false;
for ( SecurityConfigurationModifier modifier : configurationModifiers )
{
modified |= modifier.apply( configurationSource.getConfiguration() );
}
if ( modified )
{
configurationSource.backupConfiguration();
configurationSource.storeConfiguration();
}
return this.configurationSource.getConfiguration();
}
catch ( IOException e )
{
getLogger().error( "IOException while retrieving configuration file", e );
throw new IllegalStateException( "Cannot load configuration!", e );
}
catch ( ConfigurationException e )
{
getLogger().error( "Invalid Configuration", e );
throw new IllegalStateException( "Invalid configuration!", e );
}
}