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());
}
}
}
}
}
}