public void execute()

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


    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).");
                }
            }
        }
    }