private ModuleWiring getWiring(Bundle bundle) { Module module = StartLevelImpl.getModule(bundle); if (module == null) { return null; } List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); if (revisions.isEmpty()) { return null; } return revisions.get(0).getWiring(); }
private ModuleWiring getWiring(Bundle bundle) { Module module = StartLevelImpl.getModule(bundle); if (module == null) { return null; } List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); if (revisions.isEmpty()) { return null; } return revisions.get(0).getWiring(); }
private ModuleWiring getWiring(Bundle bundle) { Module module = StartLevelImpl.getModule(bundle); if (module == null) { return null; } List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); if (revisions.isEmpty()) { return null; } return revisions.get(0).getWiring(); }
private ModuleWiring getWiring(Bundle bundle) { Module module = StartLevelImpl.getModule(bundle); if (module == null) { return null; } List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); if (revisions.isEmpty()) { return null; } return revisions.get(0).getWiring(); }
private ModuleWiring getWiring(Bundle bundle) { Module module = StartLevelImpl.getModule(bundle); if (module == null) { return null; } List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); if (revisions.isEmpty()) { return null; } return revisions.get(0).getWiring(); }
private ModuleWiring getWiring(Bundle bundle) { Module module = StartLevelImpl.getModule(bundle); if (module == null) { return null; } List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); if (revisions.isEmpty()) { return null; } return revisions.get(0).getWiring(); }
public ExportedPackage[] getExportedPackages(Bundle bundle) { if (bundle == null) { return getExportedPackages((String) null); } Module module = StartLevelImpl.getModule(bundle); Collection<ModuleRevision> revisions = module == null ? Collections.<ModuleRevision> emptyList() : module.getRevisions().getModuleRevisions(); Collection<ExportedPackage> allExports = new ArrayList<>(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = revision.getWiring(); if (wiring != null) { List<ModuleCapability> providedPackages = wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE); if (providedPackages != null) { for (ModuleCapability providedPackage : providedPackages) { allExports.add(new ExportedPackageImpl(providedPackage, wiring)); } } } } return allExports.isEmpty() ? null : allExports.toArray(new ExportedPackage[allExports.size()]); }
public ExportedPackage[] getExportedPackages(Bundle bundle) { if (bundle == null) { return getExportedPackages((String) null); } Module module = StartLevelImpl.getModule(bundle); Collection<ModuleRevision> revisions = module == null ? Collections.<ModuleRevision> emptyList() : module.getRevisions().getModuleRevisions(); Collection<ExportedPackage> allExports = new ArrayList<ExportedPackage>(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = revision.getWiring(); if (wiring != null) { List<ModuleCapability> providedPackages = wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE); if (providedPackages != null) { for (ModuleCapability providedPackage : providedPackages) { allExports.add(new ExportedPackageImpl(providedPackage, wiring)); } } } } return allExports.isEmpty() ? null : allExports.toArray(new ExportedPackage[allExports.size()]); }
public ExportedPackage[] getExportedPackages(Bundle bundle) { if (bundle == null) { return getExportedPackages((String) null); } Module module = StartLevelImpl.getModule(bundle); Collection<ModuleRevision> revisions = module == null ? Collections.<ModuleRevision> emptyList() : module.getRevisions().getModuleRevisions(); Collection<ExportedPackage> allExports = new ArrayList<ExportedPackage>(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = revision.getWiring(); if (wiring != null) { List<ModuleCapability> providedPackages = wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE); if (providedPackages != null) { for (ModuleCapability providedPackage : providedPackages) { allExports.add(new ExportedPackageImpl(providedPackage, wiring)); } } } } return allExports.isEmpty() ? null : allExports.toArray(new ExportedPackage[allExports.size()]); }
public ExportedPackage[] getExportedPackages(Bundle bundle) { if (bundle == null) { return getExportedPackages((String) null); } Module module = StartLevelImpl.getModule(bundle); Collection<ModuleRevision> revisions = module == null ? Collections.<ModuleRevision> emptyList() : module.getRevisions().getModuleRevisions(); Collection<ExportedPackage> allExports = new ArrayList<>(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = revision.getWiring(); if (wiring != null) { List<ModuleCapability> providedPackages = wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE); if (providedPackages != null) { for (ModuleCapability providedPackage : providedPackages) { allExports.add(new ExportedPackageImpl(providedPackage, wiring)); } } } } return allExports.isEmpty() ? null : allExports.toArray(new ExportedPackage[allExports.size()]); }
public ExportedPackage[] getExportedPackages(Bundle bundle) { if (bundle == null) { return getExportedPackages((String) null); } Module module = StartLevelImpl.getModule(bundle); Collection<ModuleRevision> revisions = module == null ? Collections.<ModuleRevision> emptyList() : module.getRevisions().getModuleRevisions(); Collection<ExportedPackage> allExports = new ArrayList<ExportedPackage>(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = revision.getWiring(); if (wiring != null) { List<ModuleCapability> providedPackages = wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE); if (providedPackages != null) { for (ModuleCapability providedPackage : providedPackages) { allExports.add(new ExportedPackageImpl(providedPackage, wiring)); } } } } return allExports.isEmpty() ? null : allExports.toArray(new ExportedPackage[allExports.size()]); }
public ExportedPackage[] getExportedPackages(Bundle bundle) { if (bundle == null) { return getExportedPackages((String) null); } Module module = StartLevelImpl.getModule(bundle); Collection<ModuleRevision> revisions = module == null ? Collections.<ModuleRevision> emptyList() : module.getRevisions().getModuleRevisions(); Collection<ExportedPackage> allExports = new ArrayList<ExportedPackage>(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = revision.getWiring(); if (wiring != null) { List<ModuleCapability> providedPackages = wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE); if (providedPackages != null) { for (ModuleCapability providedPackage : providedPackages) { allExports.add(new ExportedPackageImpl(providedPackage, wiring)); } } } } return allExports.isEmpty() ? null : allExports.toArray(new ExportedPackage[allExports.size()]); }
private static void addDependents(Module module, Map<ModuleRevision, ModuleWiring> wiringCopy, Set<Module> refreshClosure) { if (refreshClosure.contains(module)) return; refreshClosure.add(module); List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = wiringCopy.get(revision); if (wiring == null) continue; List<ModuleWire> provided = wiring.getProvidedModuleWires(null); // No null checks; we are holding the read lock here. // Add all requirers of the provided wires for (ModuleWire providedWire : provided) { addDependents(providedWire.getRequirer().getRevisions().getModule(), wiringCopy, refreshClosure); } // add all hosts of a fragment if (revision.getTypes() == BundleRevision.TYPE_FRAGMENT) { List<ModuleWire> hosts = wiring.getRequiredModuleWires(HostNamespace.HOST_NAMESPACE); for (ModuleWire hostWire : hosts) { addDependents(hostWire.getProvider().getRevisions().getModule(), wiringCopy, refreshClosure); } } } }
private static void addDependents(Module module, Map<ModuleRevision, ModuleWiring> wiringCopy, Set<Module> refreshClosure) { if (refreshClosure.contains(module)) return; refreshClosure.add(module); List<ModuleRevision> revisions = module.getRevisions().getModuleRevisions(); for (ModuleRevision revision : revisions) { ModuleWiring wiring = wiringCopy.get(revision); if (wiring == null) continue; List<ModuleWire> provided = wiring.getProvidedModuleWires(null); // No null checks; we are holding the read lock here. // Add all requirers of the provided wires for (ModuleWire providedWire : provided) { addDependents(providedWire.getRequirer().getRevisions().getModule(), wiringCopy, refreshClosure); } // add all hosts of a fragment if (revision.getTypes() == BundleRevision.TYPE_FRAGMENT) { List<ModuleWire> hosts = wiring.getRequiredModuleWires(HostNamespace.HOST_NAMESPACE); for (ModuleWire hostWire : hosts) { addDependents(hostWire.getProvider().getRevisions().getModule(), wiringCopy, refreshClosure); } } } }
@Override public void invalidateWiring(ModuleWiring moduleWiring, ModuleLoader current) { if (current instanceof BundleLoader) { BundleLoader bundleLoader = (BundleLoader) current; bundleLoader.close(); } long updatedTimestamp = storage.getModuleDatabase().getRevisionsTimestamp(); if (System.getSecurityManager() != null && updatedTimestamp != lastSecurityAdminFlush.getAndSet(updatedTimestamp)) { storage.getSecurityAdmin().clearCaches(); List<Module> modules = storage.getModuleContainer().getModules(); for (Module module : modules) { for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) { Generation generation = (Generation) revision.getRevisionInfo(); if (generation != null) { ProtectionDomain domain = generation.getDomain(); if (domain != null) { ((BundlePermissions) domain.getPermissions()).clearPermissionCache(); } } } } } clearManifestCache(moduleWiring); }
@Override public void invalidateWiring(ModuleWiring moduleWiring, ModuleLoader current) { if (current instanceof BundleLoader) { BundleLoader bundleLoader = (BundleLoader) current; bundleLoader.close(); } long updatedTimestamp = storage.getModuleDatabase().getRevisionsTimestamp(); if (System.getSecurityManager() != null && updatedTimestamp != lastSecurityAdminFlush.getAndSet(updatedTimestamp)) { storage.getSecurityAdmin().clearCaches(); List<Module> modules = storage.getModuleContainer().getModules(); for (Module module : modules) { for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) { Generation generation = (Generation) revision.getRevisionInfo(); if (generation != null) { ProtectionDomain domain = generation.getDomain(); if (domain != null) { ((BundlePermissions) domain.getPermissions()).clearPermissionCache(); } } } } } clearManifestCache(moduleWiring); }
@Override public void invalidateWiring(ModuleWiring moduleWiring, ModuleLoader current) { if (current instanceof BundleLoader) { BundleLoader bundleLoader = (BundleLoader) current; bundleLoader.close(); long updatedTimestamp = storage.getModuleDatabase().getRevisionsTimestamp(); if (System.getSecurityManager() != null && updatedTimestamp != lastSecurityAdminFlush.getAndSet(updatedTimestamp)) { storage.getSecurityAdmin().clearCaches(); List<Module> modules = storage.getModuleContainer().getModules(); for (Module module : modules) { for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) { Generation generation = (Generation) revision.getRevisionInfo(); if (generation != null) { ProtectionDomain domain = generation.getDomain(); if (domain != null) { ((BundlePermissions) domain.getPermissions()).clearPermissionCache(); } } } } } } clearManifestCache(moduleWiring); }
@Override public void invalidateWiring(ModuleWiring moduleWiring, ModuleLoader current) { if (current instanceof BundleLoader) { BundleLoader bundleLoader = (BundleLoader) current; bundleLoader.close(); } long updatedTimestamp = storage.getModuleDatabase().getRevisionsTimestamp(); if (System.getSecurityManager() != null && updatedTimestamp != lastSecurityAdminFlush.getAndSet(updatedTimestamp)) { storage.getSecurityAdmin().clearCaches(); List<Module> modules = storage.getModuleContainer().getModules(); for (Module module : modules) { for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) { Generation generation = (Generation) revision.getRevisionInfo(); if (generation != null) { ProtectionDomain domain = generation.getDomain(); if (domain != null) { ((BundlePermissions) domain.getPermissions()).clearPermissionCache(); } } } } } clearManifestCache(moduleWiring); }
public void close() { try { save(); } catch (IOException e) { getLogServices().log(EquinoxContainer.NAME, FrameworkLogEntry.ERROR, "Error saving on shutdown", e); //$NON-NLS-1$ } // close all the generations List<Module> modules = moduleContainer.getModules(); for (Module module : modules) { for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) { Generation generation = (Generation) revision.getRevisionInfo(); if (generation != null) { generation.close(); } } } mruList.shutdown(); }
public void close() { try { save(); } catch (IOException e) { getLogServices().log(EquinoxContainer.NAME, FrameworkLogEntry.ERROR, "Error saving on shutdown", e); //$NON-NLS-1$ } // close all the generations List<Module> modules = moduleContainer.getModules(); for (Module module : modules) { for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) { Generation generation = (Generation) revision.getRevisionInfo(); if (generation != null) { generation.close(); } } } mruList.shutdown(); }