org.apache.commons.discovery.tools
Class ManagedProperties

java.lang.Object
  extended by org.apache.commons.discovery.tools.ManagedProperties

public class ManagedProperties
extends Object

This class may disappear in the future, or be moved to another project..

Extend the concept of System properties to a hierarchical scheme based around class loaders. System properties are global in nature, so using them easily violates sound architectural and design principles for maintaining separation between components and runtime environments. Nevertheless, there is a need for properties broader in scope than class or class instance scope.

This class is one solution.

Manage properties according to a secure scheme similar to that used by classloaders:

This is not a perfect solution, as it is possible that different ClassLoaders load different instances of ScopedProperties. The 'higher' this class is loaded within the ClassLoader hierarchy, the more usefull it will be.


Constructor Summary
ManagedProperties()
           
 
Method Summary
static Properties getProperties()
          This is an expensive operation.
static String getProperty(ClassLoader classLoader, String propertyName)
          Get value for property bound to the class loader.
static String getProperty(ClassLoader classLoader, String propertyName, String dephault)
          Get value for property bound to the class loader.
static String getProperty(String propertyName)
          Get value for property bound to the current thread context class loader.
static String getProperty(String propertyName, String dephault)
          Get value for property bound to the current thread context class loader.
static Enumeration<String> propertyNames()
          Return list of all property names.
static void setLog(org.apache.commons.logging.Log _log)
          Deprecated. This method is not thread-safe
static void setProperties(Map<?,?> newProperties)
          Set property values for Properties bound to the current thread context class loader.
static void setProperties(Map<?,?> newProperties, boolean isDefault)
          Set property values for Properties bound to the current thread context class loader.
static void setProperty(String propertyName, String value)
          Set value for property bound to the current thread context class loader.
static void setProperty(String propertyName, String value, boolean isDefault)
          Set value for property bound to the current thread context class loader.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ManagedProperties

public ManagedProperties()
Method Detail

setLog

@Deprecated
public static void setLog(org.apache.commons.logging.Log _log)
Deprecated. This method is not thread-safe

Sets the Log for this class.

Parameters:
_log - This class Log

getProperty

public static String getProperty(String propertyName)
Get value for property bound to the current thread context class loader.

Parameters:
propertyName - property name.
Returns:
property value if found, otherwise default.

getProperty

public static String getProperty(String propertyName,
                                 String dephault)
Get value for property bound to the current thread context class loader. If not found, then return default.

Parameters:
propertyName - property name.
dephault - default value.
Returns:
property value if found, otherwise default.

getProperty

public static String getProperty(ClassLoader classLoader,
                                 String propertyName)
Get value for property bound to the class loader.

Parameters:
classLoader - The classloader used to load resources.
propertyName - property name.
Returns:
property value if found, otherwise default.

getProperty

public static String getProperty(ClassLoader classLoader,
                                 String propertyName,
                                 String dephault)
Get value for property bound to the class loader. If not found, then return default.

Parameters:
classLoader - The classloader used to load resources.
propertyName - property name.
dephault - default value.
Returns:
property value if found, otherwise default.

setProperty

public static void setProperty(String propertyName,
                               String value)
Set value for property bound to the current thread context class loader.

Parameters:
propertyName - property name
value - property value (non-default) If null, remove the property.

setProperty

public static void setProperty(String propertyName,
                               String value,
                               boolean isDefault)
Set value for property bound to the current thread context class loader.

Parameters:
propertyName - property name
value - property value. If null, remove the property.
isDefault - determines if property is default or not. A non-default property cannot be overriden. A default property can be overriden by a property (default or non-default) of the same name bound to a decendent class loader.

setProperties

public static void setProperties(Map<?,?> newProperties)
Set property values for Properties bound to the current thread context class loader.

Parameters:
newProperties - name/value pairs to be bound

setProperties

public static void setProperties(Map<?,?> newProperties,
                                 boolean isDefault)
Set property values for Properties bound to the current thread context class loader.

Parameters:
newProperties - name/value pairs to be bound
isDefault - determines if properties are default or not. A non-default property cannot be overriden. A default property can be overriden by a property (default or non-default) of the same name bound to a decendent class loader.

propertyNames

public static Enumeration<String> propertyNames()
Return list of all property names. This is an expensive operation: ON EACH CALL it walks through all property lists associated with the current context class loader upto and including the bootstrap class loader.

Returns:
The list of all property names

getProperties

public static Properties getProperties()
This is an expensive operation. ON EACH CALL it walks through all property lists associated with the current context class loader upto and including the bootstrap class loader.

Returns:
Returns a java.util.Properties instance that is equivalent to the current state of the scoped properties, in that getProperty() will return the same value. However, this is a copy, so setProperty on the returned value will not effect the scoped properties.


Copyright © 2002-2011 The Apache Software Foundation. All Rights Reserved.