Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.axis
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:

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

Constructor Summary
`AxisProperties()`

Method Summary
`static org.apache.commons.discovery.ResourceNameDiscover` | `getNameDiscoverer()`
`static Properties` | `getProperties()` This is an expensive operation.
`static String` | `getProperty(String propertyName)` Get value for property bound to the current thread context class loader.
`static String` | `getProperty(String propertyName, String dephault)` Get value for property bound to the current thread context class loader.
`static org.apache.commons.discovery.ResourceClassIterator` | `getResourceClassIterator(Class spi)`
`static Object` | `newInstance(Class spiClass)` !WARNING! SECURITY issue.
`static Object` | `newInstance(Class spiClass, Class defaultClass)`
`static Object` | `newInstance(Class spiClass, Class[] constructorParamTypes, Object[] constructorParams)`
`static Enumeration` | `propertyNames()`
`static void` | `setClassDefault(Class clazz, String defaultName)`
`static void` | `setClassDefaults(Class clazz, String[] defaultNames)`
`static void` | `setClassOverrideProperty(Class clazz, String propertyName)`
`static void` | `setProperties(Map newProperties)` Set property values for `Properties` bound to the current thread context class loader.
`static void` | `setProperties(Map newProperties, boolean isDefault)` Set property values for `Properties` bound to the current thread context class loader.
`static void` | `setProperty(String propertyName, String value)` Set value for property bound to the current thread context class loader.
`static void` | `setProperty(String propertyName, 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`

Constructor Detail

### AxisProperties

    public AxisProperties()

Method Detail

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

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 JBoss Group, LLC. All Rights Reserved.