+++ /dev/null
-package org.argeo.osgi.a2;
-
-import org.argeo.osgi.boot.OsgiBootUtils;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.Version;
-
-/** A running OSGi bundle context seen as a {@link AbstractProvisioningSource}. */
-class OsgiContext extends AbstractProvisioningSource {
- private final BundleContext bc;
-
- public OsgiContext(BundleContext bc) {
- super();
- this.bc = bc;
- }
-
- public OsgiContext() {
- Bundle bundle = FrameworkUtil.getBundle(OsgiContext.class);
- if (bundle == null)
- throw new IllegalArgumentException(
- "OSGi Boot bundle must be started or a bundle context must be specified");
- this.bc = bundle.getBundleContext();
- }
-
- void load() {
- A2Contribution runtimeContribution = getOrAddContribution( A2Contribution.RUNTIME);
- for (Bundle bundle : bc.getBundles()) {
- // OsgiBootUtils.debug(bundle.getDataFile("/"));
- String componentId = bundle.getSymbolicName();
- Version version = bundle.getVersion();
- A2Component component = runtimeContribution.getOrAddComponent(componentId);
- A2Module module = component.getOrAddModule(version, bundle);
- if (OsgiBootUtils.isDebug())
- OsgiBootUtils.debug("Registered " + module + " (location id: " + bundle.getLocation() + ")");
- }
-
- }
-}