Class DefaultApplicationCache

java.lang.Object
com.atlassian.confluence.impl.user.crowd.DefaultApplicationCache
All Implemented Interfaces:
ApplicationCache

public final class DefaultApplicationCache extends Object implements ApplicationCache
Implementation of ApplicationCache that delegates to CacheFactory for caching. The key for each entry is a lower-case version of the name and the value is an immutable copy of the Application.
  • Constructor Details

    • DefaultApplicationCache

      public DefaultApplicationCache(TransactionAwareCacheFactory cacheFactory, com.atlassian.event.api.EventPublisher eventPublisher)
      Since:
      7.5
  • Method Details

    • init

      @PostConstruct public void init()
    • directoryUpdated

      @EventListener public void directoryUpdated(com.atlassian.crowd.event.directory.DirectoryUpdatedEvent directoryUpdatedEvent)
    • getApplication

      public com.atlassian.crowd.model.application.Application getApplication(String name, ApplicationCache.Loader loader) throws com.atlassian.crowd.exception.ApplicationNotFoundException
      Description copied from interface: ApplicationCache
      Returns the cached application with the given name, or null if the application isn't cached.
      Specified by:
      getApplication in interface ApplicationCache
      Throws:
      com.atlassian.crowd.exception.ApplicationNotFoundException
      Since:
      7.5
    • unwrapOrRethrow

      public static <T extends Exception> T unwrapOrRethrow(RuntimeException ex, Class<T> expectedType)
      Look throw the causal chain until we find an exception that is of the expected type, or just rethrow the full chain if not.
    • removeApplication

      public void removeApplication(String name)
      Description copied from interface: ApplicationCache
      Removes the application with the given name from the cache. Does nothing if the name is not in the cache.
      Specified by:
      removeApplication in interface ApplicationCache
    • removeAll

      public void removeAll()
      Description copied from interface: ApplicationCache
      Removes all entries from the cache. Can be used when the cache is stale, but it's not possible to determine which applications should be removed.
      Specified by:
      removeAll in interface ApplicationCache