public Set<ExportPackage> getEffectExportPackages(Long bundleId) { Set<ExportPackage> exportPackages = new HashSet<ExportPackage>(dependencyManager.getExportedPackages(bundleId)); for (Iterator<ExportPackage> it = exportPackages.iterator(); it.hasNext();) { ExportPackage exportPackage = it.next(); if (isHiddenExportPackage(exportPackage) || exportPackage.getDirectives().get("mandatory") != null) { it.remove(); } } return exportPackages; }
for (Iterator<ExportPackage> it = entry.getValue().iterator(); it.hasNext();) { ExportPackage exportPackage = it.next(); Version highestVersion = packageNameVersionMap.get(exportPackage.getName()); if (highestVersion != exportPackage.getVersion()) { it.remove();
private boolean needsProviderImports(Bundle persistenceBundle, BundleDescription providerDescription) { BundleDescription description = new BundleDescription(persistenceBundle.getHeaders()); for (HeaderEntry importPackage : description.getDynamicImportPackage()) { if ("*".equals(importPackage.getName())) { LOG.debug("Persistence bundle {} can load any class.", persistenceBundle.getSymbolicName()); return false; } } for (ImportPackage importPackage : description.getImportPackage()) { for (ExportPackage exportPackage : providerDescription.getExportPackage()) { if (importPackage.getName().equals(exportPackage.getName()) && importPackage.getVersionRange().isInRange(exportPackage.getVersion())) { LOG.debug("Persistence bundle {} already imports at least one package from JPA provider bundle.", persistenceBundle.getSymbolicName()); return false; } } } return true; }
private void scanRequireBundles(Collection<String> classes, Bundle bundle) { BundleDescription description = new BundleDescription(bundle.getHeaders()); List<RequireBundle> requiredBundleList = description.getRequireBundle(); for (RequireBundle requiredBundle : requiredBundleList) { RequiredBundle[] requiredBundles = packageAdmin.getRequiredBundles(requiredBundle.getName()); Bundle wiredBundle = isWired(bundle, requiredBundles); if (wiredBundle != null) { BundleDescription wiredBundleDescription = new BundleDescription(wiredBundle.getHeaders()); List<ExportPackage> exportPackages = wiredBundleDescription.getExportPackage(); Set<String> exportedPackageNames = new HashSet<String>(); for (ExportPackage exportPackage : exportPackages) { exportedPackageNames.add(exportPackage.getName()); } Set<String> allClasses = findAllClasses(wiredBundle, discoveryFilter, exportedPackageNames); classes.addAll(allClasses); } } }
/** * Returns a list of packages that are listed in <i>Export-Package</i> header. */ public List<ExportPackage> getExportPackage() { String headerValue = (String) headers.get(Constants.EXPORT_PACKAGE); List<ExportPackage> exports = new ArrayList<ExportPackage>(); List<HeaderElement> elements = HeaderParser.parseHeader(headerValue); for (HeaderElement element : elements) { ExportPackage p = new ExportPackage(element.getName(), element.getAttributes(), element.getDirectives()); exports.add(p); } return exports; }
private static boolean isExported(List<ExportPackage> exports, ImportPackage p) { for (ExportPackage export : exports) { if (export.getName().equals(p.getName())) { return true; } } return false; }
protected String toImportPackageName(ExportPackage exportPackage) { /* If mandatory attribute exists, do we need to handle it ? if (exportPackage.getAttributes().get("mandatory") != null) { logger.info("Export package " + exportPackage.getName() + " has mandatory attribute, it will not be considered, if it is required, please add in the deployment plan"); return null; }*/ if (USE_FIXED_IMPORT_PACKAGE_VERSION) { return exportPackage.getName() + ";version=" + "\"[" + exportPackage.getVersion() + "," + exportPackage.getVersion() + "]\""; } else { return exportPackage.getVersion().equals(ZERO_VERSION) ? exportPackage.getName() : exportPackage.getName() + ";version=" + exportPackage.getVersion(); } }
private void recordHighestPackageVersion(Map<String, Version> packageNameVersionMap, Set<ExportPackage> exportPackages) { for (ExportPackage exportPackage : exportPackages) { Version existedVersion = packageNameVersionMap.get(exportPackage.getName()); if (existedVersion == null || exportPackage.getVersion().compareTo(existedVersion) > 0) { packageNameVersionMap.put(exportPackage.getName(), exportPackage.getVersion()); } } } }
public boolean isHiddenExportPackage(ExportPackage exportPackage) { String packageName = exportPackage.getName(); if (hiddenImportPackageNames.contains(packageName)) { return true; } for (String hiddenImportPackageNamePrefix : hiddenImportPackageNamePrefixes) { if (packageName.startsWith(hiddenImportPackageNamePrefix)) { return true; } } return false; }