You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// warn about missing requirements. TODO: remove missing requirements and set them in Atomos
varallCapabilities = newCapability.SupersetSet();
for (varbundle : bundles) {
allCapabilities.addAll(bundle.capProvides);
}
for (varbundle : bundles) {
for (varcap : bundle.capRequires) {
if (!allCapabilities.containsAnySupersetOf(cap)) {
logger.warn("Missing capability " + cap + " required by " + bundle);
But we don't remove it from SolsticeManifest. Because we don't remove it from the manifests, we have to tolerate missing requirements like this, but we should really throw the commented out exception.
It's easy to fix within SolsticeManifest and BundleContextSolstice, but it's alot harder for BundleContextAtomos because there we will have to regenerate the full header string. The tricky thing is that the Capability we parse does not have everything that the OSGi runtime needs. We could expand the capability to do that, but all we actually need is full deletion of a matched capability, so probably it's easier to do removeCapabilities(Collection<Capability> cap) and have that operate on these implementation-details linked below
EDIT @nedtwigg : The following has been implemented by
so it is fixed for pure-Solstice. Integrating this fix fully into the Atomos integration will require a little more work.
We finally added full startup-ordering based on OSGi capabilities in
but there's something missing from how we did it. Set aside capabilities for now look instead at packages and bundles. For those, we do the following:
equo-ide/solstice/src/main/java/dev/equo/solstice/Solstice.java
Lines 197 to 204 in 7e89542
SolsticeManifest
sequo-ide/solstice/src/main/java/dev/equo/solstice/Solstice.java
Lines 216 to 219 in 7e89542
BundleContextSolstice
, but forBundleContextAtomos
we have to regenerate the header string from theSolsticeManifest
metadataequo-ide/solstice/src/main/java/dev/equo/solstice/BundleContextAtomos.java
Lines 65 to 71 in 7e89542
When it comes to capabilities, we can calculate what to remove
equo-ide/solstice/src/main/java/dev/equo/solstice/Solstice.java
Lines 221 to 229 in 7e89542
But we don't remove it from
SolsticeManifest
. Because we don't remove it from the manifests, we have to tolerate missing requirements like this, but we should really throw the commented out exception.equo-ide/solstice/src/main/java/dev/equo/solstice/Solstice.java
Lines 343 to 349 in 7e89542
It's easy to fix within
SolsticeManifest
andBundleContextSolstice
, but it's alot harder forBundleContextAtomos
because there we will have to regenerate the full header string. The tricky thing is that theCapability
we parse does not have everything that the OSGi runtime needs. We could expand the capability to do that, but all we actually need is full deletion of a matched capability, so probably it's easier to doremoveCapabilities(Collection<Capability> cap)
and have that operate on these implementation-details linked belowequo-ide/solstice/src/main/java/dev/equo/solstice/SolsticeManifest.java
Lines 178 to 225 in 7e89542
The text was updated successfully, but these errors were encountered: