public void bundleAdded(BundleDescription bundle) { if (!initialized) return; if (bundleMapping.get(bundle) != null) return; // this description already exists in the resolver ResolverBundle rb = new ResolverBundle(bundle, this); bundleMapping.put(bundle, rb); unresolvedBundles.add(rb); resolverExports.put(rb.getExportPackages()); resolverBundles.put(rb.getName(), rb); addGenerics(rb.getGenericCapabilities()); }
public void bundleAdded(BundleDescription bundle) { if (!initialized) return; if (bundleMapping.get(bundle) != null) return; // this description already exists in the resolver ResolverBundle rb = new ResolverBundle(bundle, this); bundleMapping.put(bundle, rb); unresolvedBundles.add(rb); resolverExports.put(rb.getExportPackages()); resolverBundles.put(rb.getName(), rb); addGenerics(rb.getGenericCapabilities()); if (hook != null && rb.isFragment()) { attachFragment0(rb); } }
public void bundleAdded(BundleDescription bundle) { if (!initialized) return; if (bundleMapping.get(bundle) != null) return; // this description already exists in the resolver ResolverBundle rb = new ResolverBundle(bundle, this); bundleMapping.put(bundle, rb); unresolvedBundles.add(rb); resolverExports.put(rb.getExportPackages()); resolverBundles.put(rb.getName(), rb); addGenerics(rb.getGenericCapabilities()); if (hook != null && rb.isFragment()) { attachFragment0(rb); } }
private ResolverExport[] getExports(boolean selected) { ResolverExport[] results = getExportPackages(); int removedExports = 0; for (int i = 0; i < results.length; i++) if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) removedExports++; if (removedExports == 0) return results; ResolverExport[] selectedExports = new ResolverExport[results.length - removedExports]; int index = 0; for (int i = 0; i < results.length; i++) { if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) continue; selectedExports[index] = results[i]; index++; } return selectedExports; }
private void internalBundleRemoved(BundleDescription bundle, boolean pending) { // check if there are any dependants if (pending) removalPending.put(new Long(bundle.getBundleId()), bundle); if (!initialized) return; ResolverBundle rb = bundleMapping.get(bundle); if (rb == null) return; if (!pending) { bundleMapping.remove(bundle); groupingChecker.clear(rb); } if (!pending || !bundle.isResolved()) { resolverExports.remove(rb.getExportPackages()); resolverBundles.remove(rb); removeGenerics(rb.getGenericCapabilities()); } unresolvedBundles.remove(rb); }
private void internalBundleRemoved(BundleDescription bundle, boolean pending) { // check if there are any dependants if (pending) removalPending.put(new Long(bundle.getBundleId()), bundle); if (!initialized) return; ResolverBundle rb = bundleMapping.get(bundle); if (rb == null) return; if (!pending) { bundleMapping.remove(bundle); groupingChecker.clear(rb); } if (!pending || !bundle.isResolved()) { resolverExports.remove(rb.getExportPackages()); resolverBundles.remove(rb); removeGenerics(rb.getGenericCapabilities()); } unresolvedBundles.remove(rb); }
public void bundleAdded(BundleDescription bundle) { if (!initialized) return; if (bundleMapping.get(bundle) != null) return; // this description already exists in the resolver ResolverBundle rb = new ResolverBundle(bundle, this); bundleMapping.put(bundle, rb); unresolvedBundles.add(rb); resolverExports.put(rb.getExportPackages()); resolverBundles.put(rb.getName(), rb); addGenerics(rb.getGenericCapabilities()); if (hook != null && rb.isFragment()) { attachFragment0(rb); } }
private void internalBundleRemoved(BundleDescription bundle, boolean pending) { // check if there are any dependants if (pending) removalPending.put(new Long(bundle.getBundleId()), bundle); if (!initialized) return; ResolverBundle rb = bundleMapping.get(bundle); if (rb == null) return; if (!pending) { bundleMapping.remove(bundle); groupingChecker.clear(rb); } if (!pending || !bundle.isResolved()) { resolverExports.remove(rb.getExportPackages()); resolverBundles.remove(rb); removeGenerics(rb.getGenericCapabilities()); } unresolvedBundles.remove(rb); }
private ResolverExport[] getExports(boolean selected) { ResolverExport[] results = getExportPackages(); int removedExports = 0; for (int i = 0; i < results.length; i++) if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) removedExports++; if (removedExports == 0) return results; ResolverExport[] selectedExports = new ResolverExport[results.length - removedExports]; int index = 0; for (int i = 0; i < results.length; i++) { if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) continue; selectedExports[index] = results[i]; index++; } return selectedExports; }
private ResolverExport[] getExports(boolean selected) { ResolverExport[] results = getExportPackages(); int removedExports = 0; for (int i = 0; i < results.length; i++) if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) removedExports++; if (removedExports == 0) return results; ResolverExport[] selectedExports = new ResolverExport[results.length - removedExports]; int index = 0; for (int i = 0; i < results.length; i++) { if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) continue; selectedExports[index] = results[i]; index++; } return selectedExports; }
private ResolverExport[] getExports(boolean selected) { ResolverExport[] results = getExportPackages(); int removedExports = 0; for (int i = 0; i < results.length; i++) if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) removedExports++; if (removedExports == 0) return results; ResolverExport[] selectedExports = new ResolverExport[results.length - removedExports]; int index = 0; for (int i = 0; i < results.length; i++) { if (selected ? results[i].getSubstitute() != null : results[i].getSubstitute() == null) continue; selectedExports[index] = results[i]; index++; } return selectedExports; }
private void initResolverBundle(BundleDescription bundleDesc, ArrayList<ResolverBundle> fragmentBundles, boolean pending) { ResolverBundle bundle = new ResolverBundle(bundleDesc, this); bundleMapping.put(bundleDesc, bundle); if (!pending || bundleDesc.isResolved()) { resolverExports.put(bundle.getExportPackages()); resolverBundles.put(bundle.getName(), bundle); addGenerics(bundle.getGenericCapabilities()); } if (bundleDesc.isResolved()) { bundle.setState(ResolverBundle.RESOLVED); if (bundleDesc.getHost() != null) fragmentBundles.add(bundle); } else { if (!pending) unresolvedBundles.add(bundle); } }
private void initResolverBundle(BundleDescription bundleDesc, ArrayList<ResolverBundle> fragmentBundles, boolean pending) { ResolverBundle bundle = new ResolverBundle(bundleDesc, this); bundleMapping.put(bundleDesc, bundle); if (!pending || bundleDesc.isResolved()) { resolverExports.put(bundle.getExportPackages()); resolverBundles.put(bundle.getName(), bundle); addGenerics(bundle.getGenericCapabilities()); } if (bundleDesc.isResolved()) { bundle.setState(ResolverBundle.RESOLVED); if (bundleDesc.getHost() != null) fragmentBundles.add(bundle); } else { if (!pending) unresolvedBundles.add(bundle); } }
private void initResolverBundle(BundleDescription bundleDesc, ArrayList<ResolverBundle> fragmentBundles, boolean pending) { ResolverBundle bundle = new ResolverBundle(bundleDesc, this); bundleMapping.put(bundleDesc, bundle); if (!pending || bundleDesc.isResolved()) { resolverExports.put(bundle.getExportPackages()); resolverBundles.put(bundle.getName(), bundle); addGenerics(bundle.getGenericCapabilities()); } if (bundleDesc.isResolved()) { bundle.setState(ResolverBundle.RESOLVED); if (bundleDesc.getHost() != null) fragmentBundles.add(bundle); } else { if (!pending) unresolvedBundles.add(bundle); } }
private void initResolverBundle(BundleDescription bundleDesc, ArrayList<ResolverBundle> fragmentBundles, boolean pending) { ResolverBundle bundle = new ResolverBundle(bundleDesc, this); bundleMapping.put(bundleDesc, bundle); if (!pending || bundleDesc.isResolved()) { resolverExports.put(bundle.getExportPackages()); resolverBundles.put(bundle.getName(), bundle); addGenerics(bundle.getGenericCapabilities()); } if (bundleDesc.isResolved()) { bundle.setState(ResolverBundle.RESOLVED); if (bundleDesc.getHost() != null) fragmentBundles.add(bundle); } else { if (!pending) unresolvedBundles.add(bundle); } }
private List<PackageRoots[]> isConsistentInternal(ResolverBundle requiringBundle, ResolverBundle matchingBundle, List<ResolverBundle> visited, boolean dynamicImport, List<PackageRoots[]> results) { // needed to prevent endless cycles if (visited.contains(matchingBundle)) return results; visited.add(matchingBundle); // check that the packages exported by the matching bundle are consistent ResolverExport[] matchingExports = matchingBundle.getExportPackages(); for (int i = 0; i < matchingExports.length; i++) { ResolverExport matchingExport = matchingExports[i]; if (matchingExports[i].getSubstitute() != null) matchingExport = (ResolverExport) matchingExports[i].getSubstitute(); results = isConsistentInternal(requiringBundle, matchingExport, dynamicImport, results); } // check that the packages from reexported bundles are consistent BundleConstraint[] supplierRequires = matchingBundle.getRequires(); for (int j = 0; j < supplierRequires.length; j++) { ResolverBundle reexported = (ResolverBundle) supplierRequires[j].getSelectedSupplier(); if (reexported == null || !((BundleSpecification) supplierRequires[j].getVersionConstraint()).isExported()) continue; results = isConsistentInternal(requiringBundle, reexported, visited, dynamicImport, results); } return results; }
void clearWires() { ResolverImport[] allImports = getImportPackages(); for (int i = 0; i < allImports.length; i++) allImports[i].clearPossibleSuppliers(); if (host != null) host.clearPossibleSuppliers(); BundleConstraint[] allRequires = getRequires(); for (int i = 0; i < allRequires.length; i++) allRequires[i].clearPossibleSuppliers(); GenericConstraint[] allGenericRequires = getGenericRequires(); for (int i = 0; i < allGenericRequires.length; i++) allGenericRequires[i].clearPossibleSuppliers(); ResolverExport[] allExports = getExportPackages(); for (int i = 0; i < allExports.length; i++) allExports[i].setSubstitute(null); }
void clearWires() { ResolverImport[] allImports = getImportPackages(); for (int i = 0; i < allImports.length; i++) allImports[i].clearPossibleSuppliers(); if (host != null) host.clearPossibleSuppliers(); BundleConstraint[] allRequires = getRequires(); for (int i = 0; i < allRequires.length; i++) allRequires[i].clearPossibleSuppliers(); GenericConstraint[] allGenericRequires = getGenericRequires(); for (int i = 0; i < allGenericRequires.length; i++) allGenericRequires[i].clearPossibleSuppliers(); ResolverExport[] allExports = getExportPackages(); for (int i = 0; i < allExports.length; i++) allExports[i].setSubstitute(null); }
void clearWires() { ResolverImport[] allImports = getImportPackages(); for (int i = 0; i < allImports.length; i++) allImports[i].clearPossibleSuppliers(); if (host != null) host.clearPossibleSuppliers(); BundleConstraint[] allRequires = getRequires(); for (int i = 0; i < allRequires.length; i++) allRequires[i].clearPossibleSuppliers(); GenericConstraint[] allGenericRequires = getGenericRequires(); for (int i = 0; i < allGenericRequires.length; i++) allGenericRequires[i].clearPossibleSuppliers(); ResolverExport[] allExports = getExportPackages(); for (int i = 0; i < allExports.length; i++) allExports[i].setSubstitute(null); }
void clearWires() { ResolverImport[] allImports = getImportPackages(); for (int i = 0; i < allImports.length; i++) allImports[i].clearPossibleSuppliers(); if (host != null) host.clearPossibleSuppliers(); BundleConstraint[] allRequires = getRequires(); for (int i = 0; i < allRequires.length; i++) allRequires[i].clearPossibleSuppliers(); GenericConstraint[] allGenericRequires = getGenericRequires(); for (int i = 0; i < allGenericRequires.length; i++) allGenericRequires[i].clearPossibleSuppliers(); ResolverExport[] allExports = getExportPackages(); for (int i = 0; i < allExports.length; i++) allExports[i].setSubstitute(null); }