geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Wilkins <>
Subject [deployment][jsr77] Dependency code in AbstractStateManageable.
Date Wed, 20 Aug 2003 07:25:49 GMT

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.


  * Greg Wilkins
  * Partner
  * Core Developers Network

View raw message