Class AddonAwareMessageSource

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.context.HierarchicalMessageSource, org.springframework.context.MessageSource, org.springframework.context.ResourceLoaderAware

    public class AddonAwareMessageSource
    extends org.springframework.context.support.ReloadableResourceBundleMessageSource
    implements org.springframework.context.ApplicationContextAware
    MessageSource which can be aware of installed addons and extract message bundles from them.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.springframework.context.support.ReloadableResourceBundleMessageSource

        org.springframework.context.support.ReloadableResourceBundleMessageSource.PropertiesHolder
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.springframework.core.io.ContextResource baseAddonDir  
      protected java.util.List<java.lang.String> basenames  
      protected java.util.function.Predicate<java.lang.String> dirFilter  
      protected java.util.function.Predicate<java.lang.String> fileFilter  
      protected boolean scanForAddons  
      • Fields inherited from class org.springframework.context.support.MessageSourceSupport

        logger
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.String formatPath​(java.lang.String path, java.lang.String basePath)
      Formats absolute file path using basePath to format acceptable by @link ReloadableResourceBundleMessageSource} Basename property
      protected java.util.Collection<java.lang.String> getAddonsMessages()
      Searches for files defined by fileFilter under directories defined by dirFilter.
      org.springframework.core.io.ContextResource getBaseAddonDir()  
      java.util.function.Predicate<java.lang.String> getDirFilter()  
      java.util.function.Predicate<java.lang.String> getFileFilter()  
      boolean isScanForAddons()  
      protected java.util.Collection<java.lang.String> mapAddonLocation​(java.util.Collection<java.lang.String> addonsPath, java.lang.String basePath)
      Maps each element of addonsPath to valid message bundle path.
      void setApplicationContext​(org.springframework.context.ApplicationContext arg0)  
      void setBaseAddonDir​(org.springframework.core.io.ContextResource baseAddonDir)  
      void setBasename​(java.lang.String basename)  
      void setBasenames​(java.lang.String... basenames)  
      void setDirFilter​(java.util.function.Predicate<java.lang.String> dirFilter)  
      void setFileFilter​(java.util.function.Predicate<java.lang.String> fileFilter)  
      void setScanForAddons​(boolean scanForAddons)  
      void setupAddonMessages()
      Searches for messages in installed addons and adds them to basenames
      protected boolean validateFilename​(java.lang.String path)  
      protected boolean validatePath​(java.lang.String path)  
      • Methods inherited from class org.springframework.context.support.ReloadableResourceBundleMessageSource

        calculateAllFilenames, calculateFilenamesForLocale, clearCache, clearCacheIncludingAncestors, getMergedProperties, getProperties, loadProperties, newProperties, refreshProperties, resolveCode, resolveCodeWithoutArguments, setConcurrentRefresh, setFileEncodings, setPropertiesPersister, setResourceLoader, toString
      • Methods inherited from class org.springframework.context.support.AbstractResourceBasedMessageSource

        addBasenames, getBasenameSet, getCacheMillis, getDefaultEncoding, getDefaultLocale, isFallbackToSystemLocale, setCacheMillis, setCacheSeconds, setDefaultEncoding, setDefaultLocale, setFallbackToSystemLocale
      • Methods inherited from class org.springframework.context.support.AbstractMessageSource

        getCommonMessages, getDefaultMessage, getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getMessageInternal, getParentMessageSource, isUseCodeAsDefaultMessage, resolveArguments, setCommonMessages, setParentMessageSource, setUseCodeAsDefaultMessage
      • Methods inherited from class org.springframework.context.support.MessageSourceSupport

        createMessageFormat, formatMessage, isAlwaysUseMessageFormat, renderDefaultMessage, setAlwaysUseMessageFormat
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • scanForAddons

        protected boolean scanForAddons
      • baseAddonDir

        protected org.springframework.core.io.ContextResource baseAddonDir
      • fileFilter

        protected java.util.function.Predicate<java.lang.String> fileFilter
      • dirFilter

        protected java.util.function.Predicate<java.lang.String> dirFilter
      • basenames

        protected java.util.List<java.lang.String> basenames
    • Constructor Detail

      • AddonAwareMessageSource

        public AddonAwareMessageSource()
    • Method Detail

      • setupAddonMessages

        @PostConstruct
        public void setupAddonMessages()
        Searches for messages in installed addons and adds them to basenames
      • getAddonsMessages

        protected java.util.Collection<java.lang.String> getAddonsMessages()
                                                                    throws java.io.IOException
        Searches for files defined by fileFilter under directories defined by dirFilter.
        Returns:
        Collection of paths to message bundle files
        Throws:
        java.io.IOException
      • validatePath

        protected boolean validatePath​(java.lang.String path)
      • validateFilename

        protected boolean validateFilename​(java.lang.String path)
      • mapAddonLocation

        protected java.util.Collection<java.lang.String> mapAddonLocation​(java.util.Collection<java.lang.String> addonsPath,
                                                                          java.lang.String basePath)
        Maps each element of addonsPath to valid message bundle path. Result collection is also filtered to remove empty, invalid and duplicated entries.
        Parameters:
        addonsPath - paths to transform
        basePath - from where result path should start
        Returns:
        collection of paths to message bundles
      • formatPath

        protected java.lang.String formatPath​(java.lang.String path,
                                              java.lang.String basePath)
        Formats absolute file path using basePath to format acceptable by @link ReloadableResourceBundleMessageSource} Basename property
      • setBasename

        public void setBasename​(java.lang.String basename)
        Overrides:
        setBasename in class org.springframework.context.support.AbstractResourceBasedMessageSource
      • setBasenames

        public void setBasenames​(java.lang.String... basenames)
        Overrides:
        setBasenames in class org.springframework.context.support.AbstractResourceBasedMessageSource
      • isScanForAddons

        public boolean isScanForAddons()
        Returns:
        the scanForAddons
      • setScanForAddons

        public void setScanForAddons​(boolean scanForAddons)
        Parameters:
        scanForAddons - the scanForAddons to set
      • getBaseAddonDir

        public org.springframework.core.io.ContextResource getBaseAddonDir()
        Returns:
        the baseAddonDir
      • setBaseAddonDir

        public void setBaseAddonDir​(org.springframework.core.io.ContextResource baseAddonDir)
        Parameters:
        baseAddonDir - the baseAddonDir to set
      • getFileFilter

        public java.util.function.Predicate<java.lang.String> getFileFilter()
        Returns:
        the fileFilter
      • setFileFilter

        public void setFileFilter​(java.util.function.Predicate<java.lang.String> fileFilter)
        Parameters:
        fileFilter - the fileFilter to set
      • getDirFilter

        public java.util.function.Predicate<java.lang.String> getDirFilter()
        Returns:
        the dirFilter
      • setDirFilter

        public void setDirFilter​(java.util.function.Predicate<java.lang.String> dirFilter)
        Parameters:
        dirFilter - the dirFilter to set
      • setApplicationContext

        public void setApplicationContext​(org.springframework.context.ApplicationContext arg0)
        Specified by:
        setApplicationContext in interface org.springframework.context.ApplicationContextAware