getCurrentEEs(platformProperties);
	public synchronized void resolve(BundleDescription[] reRefresh, Dictionary[] platformProperties) {		if (DEBUG)			ResolverImpl.log("*** BEGIN RESOLUTION ***"); //$NON-NLS-1$		if (state == null)			throw new IllegalStateException("RESOLVER_NO_STATE"); //$NON-NLS-1$		if (!initialized)			initialize();		// Unresolve all the supplied bundles and their dependents		if (reRefresh != null)			for (int i = 0; i < reRefresh.length; i++) {				ResolverBundle rb = (ResolverBundle) bundleMapping.get(reRefresh[i]);				if (rb != null)					unresolveBundle(rb, false);			}		// reorder exports and bundles after unresolving the bundles		resolverExports.reorder();		resolverBundles.reorder();		// keep a list of rejected singltons		ArrayList rejectedSingletons = new ArrayList();		// attempt to resolve all unresolved bundles		ResolverBundle[] bundles = (ResolverBundle[]) unresolvedBundles.toArray(new ResolverBundle[unresolvedBundles.size()]);		resolveBundles(bundles, platformProperties, rejectedSingletons);		if (selectSingletons(bundles, rejectedSingletons)) {			// a singleton was unresolved as a result of selecting a different version			// try to resolve unresolved bundles again; this will attempt to use the selected singleton			bundles = (ResolverBundle[]) unresolvedBundles.toArray(new ResolverBundle[unresolvedBundles.size()]);			resolveBundles(bundles, platformProperties, rejectedSingletons);		}		for (Iterator rejected = rejectedSingletons.iterator(); rejected.hasNext();) {			BundleDescription reject = (BundleDescription) rejected.next();			BundleDescription sameName = state.getBundle(reject.getSymbolicName(), null);			state.addResolverError(reject, ResolverError.SINGLETON_SELECTION, sameName.toString());		}		if (DEBUG)			ResolverImpl.log("*** END RESOLUTION ***"); //$NON-NLS-1$	}