Class BeanLevelPropertyPlaceholderConfigurer

java.lang.Object
org.springframework.core.io.support.PropertiesLoaderSupport
org.springframework.beans.factory.config.PropertyResourceConfigurer
org.springframework.beans.factory.config.PlaceholderConfigurerSupport
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
org.openspaces.core.properties.BeanLevelPropertyPlaceholderConfigurer
All Implemented Interfaces:
ClusterInfoAware, BeanLevelPropertiesAware, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.config.BeanFactoryPostProcessor, org.springframework.core.Ordered, org.springframework.core.PriorityOrdered

public class BeanLevelPropertyPlaceholderConfigurer extends org.springframework.beans.factory.config.PropertyPlaceholderConfigurer implements org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.BeanFactoryAware, BeanLevelPropertiesAware, ClusterInfoAware
An extension on top of Spring PropertyPlaceholderConfigurer that works with BeanLevelProperties in order to inject bean level properties.

${..} notations are used to lookup bean level properties with the properties obtained based on the bean name using BeanLevelProperties.getMergedBeanProperties(String).

Author:
kimchy
  • Field Summary

    Fields inherited from class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

    SYSTEM_PROPERTIES_MODE_FALLBACK, SYSTEM_PROPERTIES_MODE_NEVER, SYSTEM_PROPERTIES_MODE_OVERRIDE

    Fields inherited from class org.springframework.beans.factory.config.PlaceholderConfigurerSupport

    DEFAULT_ESCAPE_CHARACTER, DEFAULT_PLACEHOLDER_PREFIX, DEFAULT_PLACEHOLDER_SUFFIX, DEFAULT_VALUE_SEPARATOR, escapeCharacter, ignoreUnresolvablePlaceholders, nullValue, placeholderPrefix, placeholderSuffix, trimValues, valueSeparator

    Fields inherited from class org.springframework.core.io.support.PropertiesLoaderSupport

    localOverride, localProperties, logger

    Fields inherited from interface org.springframework.core.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    processProperties(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
     
    void
    setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
     
    void
    void
    setBeanName(String beanName)
     
    void
    Sets the cluster information.

    Methods inherited from class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

    resolvePlaceholder, resolvePlaceholder, resolveSystemProperty, setSearchSystemEnvironment, setSystemPropertiesMode, setSystemPropertiesModeName

    Methods inherited from class org.springframework.beans.factory.config.PlaceholderConfigurerSupport

    doProcessProperties, setEscapeCharacter, setIgnoreUnresolvablePlaceholders, setNullValue, setPlaceholderPrefix, setPlaceholderSuffix, setTrimValues, setValueSeparator

    Methods inherited from class org.springframework.beans.factory.config.PropertyResourceConfigurer

    convertProperties, convertProperty, convertPropertyValue, getOrder, postProcessBeanFactory, setOrder

    Methods inherited from class org.springframework.core.io.support.PropertiesLoaderSupport

    loadProperties, mergeProperties, setFileEncoding, setIgnoreResourceNotFound, setLocalOverride, setLocation, setLocations, setProperties, setPropertiesArray, setPropertiesPersister

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BeanLevelPropertyPlaceholderConfigurer

      public BeanLevelPropertyPlaceholderConfigurer(BeanLevelProperties beanLevelProperties)
    • BeanLevelPropertyPlaceholderConfigurer

      public BeanLevelPropertyPlaceholderConfigurer(BeanLevelProperties beanLevelProperties, ClusterInfo clusterInfo)
  • Method Details

    • setBeanLevelProperties

      public void setBeanLevelProperties(BeanLevelProperties beanLevelProperties)
      Description copied from interface: BeanLevelPropertiesAware
      Specified by:
      setBeanLevelProperties in interface BeanLevelPropertiesAware
    • setClusterInfo

      public void setClusterInfo(ClusterInfo clusterInfo)
      Description copied from interface: ClusterInfoAware
      Sets the cluster information.

      Note, the cluster information is obtained externally from the application context which means that this feature need to be supported by specific containers (and is not supported by plain Spring application context). This means that beans that implement ClusterInfoAware should take into account the fact that the cluster info provided might be null.

      Specified by:
      setClusterInfo in interface ClusterInfoAware
      Parameters:
      clusterInfo - The cluster information to be injected
    • setBeanName

      public void setBeanName(String beanName)
      Specified by:
      setBeanName in interface org.springframework.beans.factory.BeanNameAware
      Overrides:
      setBeanName in class org.springframework.beans.factory.config.PlaceholderConfigurerSupport
    • setBeanFactory

      public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
      Specified by:
      setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
      Overrides:
      setBeanFactory in class org.springframework.beans.factory.config.PlaceholderConfigurerSupport
    • processProperties

      protected void processProperties(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws org.springframework.beans.BeansException
      Overrides:
      processProperties in class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
      Throws:
      org.springframework.beans.BeansException