in src/main/java/org/apache/sling/scripting/sightly/impl/engine/compiled/SlingHTLMasterCompiler.java [121:167]
void activate() {
LOGGER.info("Activating {}", getClass().getName());
String version = System.getProperty("java.specification.version");
options = new Options();
options.put(Options.KEY_GENERATE_DEBUG_INFO, true);
options.put(Options.KEY_SOURCE_VERSION, version);
options.put(Options.KEY_TARGET_VERSION, version);
options.put(Options.KEY_CLASS_LOADER_WRITER, classLoaderWriter);
options.put(Options.KEY_FORCE_COMPILATION, true);
InputStream is;
boolean newVersion = true;
String versionInfo = null;
String newVersionString = sightlyEngineConfiguration.getEngineVersion();
try {
is = classLoaderWriter.getInputStream(SIGHTLY_CONFIG_FILE);
if (is != null) {
versionInfo = IOUtils.toString(is, StandardCharsets.UTF_8);
if (newVersionString.equals(versionInfo)) {
newVersion = false;
} else {
LOGGER.info("Detected stale classes generated by Apache Sling Scripting HTL engine version {}.", versionInfo);
}
IOUtils.closeQuietly(is);
}
} catch (IOException e) {
// do nothing; if we didn't find any previous version information we're considering our version to be new
}
if (newVersion) {
OutputStream os = classLoaderWriter.getOutputStream(SIGHTLY_CONFIG_FILE);
try {
IOUtils.write(sightlyEngineConfiguration.getEngineVersion(), os, StandardCharsets.UTF_8);
} catch (IOException e) {
// ignore
} finally {
IOUtils.closeQuietly(os);
}
String scratchFolder = sightlyEngineConfiguration.getScratchFolder();
boolean scratchFolderDeleted = classLoaderWriter.delete(scratchFolder);
if (scratchFolderDeleted && StringUtils.isNotEmpty(versionInfo)) {
LOGGER.info("Deleted stale classes generated by Apache Sling Scripting HTL engine version {}.", versionInfo);
}
}
sightlyCompiler = SightlyCompiler.withKnownExpressionOptions(sightlyEngineConfiguration.getAllowedExpressionOptions());
}