## org.apache.axis
Class AxisProperties

    java.lang.Object
      |
      +--org.apache.axis.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:

- `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

Author:
  Richard A. Sitze

Field Summary
`protected static org.apache.commons.logging.Log` `log`

Constructor Summary
`AxisProperties()`

Method Summary
`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)` !WARNING! SECURITY issue.
`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

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)

  !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.

### 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)

Copyright © 2003 Apache Web Services Project. All Rights Reserved.