public List getComponentDescriptions(BundleContext bundleContext) {
public List getComponentDescriptions(BundleContext bundleContext) throws XMLParserNotAvailableException {
	public List getComponentDescriptions(BundleContext bundleContext) {		//check to see if we already have the cds for this bundle up-to-date in cache		Bundle bundle = bundleContext.getBundle();		Long bundleId = new Long(bundle.getBundleId());		Long cacheTime = (Long) lastModifiedTimes.get(bundleId);		Long lastModified = new Long(bundle.getLastModified());		List cds = null;		if (cacheTime != null && cacheTime.equals(lastModified)) {			//we have the bundle cached			cds = (List) cdCache.get(bundleId);		} else {			//not cached or out of date			cds = parser.getComponentDescriptions(bundleContext);			if (!cds.isEmpty()) {				lastModifiedTimes.put(bundleId, lastModified);				cdCache.put(bundleId, cds);			}		}		//set the bundle context of each CD - these can not be cached because		//a bundle gets a new bundle context every time it is initialized (started)		Iterator it = cds.iterator();		while (it.hasNext()) {			((ComponentDescription) it.next()).setBundleContext(bundleContext);		}		return cds;	}