org.springframework.beans.factory.config
Class PreferencesPlaceholderConfigurer

java.lang.Object
  extended by org.springframework.core.io.support.PropertiesLoaderSupport
      extended by org.springframework.beans.factory.config.PropertyResourceConfigurer
          extended by org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
              extended by org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer
All Implemented Interfaces:
BeanFactoryAware, BeanNameAware, BeanFactoryPostProcessor, InitializingBean, Ordered, PriorityOrdered

public class PreferencesPlaceholderConfigurer
extends PropertyPlaceholderConfigurer
implements InitializingBean

Subclass of PropertyPlaceholderConfigurer that supports JDK 1.4's Preferences API (java.util.prefs).

Tries to resolve placeholders as keys first in the user preferences, then in the system preferences, then in this configurer's properties. Thus, behaves like PropertyPlaceholderConfigurer if no corresponding preferences defined.

Supports custom paths for the system and user preferences trees. Also supports custom paths specified in placeholders ("myPath/myPlaceholderKey"). Uses the respective root node if not specified.

Since:
16.02.2004
Author:
Juergen Hoeller
See Also:
setSystemTreePath(java.lang.String), setUserTreePath(java.lang.String), Preferences

Field Summary
 
Fields inherited from class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
DEFAULT_PLACEHOLDER_PREFIX, DEFAULT_PLACEHOLDER_SUFFIX, DEFAULT_VALUE_SEPARATOR, SYSTEM_PROPERTIES_MODE_FALLBACK, SYSTEM_PROPERTIES_MODE_NEVER, SYSTEM_PROPERTIES_MODE_OVERRIDE
 
Fields inherited from class org.springframework.core.io.support.PropertiesLoaderSupport
logger, XML_FILE_EXTENSION
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
PreferencesPlaceholderConfigurer()
           
 
Method Summary
 void afterPropertiesSet()
          This implementation eagerly fetches the Preferences instances for the required system and user tree nodes.
protected  String resolvePlaceholder(String placeholder, Properties props)
          This implementation tries to resolve placeholders as keys first in the user preferences, then in the system preferences, then in the passed-in properties.
protected  String resolvePlaceholder(String path, String key, Preferences preferences)
          Resolve the given path and key against the given Preferences.
 void setSystemTreePath(String systemTreePath)
          Set the path in the system preferences tree to use for resolving placeholders.
 void setUserTreePath(String userTreePath)
          Set the path in the system preferences tree to use for resolving placeholders.
 
Methods inherited from class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
parseStringValue, processProperties, resolvePlaceholder, resolveSystemProperty, setBeanFactory, setBeanName, setIgnoreUnresolvablePlaceholders, setNullValue, setPlaceholderPrefix, setPlaceholderSuffix, setSearchSystemEnvironment, setSystemPropertiesMode, setSystemPropertiesModeName
 
Methods inherited from class org.springframework.beans.factory.config.PropertyResourceConfigurer
convertProperties, 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 Detail

PreferencesPlaceholderConfigurer

public PreferencesPlaceholderConfigurer()
Method Detail

setSystemTreePath

public void setSystemTreePath(String systemTreePath)
Set the path in the system preferences tree to use for resolving placeholders. Default is the root node.


setUserTreePath

public void setUserTreePath(String userTreePath)
Set the path in the system preferences tree to use for resolving placeholders. Default is the root node.


afterPropertiesSet

public void afterPropertiesSet()
This implementation eagerly fetches the Preferences instances for the required system and user tree nodes.

Specified by:
afterPropertiesSet in interface InitializingBean

resolvePlaceholder

protected String resolvePlaceholder(String placeholder,
                                    Properties props)
This implementation tries to resolve placeholders as keys first in the user preferences, then in the system preferences, then in the passed-in properties.

Overrides:
resolvePlaceholder in class PropertyPlaceholderConfigurer
Parameters:
placeholder - the placeholder to resolve
props - the merged properties of this configurer
Returns:
the resolved value, of null if none
See Also:
PropertyPlaceholderConfigurer.setSystemPropertiesMode(int)

resolvePlaceholder

protected String resolvePlaceholder(String path,
                                    String key,
                                    Preferences preferences)
Resolve the given path and key against the given Preferences.

Parameters:
path - the preferences path (placeholder part before '/')
key - the preferences key (placeholder part after '/')
preferences - the Preferences to resolve against
Returns:
the value for the placeholder, or null if none found