protected <T> Maybe<T> tryLoadFromBundleWhiteList(LoaderDispatcher<T> dispatcher, String className) { Framework framework = getFramework(); if (framework == null) { return Maybe.absentNull(); } List<Bundle> bundles = Osgis.bundleFinder(framework) .satisfying(createBundleMatchingPredicate()) .findAll(); for (Bundle b : bundles) { Maybe<T> item = dispatcher.tryLoadFrom(b, className); if (item.isPresent()) { return item; } } return Maybe.absentNull(); }
public BundleFinder version(final Predicate<Version> versionPredicate) { return satisfying(new Predicate<Bundle>() { @Override public boolean apply(Bundle input) { return versionPredicate.apply(input.getVersion()); } }); }