Giacomo Pati wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I forgot to mention the discovery process for JMX support in the core.
The CoreServiceManager (the JMXUtils helper class) tries to find a
JMX-Agent by calling the method
javax.management.MBeanServerFactory.findMBeanServer(null) which
returns a List of MBeanServer registered in the JVM. If the List
contains such agents, the first one is taken to be the MBeanServer of
choice and JMX support will be enabled (this is the same process
commons-modeler uses but commons-modeler spawnes a JMX agent if there
isn't any and this behaviour cannot be prevented) there.
Now, if JMX support is enabled, the ECM++ system in Cocoon 2.2 calls
the JMXUtils.setupJmxFor(...) method for all objects JMX support could
be established. So far these are:
In CoreServiceManager: for every ComponentHandler instantiated
In ThreadSafeComponentHandler: for every Component instantiated
The mentioned setupJmxFor method in the JMXUtils class tries to find a
class composed of the FQCN of the object in question with "MBean"
appended. Such a class gets instantiated with the object to be managed
injected to its Constructor. This instantiated MBean will be
registered with the MBeanServer.
Now there are other ComponentHandlers that might use this, too, but I
didn't worked on them so far.
One qustion remains: Where should I put the MBean I have written so far?
- - Into the core as well?
- - Into its own block (I think the discovery process will have to be
changed than as we are directing for unique package names for blocks,
right?)
My real MBeans do introduce the mentioned dependency on the jetty jmx
support base classes for easy constructing MBeans (yes, just with
Sun's javax.management interfaces it is a pain to write good MBean
compared to using that jetty package).
Hmm... so IIUC if we want to add the MBean to the core, that would add a
dependency on Jetty for its helper classes. Can we extract these classes
in a separate jar (having the full Jetty as a core dependency is bad
IMO)? The other solution, would be to copy the code for these classes in
our own repo, but this doesn't look nice.
Merry Christmas
You too! And Merry Christmas to all cocooners!
Sylvain
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director