in src/main/java/org/apache/sling/scripting/core/impl/SlingScriptEnginePicker.java [57:76]
ScriptEngine pickScriptEngine(
@NotNull final List<ScriptEngine> scriptEngines, @NotNull Resource resource, @NotNull String extension) {
final String scriptingMapping = findScriptingMapping(resource, extension);
logger.debug("scripting mapping: {}", scriptingMapping);
if (scriptingMapping == null || scriptingMapping.isEmpty()) {
return !scriptEngines.isEmpty() ? scriptEngines.get(0) : null;
}
final Conditions conditions = parseScriptingMapping(scriptingMapping);
logger.debug("scripting conditions: {}", conditions);
for (final ScriptEngine scriptEngine : scriptEngines) {
final ScriptEngineFactory scriptEngineFactory = scriptEngine.getFactory();
if (conditions.matches(scriptEngineFactory.getLanguageName())) {
logger.debug(
"script engine {} found for conditions {}", scriptEngineFactory.getEngineName(), conditions);
return scriptEngine;
}
}
return null;
}