in winegrower-core/src/main/java/org/apache/winegrower/framework/WinegrowerFramework.java [289:307]
private Bundle installBundle(final String location) {
final StandaloneScanner scanner = Ripener.Impl.class.cast(ripener).getScanner();
final StandaloneScanner.BundleDefinition bundleDefinition = Stream.concat(
scanner.findOSGiBundles().stream(),
scanner.findPotentialOSGiBundles().stream())
.filter(bundle -> doesLocationMatches(bundle, location))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("No bundle found for " + location + ", available:\n\n" +
scanner.findOSGiBundles() + "\n" +
scanner.findPotentialOSGiBundles()));
final OSGiBundleLifecycle lifecycle = new OSGiBundleLifecycle(
bundleDefinition.getManifest(), bundleDefinition.getJar(),
ripener.getServices(), ripener.getRegistry(), configuration,
bundleIdGenerator.getAndIncrement(),
bundleDefinition.getFiles());
lifecycle.start();
ripener.getRegistry().getBundles().put(lifecycle.getBundle().getBundleId(), lifecycle);
return lifecycle.getBundle();
}