private void selectFeatureFiles()

in src/main/java/org/apache/sling/feature/maven/mojos/AbstractIncludingFeatureMojo.java [144:179]


    private void selectFeatureFiles(
            final String include, final List<String> excludes, final Map<String, Feature> result)
            throws MojoExecutionException {
        final Map<String, Feature> projectFeatures = ProjectHelper.getAssembledFeatures(this.project);

        final String prefix =
                this.features.toPath().normalize().toFile().getAbsolutePath().concat(File.separator);
        final FeatureScanner scanner = new FeatureScanner(projectFeatures, prefix);
        if (!excludes.isEmpty()) {
            scanner.setExcludes(excludes.toArray(new String[excludes.size()]));
        }
        scanner.setIncludes(new String[] {include});
        scanner.scan();

        if (!include.contains("*") && scanner.getIncluded().isEmpty()) {
            throw new MojoExecutionException("FeatureInclude " + include + " not found.");
        }
        for (Map.Entry<String, Feature> entry : scanner.getIncluded().entrySet()) {
            if (!result.containsKey(entry.getKey())) {
                result.put(entry.getKey(), entry.getValue());
            }
        }

        if (!excludes.isEmpty()) {
            for (final String exclude : excludes) {
                if (!exclude.contains("*")) {
                    final FeatureScanner excludeScanner = new FeatureScanner(projectFeatures, prefix);
                    excludeScanner.setIncludes(new String[] {exclude});
                    excludeScanner.scan();
                    if (excludeScanner.getIncluded().isEmpty()) {
                        throw new MojoExecutionException("FeatureExclude " + exclude + " not found.");
                    }
                }
            }
        }
    }