Source:
private IStatus checkResolved() { List<IStatus> allProblems = new ArrayList<>(); List<Bundle> unresolved = new ArrayList<>(); for (Bundle b : Activator.getBundleContext().getBundles()) { BundleRevision revision = b.adapt(BundleRevision.class); if (revision != null && revision.getWiring() == null) { unresolved.add(b); } } ResolutionReport report = getResolutionReport(unresolved); Map<Resource, List<ResolutionReport.Entry>> entries = report.getEntries(); Collection<Resource> unresolvedResources = new HashSet<>(entries.keySet()); Collection<Resource> leafResources = new HashSet<>(); for (Map.Entry<Resource, List<ResolutionReport.Entry>> resourceEntry : entries.entrySet()) { for (ResolutionReport.Entry reportEntry : resourceEntry.getValue()) { if (!reportEntry.getType().equals(ResolutionReport.Entry.Type.UNRESOLVED_PROVIDER)) { leafResources.add(resourceEntry.getKey()); unresolvedResources.remove(resourceEntry.getKey()); } } } for (Resource leafResource : leafResources) { BundleRevision revision = (BundleRevision) leafResource; String message = NLS.bind(EclipseAdaptorMsg.ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_RESOLVED, revision.getBundle().getLocation()) + '\n'; message += report.getResolutionReportMessage(leafResource); allProblems.add(createError(message)); } for (Resource unresolvedResource : unresolvedResources) { BundleRevision revision = (BundleRevision) unresolvedResource; String message = NLS.bind(EclipseAdaptorMsg.ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_RESOLVED, revision.getBundle().getLocation()) + '\n'; message += report.getResolutionReportMessage(unresolvedResource); allProblems.add(createError(message)); } MultiStatus result = new MultiStatus(Activator.PLUGIN_ID, IStatus.OK, "Problems checking resolved bundles.", null); for (IStatus iStatus : allProblems) result.add(iStatus); return result; }

Target:
private IStatus checkResolved() { List<IStatus> allProblems = new ArrayList<>(); List<Bundle> unresolved = new ArrayList<>(); for (Bundle b : Activator.getBundleContext().getBundles()) { BundleRevision revision = b.adapt(BundleRevision.class); if (revision != null && revision.getWiring() == null) { unresolved.add(b); } } ResolutionReport report = getResolutionReport(unresolved); Map<Resource, List<ResolutionReport.Entry>> entries = report.getEntries(); Collection<Resource> unresolvedResources = new HashSet<>(entries.keySet()); Collection<Resource> leafResources = new HashSet<>(); for (Map.Entry<Resource, List<ResolutionReport.Entry>> resourceEntry : entries.entrySet()) { for (ResolutionReport.Entry reportEntry : resourceEntry.getValue()) { if (!reportEntry.getType().equals(ResolutionReport.Entry.Type.UNRESOLVED_PROVIDER)) { leafResources.add(resourceEntry.getKey()); unresolvedResources.remove(resourceEntry.getKey()); } } } for (Resource leafResource : leafResources) { BundleRevision revision = (BundleRevision) leafResource; String message = NLS.bind(EclipseAdaptorMsg.ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_RESOLVED, revision.getBundle().getLocation()) + '\n'; message += report.getResolutionReportMessage(leafResource); allProblems.add(createError(message)); } for (Resource unresolvedResource : unresolvedResources) { BundleRevision revision = (BundleRevision) unresolvedResource; String message = NLS.bind(EclipseAdaptorMsg.ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_RESOLVED, revision.getBundle().getLocation()) + '\n'; message += report.getResolutionReportMessage(unresolvedResource); allProblems.add(createError(message)); } MultiStatus result = new MultiStatus(Activator.PLUGIN_ID, IStatus.OK, "Problems checking resolved bundles.", null); for (IStatus status : allProblems) result.add(status); return result; }