public void addConfigurationFromFile()

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." );
        }
    }