Class CacheConfigParser


  • public class CacheConfigParser
    extends Object
    Utility class for parsing v2 cache configuration.
    • Field Detail

      • RESULT_CACHE_RESOLVER

        @Nonnull
        public static final QName RESULT_CACHE_RESOLVER
        ResultCache name.
      • RESULT_CACHE_BEAN_RESOLVER

        @Nonnull
        public static final QName RESULT_CACHE_BEAN_RESOLVER
        ResultCacheBean name.
      • DEFAULT_CACHE_ENTRIES

        public static final long DEFAULT_CACHE_ENTRIES
        Documented maximumCachedElements maximum (500). Unfortunately it has to be here since we do not own the implemented class
        See Also:
        Constant Field Values
      • DEFAULT_TTL_MS

        @Nonnull
        public static final Duration DEFAULT_TTL_MS
        Documented cache lifetime (4 hours). Unfortunately it has to be here since we do not own the implemented class.
      • log

        @Nonnull
        private final org.slf4j.Logger log
        Class logger.
      • configElement

        @Nonnull
        private final Element configElement
        Base XML element.
    • Constructor Detail

      • CacheConfigParser

        public CacheConfigParser​(@Nonnull
                                 Element config)
        Creates a new cache config parser with the supplied ResultsCache element.
        Parameters:
        config - LDAPDirectory element
    • Method Detail

      • createCache

        @Nonnull
        public BeanDefinition createCache​(@Nonnull
                                          ParserContext parserContext)
        Creates a new cache bean definition from a v2 XML configuration.
        Parameters:
        parserContext - bean parser context
        Returns:
        cache bean definition
      • getMaxSize

        private static long getMaxSize​(@Nullable
                                       String maximumSize)
        Helper function to return size provided with a suitable default.
        Parameters:
        maximumSize - long string
        Returns:
        the input as a long, or DEFAULT_CACHE_ENTRIES
      • getTimeToLive

        @Nonnull
        private static Duration getTimeToLive​(@Nullable
                                              String timeToLive)
        Helper function to return the TTL with a suitable default.
        Parameters:
        timeToLive - duration string
        Returns:
        the input as a long, or DEFAULT_TTL_MS
      • buildCacheAccess

        @Nullable
        public static Cache<String,​Map<String,​IdPAttribute>> buildCacheAccess​(@Nullable
                                                                                          String timeToLive,
                                                                                          @Nullable
                                                                                          String maximumSize)
        Factory method to leverage spring property replacement functionality. The default settings are a max size of DEFAULT_CACHE_ENTRIES and an expiration time DEFAULT_TTL_MS. The Cache is set to reset the timer on Access
        Parameters:
        timeToLive - duration string
        maximumSize - long string
        Returns:
        cache
      • buildCacheWrite

        @Nullable
        public static Cache<String,​Map<String,​IdPAttribute>> buildCacheWrite​(@Nullable
                                                                                         String timeToLive,
                                                                                         @Nullable
                                                                                         String maximumSize)
        Factory method to leverage spring property replacement functionality. The default settings are a max size of DEFAULT_CACHE_ENTRIES and an expiration time DEFAULT_TTL_MS. The Cache is set to set the timer on Populate
        Parameters:
        timeToLive - duration string
        maximumSize - long string
        Returns:
        cache
      • getBeanResultCacheID

        @Nullable
        public static String getBeanResultCacheID​(@Nonnull
                                                  Element config)
        Get the bean ID of an externally defined result cache.
        Parameters:
        config - the config element
        Returns:
        data source bean ID