@Override public Collection<Bundle> getDependencyClosure(Collection<Bundle> bundles) { Collection<Module> modules = getModules(bundles); moduleDatabase.readLock(); try { Collection<Module> closure = getRefreshClosure(modules, moduleDatabase.getWiringsCopy()); Collection<Bundle> result = new ArrayList<Bundle>(closure.size()); for (Module module : closure) { result.add(module.getBundle()); } return result; } finally { moduleDatabase.readUnlock(); } }
@Override public Collection<Bundle> getDependencyClosure(Collection<Bundle> bundles) { Collection<Module> modules = getModules(bundles); moduleDatabase.readLock(); try { Collection<Module> closure = getRefreshClosure(modules, moduleDatabase.getWiringsCopy()); Collection<Bundle> result = new ArrayList<>(closure.size()); for (Module module : closure) { result.add(module.getBundle()); } return result; } finally { moduleDatabase.readUnlock(); } }
@Override public Collection<Bundle> getDependencyClosure(Collection<Bundle> bundles) { Collection<Module> modules = getModules(bundles); moduleDatabase.readLock(); try { Collection<Module> closure = getRefreshClosure(modules, moduleDatabase.getWiringsCopy()); Collection<Bundle> result = new ArrayList<Bundle>(closure.size()); for (Module module : closure) { result.add(module.getBundle()); } return result; } finally { moduleDatabase.readUnlock(); } }
@Override public Collection<Bundle> getDependencyClosure(Collection<Bundle> bundles) { Collection<Module> modules = getModules(bundles); moduleDatabase.readLock(); try { Collection<Module> closure = getRefreshClosure(modules, moduleDatabase.getWiringsCopy()); Collection<Bundle> result = new ArrayList<Bundle>(closure.size()); for (Module module : closure) { result.add(module.getBundle()); } return result; } finally { moduleDatabase.readUnlock(); } }
@Override public Collection<Bundle> getDependencyClosure(Collection<Bundle> bundles) { Collection<Module> modules = getModules(bundles); moduleDatabase.readLock(); try { Collection<Module> closure = getRefreshClosure(modules, moduleDatabase.getWiringsCopy()); Collection<Bundle> result = new ArrayList<>(closure.size()); for (Module module : closure) { result.add(module.getBundle()); } return result; } finally { moduleDatabase.readUnlock(); } }
@Override public Collection<Bundle> getDependencyClosure(Collection<Bundle> bundles) { Collection<Module> modules = getModules(bundles); moduleDatabase.readLock(); try { Collection<Module> closure = getRefreshClosure(modules, moduleDatabase.getWiringsCopy()); Collection<Bundle> result = new ArrayList<Bundle>(closure.size()); for (Module module : closure) { result.add(module.getBundle()); } return result; } finally { moduleDatabase.readUnlock(); } }
@Override public boolean resolveBundles(Collection<Bundle> bundles) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); resolve(modules, false); if (modules == null) { modules = ModuleContainer.this.getModules(); } for (Module module : modules) { if (getWiring(module.getCurrentRevision()) == null) return false; } return true; }
@Override public boolean resolveBundles(Collection<Bundle> bundles) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); resolve(modules, false); if (modules == null) { modules = ModuleContainer.this.getModules(); } for (Module module : modules) { if (getWiring(module.getCurrentRevision()) == null) return false; } return true; }
@Override public boolean resolveBundles(Collection<Bundle> bundles) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); resolve(modules, false); if (modules == null) { modules = ModuleContainer.this.getModules(); } for (Module module : modules) { if (getWiring(module.getCurrentRevision()) == null) return false; } return true; }
@Override public boolean resolveBundles(Collection<Bundle> bundles) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); resolve(modules, false); if (modules == null) { modules = ModuleContainer.this.getModules(); } for (Module module : modules) { if (getWiring(module.getCurrentRevision()) == null) return false; } return true; }
@Override public boolean resolveBundles(Collection<Bundle> bundles) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); resolve(modules, false); if (modules == null) { modules = ModuleContainer.this.getModules(); } for (Module module : modules) { if (getWiring(module.getCurrentRevision()) == null) return false; } return true; }
@Override public boolean resolveBundles(Collection<Bundle> bundles) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); resolve(modules, false); if (modules == null) { modules = ModuleContainer.this.getModules(); } for (Module module : modules) { if (getWiring(module.getCurrentRevision()) == null) return false; } return true; }
@Override public void refreshBundles(Collection<Bundle> bundles, FrameworkListener... listeners) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); // queue to refresh in the background // notice that we only do one refresh operation at a time CopyOnWriteIdentityMap<ContainerWiring, FrameworkListener[]> dispatchListeners = new CopyOnWriteIdentityMap<>(); dispatchListeners.put(this, listeners); ListenerQueue<ContainerWiring, FrameworkListener[], Collection<Module>> queue = new ListenerQueue<>(getManager()); queue.queueListeners(dispatchListeners.entrySet(), this); // dispatch the refresh job queue.dispatchEventAsynchronous(0, modules); }
@Override public void refreshBundles(Collection<Bundle> bundles, FrameworkListener... listeners) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); // queue to refresh in the background // notice that we only do one refresh operation at a time CopyOnWriteIdentityMap<ContainerWiring, FrameworkListener[]> dispatchListeners = new CopyOnWriteIdentityMap<ModuleContainer.ContainerWiring, FrameworkListener[]>(); dispatchListeners.put(this, listeners); ListenerQueue<ContainerWiring, FrameworkListener[], Collection<Module>> queue = new ListenerQueue<ModuleContainer.ContainerWiring, FrameworkListener[], Collection<Module>>(getManager()); queue.queueListeners(dispatchListeners.entrySet(), this); // dispatch the refresh job queue.dispatchEventAsynchronous(0, modules); }
@Override public void refreshBundles(Collection<Bundle> bundles, FrameworkListener... listeners) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); // queue to refresh in the background // notice that we only do one refresh operation at a time CopyOnWriteIdentityMap<ContainerWiring, FrameworkListener[]> dispatchListeners = new CopyOnWriteIdentityMap<>(); dispatchListeners.put(this, listeners); ListenerQueue<ContainerWiring, FrameworkListener[], Collection<Module>> queue = new ListenerQueue<>(getManager()); queue.queueListeners(dispatchListeners.entrySet(), this); // dispatch the refresh job queue.dispatchEventAsynchronous(0, modules); }
@Override public void refreshBundles(Collection<Bundle> bundles, FrameworkListener... listeners) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); // queue to refresh in the background // notice that we only do one refresh operation at a time CopyOnWriteIdentityMap<ContainerWiring, FrameworkListener[]> dispatchListeners = new CopyOnWriteIdentityMap<ModuleContainer.ContainerWiring, FrameworkListener[]>(); dispatchListeners.put(this, listeners); ListenerQueue<ContainerWiring, FrameworkListener[], Collection<Module>> queue = new ListenerQueue<ModuleContainer.ContainerWiring, FrameworkListener[], Collection<Module>>(getManager()); queue.queueListeners(dispatchListeners.entrySet(), this); // dispatch the refresh job queue.dispatchEventAsynchronous(0, modules); }
@Override public void refreshBundles(Collection<Bundle> bundles, FrameworkListener... listeners) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); // queue to refresh in the background // notice that we only do one refresh operation at a time CopyOnWriteIdentityMap<ContainerWiring, FrameworkListener[]> dispatchListeners = new CopyOnWriteIdentityMap<ModuleContainer.ContainerWiring, FrameworkListener[]>(); dispatchListeners.put(this, listeners); ListenerQueue<ContainerWiring, FrameworkListener[], Collection<Module>> queue = new ListenerQueue<ModuleContainer.ContainerWiring, FrameworkListener[], Collection<Module>>(getManager()); queue.queueListeners(dispatchListeners.entrySet(), this); // dispatch the refresh job queue.dispatchEventAsynchronous(0, modules); }
@Override public void refreshBundles(Collection<Bundle> bundles, FrameworkListener... listeners) { checkAdminPermission(getBundle(), AdminPermission.RESOLVE); Collection<Module> modules = getModules(bundles); // queue to refresh in the background // notice that we only do one refresh operation at a time CopyOnWriteIdentityMap<ContainerWiring, FrameworkListener[]> dispatchListeners = new CopyOnWriteIdentityMap<ModuleContainer.ContainerWiring, FrameworkListener[]>(); dispatchListeners.put(this, listeners); ListenerQueue<ContainerWiring, FrameworkListener[], Collection<Module>> queue = new ListenerQueue<ModuleContainer.ContainerWiring, FrameworkListener[], Collection<Module>>(getManager()); queue.queueListeners(dispatchListeners.entrySet(), this); // dispatch the refresh job queue.dispatchEventAsynchronous(0, modules); }