use of org.eclipse.equinox.internal.p2.metadata.IRequiredCapability in project tycho by eclipse.
the class P2GeneratorImplTest method testOptionalRequireBundleP2inf_REQUIRE.
@Test
public void testOptionalRequireBundleP2inf_REQUIRE() throws Exception {
DependencyMetadataGenerator generator = createDependencyMetadataGenerator();
File location = new File("resources/generator/optional-reqiure-bundle-p2inf").getCanonicalFile();
ArtifactMock artifactMock = new ArtifactMock(location, "optional-reqiure-bundle-p2inf", "optional-reqiure-bundle-p2inf", "0.0.1", "eclipse-plugin");
Set<Object> units = generator.generateMetadata(artifactMock, getEnvironments(), OptionalResolutionAction.REQUIRE).getMetadata();
assertEquals(1, units.size());
IInstallableUnit iu = getUnit("optional-reqiure-bundle-p2inf", units);
assertNotNull(iu);
List<IRequirement> requirements = new ArrayList<>(iu.getRequirements());
assertEquals(1, requirements.size());
IRequiredCapability requirement = (IRequiredCapability) requirements.get(0);
assertTrue(requirement.isGreedy());
assertEquals(1, requirement.getMin());
assertEquals(1, requirement.getMax());
assertEquals(BundlesAction.CAPABILITY_NS_OSGI_BUNDLE, requirement.getNamespace());
assertEquals("org.eclipse.osgi", requirement.getName());
}
use of org.eclipse.equinox.internal.p2.metadata.IRequiredCapability in project tycho by eclipse.
the class P2DependencyGeneratorImplTest method feature_with_p2_inf.
@Test
public void feature_with_p2_inf() throws Exception {
generateDependencies("feature-p2-inf", PackagingType.TYPE_ECLIPSE_FEATURE);
List<IInstallableUnit> units = new ArrayList<>(this.units);
// no feature.jar IU because dependencyOnly=true
assertEquals(2, units.size());
// TODO
IInstallableUnit unit = units.get(0);
assertEquals("org.eclipse.tycho.p2.impl.test.feature-p2-inf.feature.group", unit.getId());
assertEquals("1.0.0.qualifier", unit.getVersion().toString());
List<IRequirement> requirements = new ArrayList<>(unit.getRequirements());
assertEquals(1, requirements.size());
IRequiredCapability requirement = (IRequiredCapability) requirements.get(0);
assertEquals(IInstallableUnit.NAMESPACE_IU_ID, requirement.getNamespace());
assertEquals("required.p2.inf", requirement.getName());
assertEquals(0, artifacts.size());
assertEquals("iu.p2.inf", units.get(1).getId());
}
use of org.eclipse.equinox.internal.p2.metadata.IRequiredCapability in project tycho by eclipse.
the class P2DependencyGeneratorImplTest method feature.
@Test
public void feature() throws Exception {
generateDependencies("feature", PackagingType.TYPE_ECLIPSE_FEATURE);
// no feature.jar IU because dependencyOnly=true
assertEquals(1, units.size());
IInstallableUnit unit = units.iterator().next();
assertEquals("org.eclipse.tycho.p2.impl.test.feature.feature.group", unit.getId());
assertEquals("1.0.0.qualifier", unit.getVersion().toString());
assertEquals(DEFAULT_CLASSIFIER, unit.getProperty(RepositoryLayoutHelper.PROP_CLASSIFIER));
List<IRequirement> requirements = new ArrayList<>(unit.getRequirements());
assertEquals(6, requirements.size());
IRequiredCapability capability = getRequiredCapability("another.required.feature.feature.group", requirements);
IMatchExpression<IInstallableUnit> matches = capability.getMatches();
assertEquals("providedCapabilities.exists(x | x.name == $0 && x.namespace == $1 && x.version >= $2 && x.version < $3)", matches.toString());
assertEquals(Version.parseVersion("1.0.0"), matches.getParameters()[2]);
assertEquals(Version.parseVersion("2.0.0"), matches.getParameters()[3]);
assertEquals(0, artifacts.size());
}
Aggregations