Community
Participate
Working Groups
Currently you are not able to add plugins to a feature unless they are resolved in the target or workspace. This makes sense but prohibits people from crafting features that work on other platforms (or all platforms). For example, how would you edit the RCP feature. It includes all manner of SWT fragments. It might be interesting for people to be able to selectively include plugins that are not resolved. perhaps only those that fail the Platform filter. Perhaps some others. for example, I should not have to have all of RAD just to be able to create a feature that includes plugins that depend on RAD. Perhaps the option is "show unresolved plugins"
Brian, when we resolve the target platform, we currently only add resolved bundles to our state and discard the rest. This is somewhat heavy-handed. If, for example, the user has the RCP delta pack installed in the target platform, they would only see the fragments that match the current environment which can be mystifying. Since the state can now tell us exactly wny a bundle is unresolved via State#getResolverErrors(...), we can use that information to discard only bundles that give PDE a headache (e.g. multiple singleton bundles with the same id). The rest should make it into the PDE state. So check the type of the resolver error of an unresolved bundle. If it's not of type ResolverError.SINGLETON_SELECTION, the unresolved bundle is added to the state.
Created attachment 30076 [details] patch to PDE Core Patch should make PDEState aware of non-resolved bundles that are not multiple singletons. This should allow users the ability to add unresolved bundles to their features.
Thanks Brian. The patch looks good. However, you need to break out of the inner loop after setting 'add' to false. Released the modified patch.