[cecilia] Cleanup start process of cecilia components
Currently the process of starting a cecilia application is quite complex and error prone.
The cecilia runtime and the tool-set will be updated to simplify this:
- the notion of constructor will be added in the implementation of primitive components. A constructor is a component method that is called one and only one time for a given component instance. If a primitive defines a constructor. The latter is the very first method that is executed on this component. A constructor can access component's data but cannot invoke client interfaces.
- The "startProperty" attribute on interface tag will be removed.
- The runtime will not provide any warranty on the start order of the sub-components of a given composite.
- If the developer need to ensure a special start order in a given composite, a new construct will be added in the ADL that will allow to specify this start order.
These will imply the following changes for the cecilia developer:
- The addition of a constructor in implementation of primitive components will simplify the implementation of components that requires to initialize there private data.
- This will remove the problem of cycle in start order detected by the tool-set. Most of the time, for conservative reasons, the algorithm was detecting false-positives.
- This will be the developer responsibility to ensure that components are started in a correct order according to a given composition.
These modifications will be performed in a dedicated branch and will be part of the next 2.1 release.