Current lifecycle implementation implies that all components in a container have the same lifecycle model. although the lifecycle support is part of the component's implementation. An Avalon component has a completely different LC than a component utilizing the Pico default. We mix also the LC of our own DPC with the one of the components, although the semantic of the container's LC is different:
Container LC:
===========
1. instantiation and setup
2. explicit start of container LC support
3. explicit stop of container LC support, may continue with (2)
4. explicit shutdown of the container's LC
(2) shall instantiate all components with a LC on first call and start the LC of these components resulting in an active component state
(3) shall inactivate all activated components (but they must be activatable again)
(4) shall end the life of the component (like finalize)
The implementation of an individual component lifecycle can be realized with a similar approach as taken for the monitoring, but without the possibility to exchange it. We would introduce also a LifecylceStrategy interface, that can be implemented by a CA.
After a chat we concluded, that: