Base class for an object will load objects defined in a file called
registry-bootstrap.properties into the local
registry. This allows modules and transports to make certain objects available by default. The most common use case is for a
module or transport to load stateless transformers into the registry. For this file to be located it must be present in the
modules META-INF directory under
META-INF/org/mule/config/
The format of this file is a simple key / value pair. i.e.
myobject = org.foo.MyObject
Will register an instance of MyObject with a key of 'myobject'. If you don't care about the object name and want to ensure that
the ojbect gets a unique name you can use -
object.1=org.foo.MyObject
object.2=org.bar.MyObject
or
myFoo=org.foo.MyObject
myBar=org.bar.MyObject
It's also possible to define if the entry must be applied to a domain, an application, or both by using the parameter
applyToArtifactType.
myFoo=org.foo.MyObject will be applied to any mule application since the parameter applyToArtifactType default value is app
myFoo=org.foo.MyObject;applyToArtifactType=app will be applied to any mule application
myFoo=org.foo.MyObject;applyToArtifactType=domain will be applied to any mule domain
myFoo=org.foo.MyObject;applyToArtifactType=app/domain will be applied to any mule application and any mule domain
Loading transformers has a slightly different notation since you can define the 'returnClass' with optional mime type, and
'name'of the transformer as parameters i.e.
transformer.1=org.mule.compatibility.core.transport.jms.transformers.JMSMessageToObject,returnClass=byte[]
transformer.2=org.mule.compatibility.core.transport.jms.transformers.JMSMessageToObject,returnClass=java.lang.String:text/xml, name=JMSMessageToString
transformer.3=org.mule.compatibility.core.transport.jms.transformers.JMSMessageToObject,returnClass=java.util.Hashtable)
Note that the key used for transformers must be 'transformer.x' where 'x' is a sequential number. The transformer name will be
automatically generated as JMSMessageToXXX where XXX is the return class name i.e. JMSMessageToString unless a 'name' parameter
is specified. If no 'returnClass' is specified the default in the transformer will be used.
Note that all objects defined have to have a default constructor. They can implement injection interfaces such as
MuleContextAware and lifecycle interfaces such as
Initialisable.