public void initialize()

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


    public void initialize( )
        throws RegistryException
    {
        try
        {
            CombinedConfiguration configuration;
            if ( StringUtils.isNotBlank( combinedConfigurationDefinition ) )
            {
                String interpolatedProps;
                Parameters params = new Parameters( );
                DefaultExpressionEngineSymbols symbols = new DefaultExpressionEngineSymbols.Builder( DefaultExpressionEngineSymbols.DEFAULT_SYMBOLS )
                    .setPropertyDelimiter( propertyDelimiter )
                    .setIndexStart( "(" )
                    .setIndexEnd( ")" )
                    .setEscapedDelimiter( "\\" + propertyDelimiter )
                    .create( );
                DefaultExpressionEngine expressionEngine = new DefaultExpressionEngine( symbols );

                // It allows to use system properties in the XML declaration.

                ConfigurationInterpolator interpolator = ConfigurationInterpolator.fromSpecification( new InterpolatorSpecification.Builder( ).withDefaultLookup( DefaultLookups.SYSTEM_PROPERTIES.getLookup( ) ).create( ) );
                interpolatedProps = interpolator.interpolate( combinedConfigurationDefinition ).toString( );
                logger.debug( "Loading configuration into commons-configuration, xml {}", interpolatedProps );
                // This is the builder configuration for the XML declaration, that contains the definition
                // for the sources that are used for the CombinedConfiguration.
                FileSystem fs = new StringFileSystem( interpolatedProps );
                FileBasedConfigurationBuilder<XMLConfiguration> cfgBuilder =
                    new FileBasedConfigurationBuilder<>(
                        XMLConfiguration.class )
                        .configure( params.xml( )
                            .setFileSystem( fs )
                            .setFileName( "config.xml" )
                            .setListDelimiterHandler(
                                new DefaultListDelimiterHandler( ',' ) )
                            .setExpressionEngine( expressionEngine )
                            .setThrowExceptionOnMissing( false ) );

                CombinedConfigurationBuilder builder = new CombinedConfigurationBuilder( ).
                    configure( params.combined( ).setDefinitionBuilder( cfgBuilder ) );
                // The builder is needed later for saving of the file parts in the combined configuration.
                this.configurationBuilder = builder;
                configuration = builder.getConfiguration( );


            }
            else
            {
                logger.debug( "Creating a default configuration - no configuration was provided" );
                NodeCombiner combiner = new UnionCombiner( );
                configuration = new CombinedConfiguration( combiner );
                this.configurationBuilder = null;
            }

            // In the end, we add the system properties to the combined configuration
            if ( addSystemProperties )
            {
                configuration.addConfiguration( new SystemConfiguration( ), "SystemProperties" );
            }

            this.configuration = configuration;
        }
        catch ( ConfigurationException e )
        {
            logger.error( "Fatal error, while reading the configuration definition: " + e.getMessage( ) );
            logger.error( "The definition was:" );
            logger.error( combinedConfigurationDefinition );
            throw new RegistryException( e.getMessage( ), e );
        }
    }