Class 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 Detail

      • DefaultApplicationCache

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

      • 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