Class AxisProperties


  • public class AxisProperties
    extends java.lang.Object

    Configuration 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 ClassLoader has a reference to a parent ClassLoader.
    • the root of the tree is the bootstrap ClassLoaderer.
    • 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

    Author:
    Richard A. Sitze
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static org.apache.commons.logging.Log log
      The Log for 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.ResourceNameDiscover getNameDiscoverer()  
      static java.util.Properties getProperties()
      This is an expensive operation.
      static java.lang.String getProperty​(java.lang.String propertyName)
      Get value for property bound to the current thread context class loader.
      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.
      static org.apache.commons.discovery.ResourceClassIterator getResourceClassIterator​(java.lang.Class spi)  
      static java.lang.Object newInstance​(java.lang.Class spiClass)
      Create a new instance of a service provider class.
      static java.lang.Object newInstance​(java.lang.Class spiClass, java.lang.Class defaultClass)  
      static java.lang.Object newInstance​(java.lang.Class spiClass, java.lang.Class[] constructorParamTypes, java.lang.Object[] constructorParams)  
      static java.util.Enumeration propertyNames()  
      static void setClassDefault​(java.lang.Class clazz, java.lang.String defaultName)  
      static void setClassDefaults​(java.lang.Class clazz, java.lang.String[] defaultNames)  
      static void setClassOverrideProperty​(java.lang.Class clazz, java.lang.String propertyName)  
      static void setProperties​(java.util.Map newProperties)
      Set property values for Properties bound to the current thread context class loader.
      static void setProperties​(java.util.Map newProperties, boolean isDefault)
      Set property values for Properties bound to the current thread context class loader.
      static void setProperty​(java.lang.String propertyName, java.lang.String value)
      Set value for property bound to the current thread context class loader.
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • log

        protected static org.apache.commons.logging.Log log
        The Log for all interesting events in this class.
    • Constructor Detail

      • AxisProperties

        public AxisProperties()
    • 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 name
        value - 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 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​(java.util.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​(java.util.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 java.util.Enumeration propertyNames()
      • getProperties

        public static java.util.Properties getProperties()
        This is an expensive operation.
        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.
      • newInstance

        public static java.lang.Object newInstance​(java.lang.Class spiClass,
                                                   java.lang.Class defaultClass)