Search in sources :

Example 1 with RequireBundle

use of org.apache.xbean.osgi.bundle.util.BundleDescription.RequireBundle in project geronimo-xbean by apache.

the class BundleClassFinder method scanRequireBundles.

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);
        }
    }
}
Also used : RequireBundle(org.apache.xbean.osgi.bundle.util.BundleDescription.RequireBundle) RequireBundle(org.apache.xbean.osgi.bundle.util.BundleDescription.RequireBundle) Bundle(org.osgi.framework.Bundle) RequiredBundle(org.osgi.service.packageadmin.RequiredBundle) ExportPackage(org.apache.xbean.osgi.bundle.util.BundleDescription.ExportPackage) RequiredBundle(org.osgi.service.packageadmin.RequiredBundle) HashSet(java.util.HashSet) LinkedHashSet(java.util.LinkedHashSet)

Aggregations

HashSet (java.util.HashSet)1 LinkedHashSet (java.util.LinkedHashSet)1 ExportPackage (org.apache.xbean.osgi.bundle.util.BundleDescription.ExportPackage)1 RequireBundle (org.apache.xbean.osgi.bundle.util.BundleDescription.RequireBundle)1 Bundle (org.osgi.framework.Bundle)1 RequiredBundle (org.osgi.service.packageadmin.RequiredBundle)1