org.jboss.soa.esb.common
Class ModulePropertyManager

java.lang.Object
  extended by org.jboss.soa.esb.common.ModulePropertyManager

public class ModulePropertyManager
extends java.lang.Object

The ESB configuration file is split into modules, each concerned with a specific capability. Each module may also depend upon another module. We use a PropertyManager per module to manage properties and relationships. All properties are grouped within sections and individual properties by . If you look at some you'll see that they may be named and may have a depends value, which relates to another section. This tells the PropertyManager to load the depends section first. A property value may be overridden by a dependant section, but the PropertyManager remembers the hierarchy, so if you want to you can inspect and change the lower level value and the PropertyManager can be used to preserve these changes if the values are written back out to the source location. The way the PropertyManager works means that it builds up a list of dependant modules in a directed acyclic graph. This means that there is a root, which can see every property below it, but nodes below cannot see properties above them: there is a level of isolation. When creating PropertyManagers, you need to specify where in the graph it is to "tie in". This obviously has an affect on what that instance can then see or do: if it goes in at the wrong level, it won't be able to see properties it may need (unless they were defined to be "system" properties, and in which case they are globally accessible.) This means that we now have isolated PropertyManagers for each module. It helps the management side of things a lot, but does mean that we have to consider where in the graph a property needs to be, or which PropertyManager we want to use to try to access it.

Author:
marklittle

Field Summary
static java.lang.String CONNECTION_MODULE
           
static java.lang.String CORE_MODULE
           
static java.lang.String DBSTORE_MODULE
           
static java.lang.String FILTER_MODULE
           
static java.lang.String REGISTRY_MODULE
           
static java.lang.String TRANSPORTS_MODULE
           
 
Constructor Summary
ModulePropertyManager()
           
 
Method Summary
static void configure(java.io.InputStream esbConfig)
           
static java.util.Hashtable<java.lang.String,com.arjuna.common.util.propertyservice.PropertyManager> getManagers()
           
static com.arjuna.common.util.propertyservice.PropertyManager getPropertyManager(java.lang.String name)
          Get the property manager responsible for the module component in the file.
static void setManagers(java.util.Hashtable<java.lang.String,com.arjuna.common.util.propertyservice.PropertyManager> managers)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CORE_MODULE

public static final java.lang.String CORE_MODULE
See Also:
Constant Field Values

CONNECTION_MODULE

public static final java.lang.String CONNECTION_MODULE
See Also:
Constant Field Values

REGISTRY_MODULE

public static final java.lang.String REGISTRY_MODULE
See Also:
Constant Field Values

TRANSPORTS_MODULE

public static final java.lang.String TRANSPORTS_MODULE
See Also:
Constant Field Values

DBSTORE_MODULE

public static final java.lang.String DBSTORE_MODULE
See Also:
Constant Field Values

FILTER_MODULE

public static final java.lang.String FILTER_MODULE
See Also:
Constant Field Values
Constructor Detail

ModulePropertyManager

public ModulePropertyManager()
Method Detail

getPropertyManager

public static com.arjuna.common.util.propertyservice.PropertyManager getPropertyManager(java.lang.String name)
Get the property manager responsible for the module component in the file.

Parameters:
name - the name of the module.
Returns:
the relevant property manager.

configure

public static void configure(java.io.InputStream esbConfig)
                      throws java.io.IOException,
                             org.xml.sax.SAXException
Throws:
java.io.IOException
org.xml.sax.SAXException

getManagers

public static java.util.Hashtable<java.lang.String,com.arjuna.common.util.propertyservice.PropertyManager> getManagers()

setManagers

public static void setManagers(java.util.Hashtable<java.lang.String,com.arjuna.common.util.propertyservice.PropertyManager> managers)