org.jboss.soa.esb.common
Class ModulePropertyManager
java.lang.Object
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
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 |
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
ModulePropertyManager
public ModulePropertyManager()
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)