in src/main/java/org/apache/sling/jcr/packageinit/impl/ExecutionPlanRepoInitializer.java [86:116]
private void activate(BundleContext context, Config config) throws FileNotFoundException, IOException {
List<String> epCandidates = Arrays.asList(config.executionplans());
if (!epCandidates.isEmpty()) {
if (StringUtils.isEmpty(config.statusfilepath())) {
// if no path is configured lookup default file in bundledata
statusFile = context.getDataFile(EXECUTEDPLANS_FILE);
} else {
Path statusFilePath = Paths.get(config.statusfilepath());
if (statusFilePath.isAbsolute()) {
// only absolute references are considered for lookup of
// external statusfile
statusFile = statusFilePath.toFile();
} else {
throw new IllegalStateException("Only absolute paths supported");
}
}
if (statusFile.exists()) {
// in case statusFile already exists read all hashes
Set<Integer> executedHashes = new HashSet<>();
try (BufferedReader br = new BufferedReader(new FileReader(statusFile))) {
for (String line; (line = br.readLine()) != null;) {
executedHashes.add(Integer.parseInt(line));
}
}
this.executionPlans.addAll(filterCandidates(epCandidates, executedHashes));
} else {
this.executionPlans.addAll(epCandidates);
}
}
this.context = context;
}