private void rebuildOptimizerCache()

in src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java [244:267]


    private void rebuildOptimizerCache() {
        log.debug("rebuildOptimizerCache");
        Map<String, List<ServiceReference<FileOptimizer>>> tempCache = new HashMap<>();
        Collection<ServiceReference<FileOptimizer>> references = null;
        try {
            references = bundleContext.getServiceReferences(FileOptimizer.class, null);
        } catch (Exception e) {
            log.error("Exception retrieving service references", e);
        }
        for (ServiceReference<FileOptimizer> ref : references) {
            Object mimeType = ref.getProperty(FileOptimizerConstants.MIME_TYPE);
            if (mimeType instanceof String[]) {
                for (String mt : (String[]) mimeType) {
                    addOptimizer(tempCache, mt, ref);
                }
            } else if (mimeType != null) {
                addOptimizer(tempCache, (String) mimeType, ref);
            }
        }
        for (List<ServiceReference<FileOptimizer>> optList : tempCache.values()) {
            Collections.sort(optList);
        }
        this.fileOptimizers = tempCache;
    }