/** * Returns a list of packages that are listed in <i>Import-Package</i> header * and are <b>not</b> listed in <i>Export-Package</i> header. */ public List<ImportPackage> getExternalImports() { List<ImportPackage> imports = getImportPackage(); List<ExportPackage> exports = getExportPackage(); List<ImportPackage> realImports = new ArrayList<ImportPackage>(); for (ImportPackage p : imports) { if (!isExported(exports, p)) { realImports.add(p); } } return realImports; }
Iterator<ExportPackage> iterator = providerDescription.getExportPackage().iterator(); while (iterator.hasNext()) { ExportPackage exportPackage = iterator.next(); for (ExportPackage exportPackage : providerDescription.getExportPackage()) { builder.addImports(exportPackage.getName() + providerConstraint);
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); } } }
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; }