public void execute()

in sling-repoinit-maven-plugin/src/main/java/org/apache/sling/maven/repoinit/ValidateMojo.java [74:117]


    public void execute()
            throws MojoExecutionException {
        getLog().info("Loading scripts from: " + scriptBaseDir);
        List<File> scripts = findScripts();

        if (scripts.isEmpty()) {
            return;
        }

        LinkedHashMap<String, List<Operation>> parsedScripts = new LinkedHashMap<>();
        for (File script : scripts) {
            getLog().debug("Parsing script: " + script.getAbsolutePath());
            parsedScripts.put(script.getAbsolutePath(), parseScript(script));
        }
        getLog().info("All scripts parsed successfully!");

        getLog().info("Setting up Sling context...");
        try (ValidatorContext context = new ValidatorContext()) {
            Session session = Optional.ofNullable(context.resourceResolver().adaptTo(Session.class))
                    .orElseThrow(() -> new MojoExecutionException("Failed to get Session from Sling Context"));

            if (nodeDefinitions != null && !nodeDefinitions.isEmpty()) {
                getLog().info("Loading nodetypes");
                loadNodeDefinitions(nodeDefinitions, session);
            }

            if (contentFolders != null && !contentFolders.isEmpty()) {
                getLog().info("Loading initial content");
                loadInitialContent(contentFolders, context);
            }

            JcrRepoInitOpsProcessor processor = new JcrRepoInitOpsProcessorImpl();
            for (Entry<String, List<Operation>> parsed : parsedScripts.entrySet()) {
                getLog().info("Executing script: " + parsed.getKey());
                try {
                    processor.apply(session, parsed.getValue());
                } catch (Exception e) {
                    throw new MojoExecutionException("Failed to execute script: " + parsed.getKey()
                            + ", Exception: " + e.toString(), e);
                }
            }
        } 
        getLog().info("All scripts executed successfully!");
    }