private FeatureProjectConfig()

in src/main/java/org/apache/sling/feature/maven/FeatureProjectConfig.java [103:167]


    private FeatureProjectConfig(final FeatureProjectInfo info, final boolean test) {
        this.isTest = test;
        final String featuresDirCfgName;
        final String defaultDir;
        final String skipAddDepCfgName;
        final String defaultSkipValue;
        final String incCfgName;
        final String exCfgName;
        if (test) {
            featuresDirCfgName = CFG_TEST_FEATURES;
            defaultDir = DEFAULT_TEST_FEATURE_DIR;
            this.scope = Artifact.SCOPE_TEST;
            skipAddDepCfgName = CFG_SKIP_ADD_TEST_FEATURE_DEPENDENCIES;
            incCfgName = CFG_TEST_FEATURES_INCLUDES;
            exCfgName = CFG_TEST_FEATURES_EXCLUDES;
            defaultSkipValue = "true";
            this.name = "test feature";
            this.skipAddJar =
                    "true".equals(ProjectHelper.getConfigValue(info.plugin, CFG_SKIP_ADD_JAR_TO_TEST_FEATURE, "true"));
        } else {
            featuresDirCfgName = CFG_FEATURES;
            defaultDir = DEFAULT_FEATURE_DIR;
            this.scope = Artifact.SCOPE_PROVIDED;
            skipAddDepCfgName = CFG_SKIP_ADD_FEATURE_DEPENDENCIES;
            incCfgName = CFG_FEATURES_INCLUDES;
            exCfgName = CFG_FEATURES_EXCLUDES;
            defaultSkipValue = "false";
            this.name = "feature";
            this.skipAddJar =
                    "true".equals(ProjectHelper.getConfigValue(info.plugin, CFG_SKIP_ADD_JAR_TO_FEATURE, "true"));
        }
        this.featuresDirName = ProjectHelper.getConfigValue(info.plugin, featuresDirCfgName, defaultDir);
        this.includes = ProjectHelper.getConfigValue(info.plugin, incCfgName, DEFAULT_FEATURE_INCLUDES);
        this.excludes = ProjectHelper.getConfigValue(info.plugin, exCfgName, null);
        final String skipCfg = ProjectHelper.getConfigValue(info.plugin, skipAddDepCfgName, defaultSkipValue);
        this.skipAddDep = "true".equals(skipCfg.toLowerCase());
        this.jarStartOrder = ProjectHelper.getConfigValue(info.plugin, CFG_JAR_START_ORDER, null);
        this.validate = "true".equals(ProjectHelper.getConfigValue(info.plugin, CFG_VALIDATE_FEATURES, "true"));
        this.enableProjectVariableReplacement =
                "true".equals(ProjectHelper.getConfigValue(info.plugin, CFG_ENABLE_PROJ_VARS, "true"));
        String vars = ProjectHelper.getConfigValue(info.plugin, CFG_REPLACE_PROP_VARS, null);
        if (vars == null) {
            this.replacePropertyVariables = null;
        } else {
            this.replacePropertyVariables = vars.split(",");
        }
        this.enableLegacyVariableReplacement =
                "true".equals(ProjectHelper.getConfigValue(info.plugin, CFG_LEGACY_REPLACE, "false"));

        // process metadata
        if (!test) {
            final Xpp3Dom metadataRoot = ProjectHelper.getConfig(info.plugin, CFG_DEFAULT_METADATA);
            if (metadataRoot != null) {
                for (final Xpp3Dom extension : metadataRoot.getChildren()) {
                    final String name = extension.getName();
                    final Map<String, String> map = this.defaultMetadata.computeIfAbsent(name, id -> new HashMap<>());
                    for (final Xpp3Dom key : extension.getChildren()) {
                        if (key.getValue() != null) {
                            map.put(key.getName(), key.getValue());
                        }
                    }
                }
            }
        }
    }