Class AxisProperties

java.lang.Object
org.apache.axis.AxisProperties

public class AxisProperties extends 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 Details

    • log

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

    • AxisProperties

      public AxisProperties()
  • Method Details

    • setClassOverrideProperty

      public static void setClassOverrideProperty(Class clazz, String propertyName)
    • setClassDefault

      public static void setClassDefault(Class clazz, String defaultName)
    • setClassDefaults

      public static void setClassDefaults(Class clazz, String[] defaultNames)
    • getNameDiscoverer

      public static org.apache.commons.discovery.ResourceNameDiscover getNameDiscoverer()
    • getResourceClassIterator

      public static org.apache.commons.discovery.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.
      Parameters:
      spiClass - the service provider class to instantiate
      Returns:
      a new instance of this class
    • newInstance

      public static Object newInstance(Class spiClass, Class[] constructorParamTypes, Object[] constructorParams)
    • 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.
    • 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 propertyNames()
    • getProperties

      public static 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 Object newInstance(Class spiClass, Class defaultClass)