| java.lang.Object org.apache.commons.discovery.tools.ManagedProperties
ManagedProperties | public class ManagedProperties (Code) | | 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:
ClassLoader s are organized in a tree hierarchy.
- each
ClassLoader has a reference
to a parent ClassLoader .
- the root of the tree is the bootstrap
ClassLoader er.
- the youngest decendent is the thread context class loader.
- properties are bound to a
ClassLoader instance
- non-default properties bound to a parent
ClassLoader
instance take precedence over all properties of the same name bound
to any decendent.
Just to confuse the issue, this is the default case.
- default properties bound to a parent
ClassLoader
instance may be overriden by (default or non-default) properties of
the same name bound to any decendent.
- System properties take precedence over all other properties
This is not a perfect solution, as it is possible that
different ClassLoader s load different instances of
ScopedProperties . The 'higher' this class is loaded
within the ClassLoader hierarchy, the more usefull
it will be.
author: Richard A. Sitze |
Method Summary | |
public static Properties | getProperties() This is an expensive operation. | public static String | getProperty(String propertyName) Get value for property bound to the current thread context class loader.
Parameters: propertyName - property name. | 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. Parameters: dephault - default value. | public static String | getProperty(ClassLoader classLoader, String propertyName) Get value for property bound to the class loader.
Parameters: classLoader - Parameters: propertyName - property name. | 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 - Parameters: propertyName - property name. Parameters: dephault - default value. | public static Enumeration | propertyNames() Return list of all property names. | public static void | setLog(Log _log) | public static void | setProperties(Map newProperties) Set property values for Properties bound to the
current thread context class loader. | public static void | setProperties(Map newProperties, boolean isDefault) Set property values for Properties bound to the
current thread context class loader. | public static void | setProperty(String propertyName, String value) Set value for property bound to the current thread context class loader. | 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 Parameters: value - property value. |
getProperties | public static Properties getProperties()(Code) | | 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 a java.util.Properties instancethat is equivalent to the current state of the scopedproperties, in that getProperty() will return the same value.However, this is a copy, so setProperty on thereturned value will not effect the scoped properties. |
getProperty | public static String getProperty(String propertyName)(Code) | | Get value for property bound to the current thread context class loader.
Parameters: propertyName - property name. property value if found, otherwise default. |
getProperty | public static String getProperty(String propertyName, String dephault)(Code) | | Get value for property bound to the current thread context class loader.
If not found, then return default.
Parameters: propertyName - property name. Parameters: dephault - default value. property value if found, otherwise default. |
getProperty | public static String getProperty(ClassLoader classLoader, String propertyName)(Code) | | Get value for property bound to the class loader.
Parameters: classLoader - Parameters: propertyName - property name. property value if found, otherwise default. |
getProperty | public static String getProperty(ClassLoader classLoader, String propertyName, String dephault)(Code) | | Get value for property bound to the class loader.
If not found, then return default.
Parameters: classLoader - Parameters: propertyName - property name. Parameters: dephault - default value. property value if found, otherwise default. |
propertyNames | public static Enumeration propertyNames()(Code) | | 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.
|
setLog | public static void setLog(Log _log)(Code) | | |
setProperties | public static void setProperties(Map newProperties)(Code) | | 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)(Code) | | Set property values for Properties bound to the
current thread context class loader.
Parameters: newProperties - name/value pairs to be bound Parameters: 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 toa decendent class loader. |
setProperty | public static void setProperty(String propertyName, String value)(Code) | | Set value for property bound to the current thread context class loader.
Parameters: propertyName - property name Parameters: value - property value (non-default) If null, remove the property. |
setProperty | public static void setProperty(String propertyName, String value, boolean isDefault)(Code) | | Set value for property bound to the current thread context class loader.
Parameters: propertyName - property name Parameters: value - property value. If null, remove the property. Parameters: 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 toa decendent class loader. |
|
|