private void configureCache()

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();
        }
    }