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?
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
