in src/main/java/org/apache/sling/feature/maven/mojos/ApplyDefaultConfigMojo.java [68:114]
private ConfigurationApi getDefaultConfigurationApi() throws MojoExecutionException {
if (this.configurationApiClassifier != null && this.configurationApiDependency != null) {
throw new MojoExecutionException(
"Only one of configurationApiDependency or configurationApiClassifier can be specified, but not both.");
}
ConfigurationApi defaultApi = null;
if (this.configurationApiClassifier != null) {
final Map<String, Feature> projectFeatures = ProjectHelper.getAssembledFeatures(this.project);
for (final Feature f : projectFeatures.values()) {
if (this.configurationApiClassifier.equals(f.getId().getClassifier())) {
defaultApi = ConfigurationApi.getConfigurationApi(f);
if (defaultApi == null) {
throw new MojoExecutionException("Specified feature with classifier "
+ this.configurationApiClassifier + " does not contain configuration api");
}
break;
}
}
if (defaultApi == null) {
throw new MojoExecutionException("Specified feature with classifier + "
+ this.configurationApiClassifier + " does not exist in project.");
}
} else if (this.configurationApiDependency != null) {
final ArtifactId depId = ProjectHelper.toArtifactId(this.configurationApiDependency);
if (ProjectHelper.isLocalProjectArtifact(this.project, depId)) {
throw new MojoExecutionException(
"configurationApiDependency configuration is used to select a local feature: "
+ depId.toMvnId());
}
final Feature f = ProjectHelper.getOrResolveFeature(
this.project, this.mavenSession, this.artifactHandlerManager, this.repoSystem, depId);
defaultApi = ConfigurationApi.getConfigurationApi(f);
if (defaultApi == null) {
throw new MojoExecutionException(
"Specified feature " + depId.toMvnId() + " does not contain configuration api");
}
}
if (defaultApi != null) {
getLog().info("Using configured configuration-api from "
+ (this.configurationApiClassifier != null
? "classifier " + this.configurationApiClassifier
: " dependency " + ProjectHelper.toString(this.configurationApiDependency)));
}
return defaultApi;
}