Hi!
The jBoss startup process has been radically changed. The old one simply
read an MLet standard configuration text file to instantiate MBeans. The
only means of configuration was through the MLet text file. If you're
familiar with its syntax you will know that this is fairly limited and
hard to work with.
The new process uses the new configuration service to make configuration
of MBeans easier. It has 3 phases:
* Load a MLet text file (such as /conf/jboss.conf) into the MBeanServer
by using an MLet. This will cause the MBeans to be instantiated and
registered in the MBeanServer. Any MBeans using the ServiceMBeanSupport
as superclass (most of the jBoss MBeans do!) will be initialized at this
point.
* Load a configuration file through the configuration service. This will
cause an XML-file with settings for the MBeans to be loaded and the
MBeans' attributes to be updated. Immediately after the load, the
configuration of the server is saved to the configuration file. By doing
this the state of the server is always in synch with the configuration
file. For example, if an MBean was added to the MLet configuration file,
its settings will now be in the XML file, and can be edited there.
* Try to call "start()" on all MBeans. This will of course only work on
MBeans that actually has this method. All exceptions (i.e. "MBean does
not have start() method") are ignored.
This new process will make it easier to configure MBeans through the
configuration service XML file (such as /conf/jboss.jcml).
The only drawback is that the order of the MBeans as specified in the
MLet text file cannot be determined after they have been loaded. Because
of this they may be initialized in one order (the order that they appear
in the MLet text file), but be configured and started in another (the
order they are represented in the MBeanServer, typically based on hash
indexes). Because of this, some services which rely on others to be
started (e.g. DataSource needs Naming to be started in order to use JNDI
properly) will fail. The temporary workaround is to do start() logic
during initialization in case of services upon which others depend. Once
we have the final JMX API, which includes relationship services to
determine this kind of things, this will not be necessary.
For more info, please read org/jboss/Main.java and /conf/jboss.conf and
/conf/jboss.cfml. This is powerful stuff but should be easy to use once
you understand the basic ideas.
regards,
Rickard
--
Rickard �berg
@home: +46 13 177937
Email: [EMAIL PROTECTED]
http://www.telkel.com
http://www.jboss.org
http://www.dreambean.com