code: private static void harvestPackageList(BundlePackages packages, Bundle bundle) {
          // Double check that the bundle is (still) installed:
          if (bundle.getLocation() != null && bundle.getState() != Bundle.UNINSTALLED) {
              BundleManifest manifest = new BundleManifest(bundle);
              /*
               * Only bundles with a bundle vendor of IBM should count as internal.
               * We definitely don't want to be filtering out user bundles in the shared bundle space.
               * This filter might catch stack products, which is probably a good thing
               * if it happens.
               * We also want to count the system bundle as internal. Some of
               * the bundles with higher IDs aren't ours, but since we rebuild them
               * with bnd, they get an IBM vendor header.
               */
              if (bundle.getBundleId() == 0 || IBM.equals(manifest.getBundleVendor()) || IBM.equals(manifest.getBundleDistributor())) {
                  packages.addPackages(manifest);
              }
          }
      }
docs: This method is static to avoid concurrent access issues.