if (developmentMode) return false;
	private boolean selectSingletons(ResolverBundle[] bundles, ArrayList rejectedSingletons) {		boolean result = false;		for (int i = 0; i < bundles.length; i++) {			BundleDescription bundleDesc = bundles[i].getBundle();			if (!bundleDesc.isSingleton() || !bundleDesc.isResolved() || rejectedSingletons.contains(bundleDesc))				continue;			Object[] sameName = resolverBundles.get(bundleDesc.getName());			if (sameName.length > 1) { // Need to make a selection based off of num dependents				for (int j = 0; j < sameName.length; j++) {					BundleDescription sameNameDesc = ((VersionSupplier) sameName[j]).getBundle();					ResolverBundle sameNameBundle = (ResolverBundle) sameName[j];					if (sameName[j] == bundles[i] || !sameNameDesc.isSingleton() || !sameNameDesc.isResolved() || rejectedSingletons.contains(sameNameDesc))						continue; // Ignore the bundle we are selecting, non-singletons, and non-resolved					result = true;					boolean rejectedPolicy = selectionPolicy != null ? selectionPolicy.compare(sameNameDesc, bundleDesc) < 0 : sameNameDesc.getVersion().compareTo(bundleDesc.getVersion()) > 0;					if (rejectedPolicy && sameNameBundle.getRefs() >= bundles[i].getRefs()) {						// this bundle is not selected; add it to the rejected list						if (!rejectedSingletons.contains(bundles[i].getBundle()))							rejectedSingletons.add(bundles[i].getBundle());						break;					}					// we did not select the sameNameDesc; add the bundle to the rejected list					if (!rejectedSingletons.contains(sameNameDesc))						rejectedSingletons.add(sameNameDesc);				}			}		}		// unresolve the rejected singletons		for (Iterator rejects = rejectedSingletons.iterator(); rejects.hasNext();)			unresolveBundle((ResolverBundle) bundleMapping.get(rejects.next()), false);		return result;	}