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