groupingChecker.addInitialGroupingConstraints((ResolverBundle[]) bundleMapping.values().toArray(new ResolverBundle[bundleMapping.size()]));
	private void initialize() {		resolverExports = new VersionHashMap();		resolverBundles = new VersionHashMap();		unresolvedBundles = new ArrayList();		bundleMapping = new HashMap();		cyclicDependencies = new CyclicDependencyHashMap();		BundleDescription[] bundles = state.getBundles();		groupingChecker = new GroupingChecker();		ArrayList fragmentBundles = new ArrayList();		// Add each bundle to the resolver's internal state		for (int i = 0; i < bundles.length; i++)			initResolverBundle(bundles[i], fragmentBundles, false);		// Add each removal pending bundle to the resolver's internal state		BundleDescription[] removedBundles = getRemovalPending();		for (int i = 0; i < removedBundles.length; i++)			initResolverBundle(removedBundles[i], fragmentBundles, true);		// Iterate over the resolved fragments and attach them to their hosts		for (Iterator iter = fragmentBundles.iterator(); iter.hasNext();) {			ResolverBundle fragment = (ResolverBundle) iter.next();			BundleDescription[] hosts = ((HostSpecification) fragment.getHost().getVersionConstraint()).getHosts();			for (int i = 0; i < hosts.length; i++) {				ResolverBundle host = (ResolverBundle) bundleMapping.get(hosts[i]);				if (host != null)					// Do not add fragment exports here because they would have been added by the host above.					host.attachFragment(fragment, false);			}		}		rewireBundles(); // Reconstruct wirings		setDebugOptions();		initialized = true;	}