private ConfigurationApi getDefaultConfigurationApi()

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