>As for the service reloading, I'm not sure how you plan to do
>this. Let's say I unload a ClassPathExtension ("CPE"), upon which every
>service depends (since we want the CPEs to be loaded *first*). Now all
>services are unloaded. I change the directory/JAR for the
>ClassPathExtension, and then reload it. Now what gets reloaded? At least
>one of you seemed to consider it simplistic to assume that the contents of
>the conf file were accurate once the server is running (who knows what was
>started or stopped in the mean time?). So what do you reload? Or do you
>have to reload everything manually? You don't want to just reload from
>the file anyway, since it clearly had a bad CPE entry, and if you reread
>the file (loaded everything again) and then unloaded the bad CPE entry
>again it would re-unload all the services. Aargh!
I'm not sure if this is in JMX, but one concept that fits this is to split
dependencies into categories. There are 3 that come to mind:
1) Start dependency - MBean A cannot start unless MBean B is running
2) Stop dependency - MBean A cannot stop/unload unless MBean B is
stopped/unloaded
3) Fail dependency - MBean A is considered 'failed' if MBean B is 'failed'
Inside the 'relationship service' the type of dependency should be
configurable and allow a combination of the above 3 to be configured.
This way if you wanted to change something at the root of the dependency
tree, then only MBeans that had a stop/fail dependency on this MBean would
go down.
regards,
-Rob