Configuration properties for AXIS.
Manage configuration 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
getNameDiscoverer
public static ResourceNameDiscover getNameDiscoverer()
getProperties
public static Properties getProperties()
This is an expensive operation.
- 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.
getProperty
public static String getProperty(String propertyName)
Get value for property bound to the current thread context class loader.
propertyName
- property name.
- 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.
propertyName
- property name.dephault
- default value.
- property value if found, otherwise default.
getResourceClassIterator
public static ResourceClassIterator getResourceClassIterator(Class spi)
newInstance
public static Object newInstance(Class spiClass)
Create a new instance of a service provider class.
!WARNING!
SECURITY issue.
See bug 11874
The solution to both is to move doPrivilege UP within AXIS to a
class that is either private (cannot be reached by code outside
AXIS) or that represents a secure public interface...
This is going to require analysis and (probably) rearchitecting.
So, I'm taking taking the easy way out until we are at a point
where we can reasonably rearchitect for security.
spiClass
- the service provider class to instantiate
- a new instance of this class
newInstance
public static Object newInstance(Class spiClass,
Class defaultClass)
newInstance
public static Object newInstance(Class spiClass,
constructorParamTypes[] ,
constructorParams[] )
propertyNames
public static Enumeration propertyNames()
setClassDefault
public static void setClassDefault(Class clazz,
String defaultName)
setClassDefaults
public static void setClassDefaults(Class clazz,
String[] defaultNames)
setClassOverrideProperty
public static void setClassOverrideProperty(Class clazz,
String propertyName)
setProperties
public static void setProperties(Map newProperties)
Set property values for Properties
bound to the
current thread context class loader.
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.
newProperties
- name/value pairs to be boundisDefault
- 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.
setProperty
public static void setProperty(String propertyName,
String value)
Set value for property bound to the current thread context class loader.
propertyName
- property namevalue
- 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.
propertyName
- property namevalue
- 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.