Community
Participate
Working Groups
Build Identifier: The proposal is to use declarative services in Virgo's kernel. Reproducible: Always
We discussed this change at the Virgo F2F and it seems like a good direction to go in. However, we need to reproduce some of the support that Virgo has for Spring DM. Firstly, we need the ability to wait for a bundle to be fully started, meaning it has been activated and its component has been built successfully. We also need to be able to obtain the reason for failure in the failure case. Secondly, we need to track bundles which are waiting for their service dependencies to be satisfied and issue warnings to the console when this wait exceeds a certain period.
Another consideration is thread safety. DS does not use constructor injection so it will be necessary to use synchronization (via an internal "monitor" object as usual for Virgo) to ensure thread safety.
As part of this enhancement a bug that removes kernel's startup order was raised: https://bugs.eclipse.org/bugs/show_bug.cgi?id=333474
Commit 5ef9751 migrates Nano to DS and stops packaging SpringDM and its Spring framework dependencies in Nano, resulting in a reduced size. This can't be applied to higher distributions yet as they still rely on SpringDM usage in their kernel regions. Still it is OK as a first step.