public void addConfigurationFromResource()

in redback-common/redback-common-configuration/redback-common-configuration-acc2/src/main/java/org/apache/archiva/redback/common/config/acc2/CommonsConfigurationRegistry.java [426:479]


    public void addConfigurationFromResource( String name, String resource, String prefix )
        throws RegistryException
    {
        if ( configuration instanceof CombinedConfiguration )
        {
            String atPrefix = StringUtils.isEmpty( prefix ) ? null : prefix;
            CombinedConfiguration configuration = (CombinedConfiguration) this.configuration;
            if ( resource.endsWith( ".properties" ) )
            {
                try
                {
                    logger.debug( "Loading properties configuration from classloader resource: {}", resource );
                    FileBasedConfigurationBuilder<PropertiesConfiguration> builder = new FileBasedConfigurationBuilder<>( PropertiesConfiguration.class )
                        .configure( new Parameters( ).properties( )
                            .setLocationStrategy( new ClasspathLocationStrategy( ) )
                            .setFileName( resource ) );
                    builderMap.put( name, builder );
                    configuration.addConfiguration( builder.getConfiguration( ), name, atPrefix );
                }
                catch ( ConfigurationException e )
                {
                    throw new RegistryException(
                        "Unable to add configuration from resource '" + resource + "': " + e.getMessage( ), e );
                }
            }
            else if ( resource.endsWith( ".xml" ) )
            {
                try
                {
                    logger.debug( "Loading XML configuration from classloader resource: {}", resource );
                    FileBasedConfigurationBuilder<XMLConfiguration> builder = new FileBasedConfigurationBuilder<>( XMLConfiguration.class )
                        .configure( new Parameters( ).xml( )
                            .setLocationStrategy( new ClasspathLocationStrategy( ) )
                            .setFileName( resource ) );
                    builderMap.put( name, builder );
                    configuration.addConfiguration( builder.getConfiguration( ), name, atPrefix );
                }
                catch ( ConfigurationException e )
                {
                    throw new RegistryException(
                        "Unable to add configuration from resource '" + resource + "': " + e.getMessage( ), e );
                }
            }
            else
            {
                throw new RegistryException(
                    "Unable to add configuration from resource '" + resource + "': unrecognised type" );
            }
        }
        else
        {
            throw new RegistryException( "The underlying configuration object is not a combined configuration " );
        }
    }