Dain Sundstrom wrote:
On Thursday, August 21, 2003, at 12:15 AM, Greg Wilkins wrote:

-1+1  Can you leave the code dealing with the state machine in
AbstractStateManageable.  ie the setStateInstance check of the
lifecycle and the doStart and doStop abstraction to separate tasks
for this object from any coordinated start processing.


Sure, but why do you need AbstractStateManageable specifically?

I actually have nothing specific at the moment in mind - but others have asked for it - which is why it was factored out of component in the first place.

The main reasons I want that layer is mainly for design clarity.
We are separating out an implementation of the JSR77 state machine
which is pretty generic - from our own managed object implementation
that is very geronimo/jmx/specific.

I think the code expresses the design a lot better when you can see
that ManagedObject and ManagedContainer are adding the intergration
with the dependency service to a state managed object.

We will be able to mess about with out components and container
code without accidentally changing the state model as enforced by
AbstractStateManageable.

cheers


Drink a half dozen pints.


+1 (so long as it is in the order above).


I already drank a bottle of wine so I'm done....

I also think you should make an ManagedContainer interface and
an AbstractManagedContainer class that would have all the
dependency service code in it.  ie it would extend addComponent so
that a dependency is added to the dependency service when it is called.


Well I did half of this. I added the rest of the types defined in 77 to the management package and added an AbstractStateMangeable which implements ManagedObject, StateManageable, and EventProvider (but not StatisticsProvider yet). I haven't touched the rest of the stuff in common yet, but I can when I wake up (unless you get to it first).

Actually... with that, I'd probably shut up on this issue as the
dependency mechanism integration into Component and Container would be
a lot more obvious - namely that the AbstractManagedContainer is really
just a conveniance class for configuring the dependency service.


Okay... I glad we came to a good compromise.

-dain







Reply via email to