Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Temp import bundles action #3463

Merged
merged 3 commits into from
Feb 6, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Adjust tests to changed requirements size
  • Loading branch information
laeubi committed Feb 6, 2024
commit b7228e00e694408fb21447118ac0bbb03dcb97eb
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ public void bundle() throws Exception {

assertEquals("org.eclipse.tycho.p2.impl.test.bundle", unit.getId());
assertEquals("1.0.0.qualifier", unit.getVersion().toString());
assertEquals(3, unit.getRequirements().size());
assertEquals(4, unit.getRequirements().size());
assertEquals(DEFAULT_CLASSIFIER, unit.getProperty(TychoConstants.PROP_CLASSIFIER));

// not really necessary, but we get this because we reuse standard p2 implementation
Expand All @@ -97,14 +97,21 @@ public void bundle_with_p2_inf() throws Exception {
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());

assertNotNull(getReqCap(requirements, IInstallableUnit.NAMESPACE_IU_ID, "required.p2.inf"));
assertNotNull(getUnitWithId("iu.p2.inf", units));
}

private IRequiredCapability getReqCap(List<IRequirement> requirements, String ns, String name) {
for (IRequirement r : requirements) {
if (r instanceof IRequiredCapability cap) {
if (ns.equals(cap.getNamespace()) && name.equals(cap.getName())) {
return cap;
}
}
}
return null;
}

private IInstallableUnit getUnitWithId(String id, List<IInstallableUnit> units) {
for (IInstallableUnit unit : units) {
if (id.equals(unit.getId())) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@
import org.eclipse.equinox.p2.metadata.IRequirement;
import org.eclipse.equinox.p2.metadata.ITouchpointData;
import org.eclipse.equinox.p2.metadata.Version;
import org.eclipse.tycho.p2maven.tmp.BundlesAction;
import org.eclipse.equinox.spi.p2.publisher.PublisherHelper;
import org.eclipse.tycho.OptionalResolutionAction;
import org.eclipse.tycho.TargetEnvironment;
import org.eclipse.tycho.p2.metadata.DependencyMetadataGenerator;
import org.eclipse.tycho.p2.metadata.PublisherOptions;
import org.eclipse.tycho.p2maven.tmp.BundlesAction;
import org.eclipse.tycho.test.util.ArtifactMock;
import org.eclipse.tycho.test.util.BuildPropertiesParserForTesting;
import org.eclipse.tycho.test.util.LogVerifier;
Expand Down Expand Up @@ -117,15 +117,27 @@ public void testOptionalImportPackage_REQUIRE() throws Exception {
IInstallableUnit iu = getUnit("optional-import-package", units);
assertNotNull(iu);
List<IRequirement> requirements = new ArrayList<>(iu.getRequirements());
assertEquals(1, requirements.size());
IRequiredCapability requirement = (IRequiredCapability) requirements.get(0);
IRequiredCapability requirement = getReqCap(requirements, PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE,
"org.osgi.framework");
assertNotNull("org.osgi.framework", requirement);
assertTrue(requirement.isGreedy());
assertEquals(1, requirement.getMin());
assertEquals(1, requirement.getMax());
assertEquals(PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE, requirement.getNamespace());
assertEquals("org.osgi.framework", requirement.getName());
}

private IRequiredCapability getReqCap(List<IRequirement> requirements, String ns, String name) {
for (IRequirement r : requirements) {
if (r instanceof IRequiredCapability cap) {
if (ns.equals(cap.getNamespace()) && name.equals(cap.getName())) {
return cap;
}
}
}
return null;
}

private DefaultDependencyMetadataGenerator createDependencyMetadataGenerator() {
DefaultDependencyMetadataGenerator generator = new DefaultDependencyMetadataGenerator();
generator.setBuildPropertiesParser(new BuildPropertiesParserForTesting());
Expand All @@ -145,7 +157,7 @@ public void testOptionalImportPackage_IGNORE() throws Exception {
IInstallableUnit iu = getUnit("optional-import-package", units);
assertNotNull(iu);
List<IRequirement> requirements = new ArrayList<>(iu.getRequirements());
assertEquals(0, requirements.size());
assertEquals(1, requirements.size());
}

@Test
Expand All @@ -160,13 +172,12 @@ public void testOptionalRequireBundle_REQUIRE() throws Exception {
IInstallableUnit iu = getUnit("optional-require-bundle", units);
assertNotNull(iu);
List<IRequirement> requirements = new ArrayList<>(iu.getRequirements());
assertEquals(1, requirements.size());
IRequiredCapability requirement = (IRequiredCapability) requirements.get(0);
IRequiredCapability requirement = getReqCap(requirements, BundlesAction.CAPABILITY_NS_OSGI_BUNDLE,
"org.eclipse.osgi");
assertNotNull(requirement);
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());
}

@Test
Expand All @@ -181,13 +192,11 @@ public void testOptionalRequireBundle_OPTIONAL() throws Exception {
IInstallableUnit iu = getUnit("optional-require-bundle", units);
assertNotNull(iu);
List<IRequirement> requirements = new ArrayList<>(iu.getRequirements());
assertEquals(1, requirements.size());
IRequiredCapability requirement = (IRequiredCapability) requirements.get(0);
IRequiredCapability requirement = getReqCap(requirements, BundlesAction.CAPABILITY_NS_OSGI_BUNDLE,
"org.eclipse.osgi");
assertFalse(requirement.isGreedy());
assertEquals(0, requirement.getMin());
assertEquals(1, requirement.getMax());
assertEquals(BundlesAction.CAPABILITY_NS_OSGI_BUNDLE, requirement.getNamespace());
assertEquals("org.eclipse.osgi", requirement.getName());
}

@Test
Expand All @@ -202,7 +211,7 @@ public void testOptionalRequireBundle_IGNORE() throws Exception {
IInstallableUnit iu = getUnit("optional-require-bundle", units);
assertNotNull(iu);
List<IRequirement> requirements = new ArrayList<>(iu.getRequirements());
assertEquals(0, requirements.size());
assertEquals(1, requirements.size());
}

@Test
Expand All @@ -217,12 +226,10 @@ public void testOptionalRequireBundleP2inf_REQUIRE() throws Exception {
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);
IRequiredCapability requirement = getReqCap(requirements, BundlesAction.CAPABILITY_NS_OSGI_BUNDLE,
"org.eclipse.osgi");
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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void gav() throws Exception {

Assert.assertEquals("org.eclipse.tycho.p2.impl.test.bundle", unit.getId());
Assert.assertEquals("1.0.0.qualifier", unit.getVersion().toString());
Assert.assertEquals(3, unit.getRequirements().size());
Assert.assertEquals(4, unit.getRequirements().size());

Assert.assertEquals(1, artifacts.size());
IArtifactDescriptor ad = artifacts.iterator().next();
Expand Down
Loading