@Override public Bundle getBundle(long id) { return bundle.osgi.registry.getBundle(id); }
private void register(BundleRegistration reg) throws BundleException { String hostBundleId = getFragmentHost(reg); if (hostBundleId != null) { BundleRegistration host = bundles.get(hostBundleId); if (host == null) { reg.addUnresolvedDependency(hostBundleId); } } if (reg.hasUnresolvedDependencies()) { doPostpone(reg); } else { doRegister(reg); } }
@Override public Bundle[] getBundles() { return bundle.osgi.registry.getInstalledBundles(); }
protected void doRegister(BundleRegistration reg) throws BundleException { String name = reg.bundle.getSymbolicName(); log.info("Registering resolved bundle: " + name); bundles.put(name, reg); bundlesById.put(reg.bundle.getBundleId(), reg); reg.bundle.setInstalled(); reg.bundle.setResolved(); String hostBundleId = getFragmentHost(reg); if (hostBundleId != null) { BundleRegistration host = bundles.get(hostBundleId); host.addFragment(reg.bundle.getSymbolicName()); } else { // TODO how to lazy start the bundle? reg.bundle.start(); } // check if there are objects waiting for me Set<BundleRegistration> regs = pendings.remove(name); if (regs != null) { for (BundleRegistration pendingReg : regs) { pendingReg.removeUnresolvedDependency(name); if (!pendingReg.hasUnresolvedDependencies()) { doRegister(pendingReg); } } } }
@Override public Bundle[] getFragments(Bundle bundle) { return osgi.getRegistry().getFragments(bundle.getSymbolicName()); }
public void install(BundleImpl bundle) throws BundleException { double s = System.currentTimeMillis(); registry.install(bundle); bundle.startupTime = System.currentTimeMillis() - s; }
public void setSystemBundle(SystemBundle systemBundle) throws BundleException { if (this.systemBundle != null) { throw new IllegalStateException("Cannot set system bundle"); } install(systemBundle); registry.addBundleAlias("system.bundle", systemBundle.getSymbolicName()); this.systemBundle = systemBundle; systemBundle.getBundleContext().registerService(PackageAdmin.class.getName(), new PackageAdminImpl(this), null); }
protected void initialize(Properties properties) { this.properties = properties; registry = new BundleRegistry(); frameworkListeners = new ListenerList(); bundleListeners = new ListenerList(); serviceListeners = new ListenerList(); bundleIds = new BundleIdGenerator(); idTableFile = new File(dataDir, "bundles.ids"); bundleIds.load(idTableFile); // setting up default properties properties.put(Constants.FRAMEWORK_VENDOR, "Nuxeo"); properties.put(Constants.FRAMEWORK_VERSION, "1.0.0"); }
protected void unregister(BundleRegistration reg) throws BundleException { if (getFragmentHost(reg) == null) { reg.bundle.stop(); } reg.bundle.setUnResolved(); bundles.remove(reg.bundle.getSymbolicName()); bundlesById.remove(reg.bundle.getBundleId()); reg.bundle.setUninstalled(); for (String depOnMe : reg.dependsOnMe) { BundleRegistration depReg = bundles.get(depOnMe); if (depReg != null) { // set to unresolved depReg.bundle.setUnResolved(); } } }
@Override public Enumeration<URL> findEntries(String path, String filePattern, boolean recurse) { Enumeration<URL> hostEntries = file.findEntries(path, filePattern, recurse); Bundle[] fragments = osgi.getRegistry().getFragments(symbolicName); if (fragments.length == 0) { return hostEntries; } CompoundEnumerationBuilder builder = new CompoundEnumerationBuilder(); if (!allowHostOverride) { builder.add(hostEntries); } for (Bundle fragment : fragments) { Enumeration<URL> fragmentEntries = fragment.findEntries(path, filePattern, recurse); builder.add(fragmentEntries); } if (allowHostOverride) { builder.add(hostEntries); } return builder.build(); }
public BundleImpl getBundle(String symbolicName) { return registry.getBundle(symbolicName); }
public BundleImpl[] getInstalledBundles() { return registry.getInstalledBundles(); }
/** * @since 5.6 */ public synchronized BundleImpl[] getFragments(String symbolicName) { BundleRegistration reg = bundles.get(symbolicName); ArrayList<BundleImpl> fragments = new ArrayList<BundleImpl>(); for (String id : reg.extendsMe) { fragments.add(getBundle(id)); } return fragments.toArray(new BundleImpl[fragments.size()]); }
@Override @Deprecated public RuntimeContext deployTestContrib(String bundle, URL contrib) throws Exception { Bundle b = bundleLoader.getOSGi().getRegistry().getBundle(bundle); if (b == null) { b = osgi.getSystemBundle(); } OSGiRuntimeContext ctx = new OSGiRuntimeContext(runtime, b); ctx.deploy(contrib); return ctx; }
public URL getBlobManagerContrib(FeaturesRunner runner) { String bundleName = "org.nuxeo.ecm.core.test"; String contribPath = "OSGI-INF/test-storage-blob-contrib.xml"; RuntimeHarness harness = runner.getFeature(RuntimeFeature.class).getHarness(); Bundle bundle = harness.getOSGiAdapter().getRegistry().getBundle(bundleName); URL contribURL = bundle.getEntry(contribPath); assertNotNull("deployment contrib " + contribPath + " not found", contribURL); return contribURL; }
@Override public void deployBundle(String name) throws Exception { // install only if not yet installed Bundle bundle = bundleLoader.getOSGi().getRegistry().getBundle(name); if (bundle == null) { BundleFile bundleFile = lookupBundle(name); bundleLoader.loadBundle(bundleFile); bundleLoader.installBundle(bundleFile); bundle = bundleLoader.getOSGi().getRegistry().getBundle(name); } else { log.info("A bundle with name {} has been found. Deploy is ignored.", name); } if (runtime.getContext(bundle) == null) { runtime.createContext(bundle); } }
Bundle bundle = harness.getOSGiAdapter().getRegistry().getBundle(bundleName); URL contribURL = bundle.getEntry(contribPath); assertNotNull("deployment contrib " + contribPath + " not found", contribURL);