@Override public void start(Cache cache) { for (Iterator iter = repositories.iterator(); iter.hasNext();) { final String repository = (String) iter.next(); if (ContentRepository.getRepositoryMapping(repository) != null) { final CacheCleaner cacheCleaner = new CacheCleaner(cache, repository); final EventListener listener = ObservationUtil.instanciateDeferredEventListener(cacheCleaner, 5000, 30000); try { ObservationUtil.registerChangeListener(repository, "/", listener); } catch (Exception e) { log.warn("Failed to register cache flushing observation for repository {} due to {}", repository, e.getMessage()); log.warn("Publishing any content to {} will not result in update of the cache. Please flush the cache manually."); } registeredListeners.put(repository, listener); } } }
/** * Get default workspace name. * * @return default name if there are no workspaces defined or there is no workspace present with name "default", otherwise return same name as repository name. */ public static String getDefaultWorkspace(String repositoryId) { RepositoryDefinition mapping = getRepositoryMapping(repositoryId); if (mapping == null) { return DEFAULT_WORKSPACE; } Collection<String> workspaces = mapping.getWorkspaces(); if (workspaces.contains(getMappedWorkspaceName(repositoryId))) { return repositoryId; } return DEFAULT_WORKSPACE; }