private static List<String> getListProfileProperty(IProfile profile, String key) { List<String> listProperty = new ArrayList<String>(); String dropinRepositories = profile.getProperty(key); if (dropinRepositories != null) { StringTokenizer tokenizer = new StringTokenizer(dropinRepositories, PIPE); while (tokenizer.hasMoreTokens()) { listProperty.add(tokenizer.nextToken()); } } return listProperty; }
private void verifyAction() { ArrayList IUs = new ArrayList(publisherResult.getIUs(null, IPublisherResult.ROOT)); assertTrue(IUs.size() == 1); InstallableUnit iu = (InstallableUnit) IUs.get(0); assertTrue(iu.getId().equalsIgnoreCase(flavor + id + ".configuration")); // $NON-NLS-1$ // verify ProvidedCapabilities Collection<IProvidedCapability> providedCapabilities = iu.getProvidedCapabilities(); verifyProvidedCapability( providedCapabilities, "org.eclipse.equinox.p2.iu", iu.getId(), version); // $NON-NLS-1$ assertTrue(providedCapabilities.size() == 1); // verify RequiredCapabilities List<IRequirement> requiredCapability = iu.getRequirements(); assertTrue(requiredCapability.size() == 3); verifyRequiredCapability( requiredCapability, IInstallableUnit.NAMESPACE_IU_ID, flavor + id + ".config." + configSpec, new VersionRange(version, true, version, true)); // $NON-NLS-1$ verifyRequiredCapability( requiredCapability, IInstallableUnit.NAMESPACE_IU_ID, flavor + id + ".ini." + configSpec, new VersionRange(version, true, version, true)); // $NON-NLS-1$ verifyRequiredCapability( requiredCapability, IInstallableUnit.NAMESPACE_IU_ID, flavor + configSpec + ORG_ECLIPSE_CORE_COMMANDS, new VersionRange(version, true, version, true)); // verify non root IUs verifyFragment("ini"); // $NON-NLS-1$ verifyFragment("config"); // $NON-NLS-1$ verifyBundleCU(); }
public static IFileArtifactRepository getAggregatedBundleRepository( IProvisioningAgent agent, IProfile profile, int repoFilter) { List<IFileArtifactRepository> bundleRepositories = new ArrayList<IFileArtifactRepository>(); // we check for a shared bundle pool first as it should be preferred over the user bundle pool // in a shared install IArtifactRepositoryManager manager = getArtifactRepositoryManager(agent); if ((repoFilter & AGGREGATE_SHARED_CACHE) != 0) { String sharedCache = profile.getProperty(IProfile.PROP_SHARED_CACHE); if (sharedCache != null) { try { URI repoLocation = new File(sharedCache).toURI(); IArtifactRepository repository = manager.loadRepository(repoLocation, null); if (repository != null && repository instanceof IFileArtifactRepository && !bundleRepositories.contains(repository)) bundleRepositories.add((IFileArtifactRepository) repository); } catch (ProvisionException e) { // skip repository if it could not be read } } } if ((repoFilter & AGGREGATE_CACHE) != 0) { IFileArtifactRepository bundlePool = Util.getBundlePoolRepository(agent, profile); if (bundlePool != null) bundleRepositories.add(bundlePool); } if ((repoFilter & AGGREGATE_CACHE_EXTENSIONS) != 0) { List<String> repos = getListProfileProperty(profile, CACHE_EXTENSIONS); for (String repo : repos) { try { URI repoLocation; try { repoLocation = new URI(repo); } catch (URISyntaxException e) { // in 1.0 we wrote unencoded URL strings, so try as an unencoded string repoLocation = URIUtil.fromString(repo); } IArtifactRepository repository = manager.loadRepository(repoLocation, null); if (repository != null && repository instanceof IFileArtifactRepository && !bundleRepositories.contains(repository)) bundleRepositories.add((IFileArtifactRepository) repository); } catch (ProvisionException e) { // skip repositories that could not be read } catch (URISyntaxException e) { // unexpected, URLs should be pre-checked LogHelper.log(new Status(IStatus.ERROR, Activator.ID, e.getMessage(), e)); } } } return new AggregatedBundleRepository(agent, bundleRepositories); }