Package org.apache.axis
Class AxisProperties
- java.lang.Object
-
- org.apache.axis.AxisProperties
-
public class AxisProperties extends java.lang.ObjectConfiguration properties for AXIS.
Manage configuration properties according to a secure scheme similar to that used by classloaders:
ClassLoaders are organized in a tree hierarchy.- each
ClassLoaderhas a reference to a parentClassLoader. - the root of the tree is the bootstrap
ClassLoaderer. - the youngest decendent is the thread context class loader.
- properties are bound to a
ClassLoaderinstance- non-default properties bound to a parent
ClassLoaderinstance 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
ClassLoaderinstance may be overriden by (default or non-default) properties of the same name bound to any decendent.
- non-default properties bound to a parent
- System properties take precedence over all other properties
- Author:
- Richard A. Sitze
-
-
Field Summary
Fields Modifier and Type Field Description protected static org.apache.commons.logging.LoglogTheLogfor all interesting events in this class.
-
Constructor Summary
Constructors Constructor Description AxisProperties()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.apache.commons.discovery.ResourceNameDiscovergetNameDiscoverer()static java.util.PropertiesgetProperties()This is an expensive operation.static java.lang.StringgetProperty(java.lang.String propertyName)Get value for property bound to the current thread context class loader.static java.lang.StringgetProperty(java.lang.String propertyName, java.lang.String dephault)Get value for property bound to the current thread context class loader.static org.apache.commons.discovery.ResourceClassIteratorgetResourceClassIterator(java.lang.Class spi)static java.lang.ObjectnewInstance(java.lang.Class spiClass)Create a new instance of a service provider class.static java.lang.ObjectnewInstance(java.lang.Class spiClass, java.lang.Class defaultClass)static java.lang.ObjectnewInstance(java.lang.Class spiClass, java.lang.Class[] constructorParamTypes, java.lang.Object[] constructorParams)static java.util.EnumerationpropertyNames()static voidsetClassDefault(java.lang.Class clazz, java.lang.String defaultName)static voidsetClassDefaults(java.lang.Class clazz, java.lang.String[] defaultNames)static voidsetClassOverrideProperty(java.lang.Class clazz, java.lang.String propertyName)static voidsetProperties(java.util.Map newProperties)Set property values forPropertiesbound to the current thread context class loader.static voidsetProperties(java.util.Map newProperties, boolean isDefault)Set property values forPropertiesbound to the current thread context class loader.static voidsetProperty(java.lang.String propertyName, java.lang.String value)Set value for property bound to the current thread context class loader.static voidsetProperty(java.lang.String propertyName, java.lang.String value, boolean isDefault)Set value for property bound to the current thread context class loader.
-
-
-
Method Detail
-
setClassOverrideProperty
public static void setClassOverrideProperty(java.lang.Class clazz, java.lang.String propertyName)
-
setClassDefault
public static void setClassDefault(java.lang.Class clazz, java.lang.String defaultName)
-
setClassDefaults
public static void setClassDefaults(java.lang.Class clazz, java.lang.String[] defaultNames)
-
getNameDiscoverer
public static org.apache.commons.discovery.ResourceNameDiscover getNameDiscoverer()
-
getResourceClassIterator
public static org.apache.commons.discovery.ResourceClassIterator getResourceClassIterator(java.lang.Class spi)
-
newInstance
public static java.lang.Object newInstance(java.lang.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.- Parameters:
spiClass- the service provider class to instantiate- Returns:
- a new instance of this class
-
newInstance
public static java.lang.Object newInstance(java.lang.Class spiClass, java.lang.Class[] constructorParamTypes, java.lang.Object[] constructorParams)
-
getProperty
public static java.lang.String getProperty(java.lang.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 java.lang.String getProperty(java.lang.String propertyName, java.lang.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.
-
setProperty
public static void setProperty(java.lang.String propertyName, java.lang.String value)Set value for property bound to the current thread context class loader.- Parameters:
propertyName- property namevalue- property value (non-default) If null, remove the property.
-
setProperty
public static void setProperty(java.lang.String propertyName, java.lang.String value, boolean isDefault)Set value for property bound to the current thread context class loader.- Parameters:
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.
-
setProperties
public static void setProperties(java.util.Map newProperties)
Set property values forPropertiesbound to the current thread context class loader.- Parameters:
newProperties- name/value pairs to be bound
-
setProperties
public static void setProperties(java.util.Map newProperties, boolean isDefault)Set property values forPropertiesbound to the current thread context class loader.- Parameters:
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.
-
propertyNames
public static java.util.Enumeration propertyNames()
-
getProperties
public static java.util.Properties getProperties()
This is an expensive operation.- Returns:
- Returns a
java.util.Propertiesinstance 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.
-
newInstance
public static java.lang.Object newInstance(java.lang.Class spiClass, java.lang.Class defaultClass)
-
-