in redback-common/redback-common-configuration/redback-common-configuration-acc2/src/main/java/org/apache/archiva/redback/common/config/acc2/CommonsConfigurationRegistry.java [488:545]
public void addConfigurationFromFile( String name, Path file, String prefix )
throws RegistryException
{
if ( this.configuration instanceof CombinedConfiguration )
{
String atPrefix = StringUtils.isEmpty( prefix ) ? null : prefix;
CombinedConfiguration configuration = (CombinedConfiguration) this.configuration;
String fileName = file.getFileName( ).toString( );
if ( fileName.endsWith( ".properties" ) )
{
try
{
logger.debug( "Loading properties configuration from file: {}", file );
FileBasedConfigurationBuilder<PropertiesConfiguration> builder = new FileBasedConfigurationBuilder<>( PropertiesConfiguration.class )
.configure( new Parameters( ).properties( )
.setFileSystem( FileLocatorUtils.DEFAULT_FILE_SYSTEM )
.setLocationStrategy( FileLocatorUtils.DEFAULT_LOCATION_STRATEGY )
.setFile( file.toFile( ) ) );
// builder is needed for save
builderMap.put( name, builder );
configuration.addConfiguration( builder.getConfiguration( ), name, atPrefix );
}
catch ( ConfigurationException e )
{
throw new RegistryException(
"Unable to add configuration from file '" + file.getFileName( ) + "': " + e.getMessage( ), e );
}
}
else if ( fileName.endsWith( ".xml" ) )
{
try
{
logger.debug( "Loading XML configuration from file: {}", file );
FileBasedConfigurationBuilder<XMLConfiguration> builder = new FileBasedConfigurationBuilder<>( XMLConfiguration.class )
.configure( new Parameters( ).xml( )
.setFileSystem( FileLocatorUtils.DEFAULT_FILE_SYSTEM )
.setLocationStrategy( FileLocatorUtils.DEFAULT_LOCATION_STRATEGY )
.setFile( file.toFile( ) ) );
builderMap.put( name, builder );
configuration.addConfiguration( builder.getConfiguration( ), name, atPrefix );
}
catch ( ConfigurationException e )
{
throw new RegistryException(
"Unable to add configuration from file '" + file.getFileName( ) + "': " + e.getMessage( ), e );
}
}
else
{
throw new RegistryException(
"Unable to add configuration from file '" + file.getFileName( ) + "': unrecognised type" );
}
}
else
{
throw new RegistryException( "The underlying configuration is not a combined configuration object." );
}
}