private synchronized void updateConfiguration()

in src/main/java/org/apache/sling/feature/apiregions/impl/RegionConfiguration.java [212:262]


    private synchronized void updateConfiguration() {
        final Map<Entry<String, Version>, List<String>> bvm = cloneMapOfLists(this.baseBsnVerMap);
        final Map<String, Set<String>> bfm = cloneMapOfSets(this.baseBundleFeatureMap);
        final Map<String, List<String>> frm = cloneMapOfLists(this.baseFeatureRegionMap);
        final Map<String, Set<String>> rpm = cloneMapOfSets(this.baseRegionPackageMap);

        // apply configurations
        for(final Dictionary<String, Object> props : this.factoryConfigs.values()) {
            // bundle id to bsnver
            Object valObj = props.get(RegionConstants.PROP_idbsnver);
            if ( valObj != null ) {
                for(final String val : convert(valObj)) {
                    final String[] parts = val.split("=");
                    final String n = parts[0];
                    final String[] bsnver = parts[1].split("~");
                    String bsn = bsnver[0];
                    String bver = bsnver[1];
                    addBsnVerArtifact(bvm, bsn, bver, n);
                }
            }

            // bundle id to features
            valObj = props.get(RegionConstants.PROP_bundleFeatures);
            if ( valObj != null ) {
                handleMapConfig(valObj, bfm, HashSet::new);
            }

            // feature id to regions
            valObj = props.get(RegionConstants.PROP_featureRegions);
            if ( valObj != null ) {
                handleMapConfig(valObj, frm, ArrayList::new);
            }

            // region to packages
            valObj = props.get(RegionConstants.PROP_regionPackage);
            if ( valObj != null ) {
                handleMapConfig(valObj, rpm, HashSet::new);
            }
        }

        // join regions
        if (this.toGlobalConfig != null) {
            joinRegionsWithGlobal(this.toGlobalConfig, rpm);
        }

        // Make all maps and their contents unmodifiable
        bsnVerMap = unmodifiableMapToList(bvm);
        bundleFeatureMap = unmodifiableMapToSet(bfm);
        featureRegionMap = unmodifiableMapToList(frm);
        regionPackageMap = unmodifiableMapToSet(rpm);
    }