public void execute()

in src/main/java/org/apache/sling/maven/bundlesupport/ValidationMojo.java [89:155]


    public void execute() throws MojoExecutionException, MojoFailureException {
        if (this.skip) {
            getLog().info("Validation is skipped.");
            return;
        }

        final Iterator<Resource> rsrcIterator = this.project.getResources().iterator();
        while (rsrcIterator.hasNext()) {
            final Resource rsrc = rsrcIterator.next();

            final File directory = new File(rsrc.getDirectory());
            if (directory.exists()) {

                if (!buildContext.hasDelta(directory)) {
                    getLog().debug("No files found to validate, skipping.");
                    return;
                }

                getLog().debug("Scanning " + rsrc.getDirectory());
                final Scanner scanner = buildContext.newScanner(directory);

                if (rsrc.getExcludes() != null && rsrc.getExcludes().size() > 0) {
                    scanner.setExcludes((String[]) rsrc.getExcludes()
                            .toArray(new String[rsrc.getExcludes().size()]));
                }
                scanner.addDefaultExcludes();
                if (rsrc.getIncludes() != null && rsrc.getIncludes().size() > 0) {
                    scanner.setIncludes((String[]) rsrc.getIncludes()
                            .toArray(new String[rsrc.getIncludes().size()]));
                }

                scanner.scan();

                final String[] files = scanner.getIncludedFiles();
                int countProcessed = 0;
                List<Exception> failures = new ArrayList<>();
                if (files != null) {
                    for (int m = 0; m < files.length; m++) {
                        final File file = new File(directory, files[m]);
                        buildContext.removeMessages(file);
                        try {
                            this.validate(file);
                        } catch (Exception ex) {
                            failures.add(ex);
                            buildContext.addMessage(
                                    file,
                                    parseLineNumber(ex.getMessage()),
                                    parseColumnNumber(ex.getMessage()),
                                    cleanupMessage(ex.getMessage()),
                                    BuildContext.SEVERITY_ERROR,
                                    ex.getCause());
                        }
                        countProcessed++;
                    }
                }

                if (!failures.isEmpty()) {
                    if (!buildContext.isIncremental()) {
                        throw new MojoFailureException(
                                "Validated " + countProcessed + " file(s), found " + failures.size() + " failures.");
                    }
                } else {
                    getLog().info("Validated " + countProcessed + " file(s).");
                }
            }
        }
    }