in src/main/java/org/apache/sling/feature/maven/mojos/ApplyDefaultConfigMojo.java [68:108]
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;
}