private ConfigurationApi getDefaultConfigurationApi()

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