Can somebody explain what's the story with the dependency
code that has been checked in????? Dain - is that you???
A lot of the deployment dependancy code appears to have been
added to the the AbstractStateManageable class and the
semantics of startRecursive have been changed significantly.
I don't think this is right on a number of fronts:
+ AbstractStateManageable should simple be an implementation of
StateManageable and should run the JSR77 statemachine - nothing else.
So at least the dependency code should have gone into AbstractComponent.
+ The definition of startRecursive in the spec is for children to
be started. I implemented this a the containment tree (Eg Geronimo
contains WebContainer contains WebApplication contains Servlet).
I don't think that the dependent components can be interpretted as
child components.
+ I don't think that components should be responsible for dependancies
anyway. Dependancy checking should be done at a higher level and
the caller of start() (ie the deployer) should be responsible for
calling start() on the dependant services. Sure components should
define what their dependencies are - but should not be actually
enforcing them.
+ <grump>I saw nothing in the deployment postings that said it was going to
blat over the work done by me and others getting AbstractComponent
and AbstractContainer working for the containment tree abd to be JSR77
compliant. In fact I can't see where this stuff has been discussed
at all?</grump>
+ It has been done using the JMX style invoke semantics - while I think that
may be OK for a higher level dependency service, I don't think it is
appropriate for this low level of code. Containers and Components have
POJO references to each other and they should be able to call each other
directly. JMX style invocation should only come into play when we are
talking about intercepted, multi-protocols, multi-JVM issues invocation -
which I don't think is the case for AbstractStateManageable.
It certainly should not have an ObjectName - as that is Component stuff.
(and JSR77 tells us to make it a string anyway).
So can we:
a) At least move this stuff out of AbstractStateManageable (as other things
that are not components may well be StateManageable) and into Component (as
a temporary home).
b) Revert to containment semantics for startRecursive
c) Have a bit more of a discussion about how & WHERE the dependency code
is going to be implemented.
I can do a) without breaking anything. But b) & c) are going to need
somebody elses assistance.
cheers
--
/**************************
* Greg Wilkins
* Partner
* Core Developers Network
**************************/