in src/main/java/org/apache/sling/scripting/core/impl/ScriptCacheImpl.java [218:251]
private void configureCache() {
writeLock.lock();
try {
if (active) {
if (resourceChangeListener != null) {
resourceChangeListener.unregister();
resourceChangeListener = null;
}
internalMap.clear();
if (additionalExtensions != null) {
extensions.addAll(Arrays.asList(additionalExtensions));
}
if (!extensions.isEmpty()) {
Set<String> globPatterns = new HashSet<>(extensions.size());
for (String extension : extensions) {
globPatterns.add("glob:**/*." + extension);
}
Dictionary<String, Object> resourceChangeListenerProperties = new Hashtable<>(); // NOSONAR
resourceChangeListenerProperties
.put(ResourceChangeListener.PATHS, globPatterns.toArray(new String[globPatterns.size()]));
resourceChangeListenerProperties.put(ResourceChangeListener.CHANGES,
new String[]{ResourceChange.ChangeType.CHANGED.name(), ResourceChange.ChangeType.REMOVED.name()});
resourceChangeListener =
bundleContext.registerService(
ResourceChangeListener.class,
this,
resourceChangeListenerProperties
);
}
}
} finally {
writeLock.unlock();
}
}