public void testSite() throws MalformedURLException, CoreException { String ident1 = "org.eclipse.test.feature_1.0.0.jar"; ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null); URL id = UpdateManagerUtils.getURL(site.getURL(), ident1, null); remoteFeature = new DefaultFeature(site); remoteFeature.setURL(id); assertEquals(site, remoteFeature.getSite()); }
/** the feature to test */ private DefaultFeature getFeature() throws MalformedURLException, CoreException { if (remoteFeature == null) { ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null); URL id = UpdateManagerUtils.getURL( site.getURL(), "org.eclipse.update.core.feature1_1.0.0.jar", null); remoteFeature = new DefaultFeature(site); remoteFeature.setURL(id); } return remoteFeature; }
public void testIdentifier() throws CoreException, MalformedURLException { String id1 = "features/org.eclipse.test.feature_1.0.0.jar"; String id2 = "features/org.eclipse_test_feature.jar"; VersionedIdentifier ident1 = new VersionedIdentifier("org.test1.ident1", "1.0.0"); VersionedIdentifier ident2 = new VersionedIdentifier("org.test1.ident2", "1.0.0"); ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null); URL url1 = UpdateManagerUtils.getURL(site.getURL(), id1, null); remoteFeature = new DefaultFeature(site); remoteFeature.setURL(url1); remoteFeature.setIdentifier(ident1); assertEquals(ident1.toString(), remoteFeature.getVersionedIdentifier().toString()); URL url2 = UpdateManagerUtils.getURL(site.getURL(), id2, null); remoteFeature = new DefaultFeature(site); remoteFeature.setURL(url2); remoteFeature.setIdentifier(ident2); assertEquals(ident2.toString(), remoteFeature.getVersionedIdentifier().toString()); }
public void run( ISite site, String[] categoriesToSkip, IUpdateSearchFilter filter, IUpdateSearchResultCollector collector, IProgressMonitor monitor) { ISiteFeatureReference[] refs = site.getFeatureReferences(); HashSet ignores = new HashSet(); Map liteFeatures = new HashMap(); if (categoriesToSkip != null) { for (int i = 0; i < categoriesToSkip.length; i++) { ignores.add(categoriesToSkip[i]); } } List siteFeatureReferences = new ArrayList(Arrays.asList(refs)); if (liteFeaturesAreOK && (site instanceof ExtendedSite)) { ExtendedSite extendedSite = (ExtendedSite) site; LiteFeature[] liteFeaturesArray = extendedSite.getLiteFeatures(); if ((liteFeaturesArray != null) && (liteFeaturesArray.length != 0)) { for (int i = 0; i < liteFeaturesArray.length; i++) { liteFeatures.put(liteFeaturesArray[i].getVersionedIdentifier(), liteFeaturesArray[i]); } (new FeatureDownloader( siteFeatureReferences, collector, filter, ignores, monitor, true, liteFeatures)) .run(); return; } else { liteFeaturesAreOK = false; } } monitor.beginTask("", refs.length); // $NON-NLS-1$ ThreadGroup featureDownloaders = new ThreadGroup("FeatureDownloader"); // $NON-NLS-1$ int numberOfThreads = (refs.length > 5) ? 5 : refs.length; Thread[] featureDownloader = new Thread[numberOfThreads]; for (int i = 0; i < numberOfThreads; i++) { featureDownloader[i] = new Thread( featureDownloaders, new FeatureDownloader(siteFeatureReferences, collector, filter, ignores, monitor)); featureDownloader[i].start(); } int i = 0; while (i < numberOfThreads) { if (monitor.isCanceled()) { synchronized (siteFeatureReferences) { siteFeatureReferences.clear(); } } try { featureDownloader[i].join(250); if (!featureDownloader[i].isAlive()) { i++; } } catch (InterruptedException ie) { } } }