final Iterator itEe = ba.pkgExportMap.entrySet().iterator();
while (itEe.hasNext()) {
final Map.Entry eE = (Map.Entry) itEe.next();
final String pkgName = (String) eE.getKey();
final Version pkgVersion = (Version) eE.getValue();
SortedMap versions = (SortedMap) allExports.get(pkgName);
if (null == versions) {
versions = new TreeMap();
allExports.put(pkgName, versions);
}
SortedSet exporters = (SortedSet) versions.get(pkgVersion);
if (null == exporters) {
exporters = new TreeSet();
versions.put(pkgVersion, exporters);
}
exporters.add(ba);
}
}
// For each bundle build the pkgProvidersMap
for (Iterator itBa = allBundleArchives.iterator(); itBa.hasNext();) {
final BundleArchive ba = (BundleArchive) itBa.next();
final Iterator itIe = ba.pkgImportMap.entrySet().iterator();
while (itIe.hasNext()) {
final Map.Entry iE = (Map.Entry) itIe.next();
final String pkgName = (String) iE.getKey();
final VersionRange range = (VersionRange) iE.getValue();
SortedMap versions = (SortedMap) allExports.get(pkgName);
if (null != versions) {
final Iterator itV = versions.entrySet().iterator();
while (itV.hasNext()) {
final Map.Entry vE = (Map.Entry) itV.next();
final Version pkgVersion = (Version) vE.getKey();
if (range.contains(pkgVersion)) {
final SortedSet providers = (SortedSet) vE.getValue();
final Iterator itP = providers.iterator();