getPackages((BundleDescription) requiredBundles[i].getSupplier(), symbolicName, importList, orderedPkgList, pkgSet, visited, strict, pkgNames);
getPackages((BundleDescription) requiredBundles[i].getSupplier(), symbolicName, importList, orderedPkgList, pkgSet, visited, strict, pkgNames, options);
	private void getPackages(BundleDescription requiredBundle, String symbolicName, Set importList, ArrayList orderedPkgList, Set pkgSet, Set visited, boolean strict, Set pkgNames) {		if (visited.contains(requiredBundle))			return; // prevent duplicate entries and infinate loops incase of cycles		visited.add(requiredBundle);		// add all the exported packages from the required bundle; take x-friends into account.		ExportPackageDescription[] exports = requiredBundle.getSelectedExports();		HashSet exportNames = new HashSet(exports.length); // set is used to improve performance of duplicate check.		for (int i = 0; i < exports.length; i++)			if ((pkgNames == null || pkgNames.contains(exports[i].getName())) && !isSystemExport(exports[i]) && isFriend(symbolicName, exports[i], strict) && !importList.contains(exports[i].getName()) && !pkgSet.contains(exports[i])) {				if (!exportNames.contains(exports[i].getName())) { 					// only add the first export					orderedPkgList.add(exports[i]);					pkgSet.add(exports[i]);					exportNames.add(exports[i].getName());				}			}		// now look for exports from the required bundle.		BundleSpecification[] requiredBundles = requiredBundle.getRequiredBundles();		for (int i = 0; i < requiredBundles.length; i++) {			if (requiredBundles[i].getSupplier() == null)				continue;			if (requiredBundles[i].isExported()) {				// looking for a specific package and that package is exported by this bundle or adding all packages from a reexported bundle				getPackages((BundleDescription) requiredBundles[i].getSupplier(), symbolicName, importList, orderedPkgList, pkgSet, visited, strict, pkgNames);			} else if (exportNames.size() > 0) {				// adding any exports from required bundles which we also export				Set tmpVisited = new HashSet();				getPackages((BundleDescription) requiredBundles[i].getSupplier(), symbolicName, importList, orderedPkgList, pkgSet, tmpVisited, strict, exportNames);			}		}	}