Bnd 6.0.0 - resolver

I have updated to version 6 from 5.1 and seeing some different behavior in the resolver. We use the Require-Cap to determine if a bundle is a “server side” or “client side” bundle. When we are doing a resolve for a “client” we have the following …

-runprovidedcapabilities : com.candata.app;target=Client
-resolve.effective: resolve,active
-runblacklist: com.candata.app;filter:=’(target=Server)’

In our “client” bundles we have
Require-Capability: com.candata.app;filter:="(target=Client)";effective:=active

and our “server” bundles
Require-Capability: com.candata.app;filter:="(target=Server)";effective:=active

In the past when we went to resolve the blacklist would ignore any bundles that were “server” bundles, now the are coming up as not resolved looking for the com.candata.app;target=Server compatibility.

Has something changed? When does the blacklist get applied? For performance reasons I would hope first so the number of bundles is reduced.

It has been a while since 5.1 was released, so it is quite possible changes have been made that affect your scenario. Can you make a small repo which shows the scenario working on 5.1 and failing on 6.0? Then open an issue in the Bnd github repo so we can investigate. Thanks.

Can you point to the install location of 5.1. I can only find 6.0 on jfrog

I am assuming a maven or gradle build for the example repo and all the bnd plugin versions are on maven central. I, myself, do not have an older Bndtools installation available, so I would need to investigate against a command line (maven/gradle) example.

You may want to try -resolvedebug: 1 in your bndrun file to get some resolve context debug output to System.out. You can use 2 or 3 to get more and more debug output.