Skip to content

Commit 601aa68

Browse files
committed
Improve the self product and handling of patches
- The self product induces a p2 task with very restrictive version ranges such that when that p2 task is composed with p2 tasks designed to update the product, e.g., a milestone notification, the product cannot actually update to a newer version. - In general treat patches as optional (and greedy) given that an update is often intended to make a patch obsolete. https://github.com/orgs/eclipse-oomph/discussions/185
1 parent 6ba834a commit 601aa68

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

plugins/org.eclipse.oomph.p2.core/src/org/eclipse/oomph/p2/internal/core/ProfileTransactionImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1039,7 +1039,8 @@ private IInstallableUnit adjustProfileChangeRequest(final IProfileChangeRequest
10391039
VersionRange versionRange = getCleanVersionRange(rootIU);
10401040
IMatchExpression<IInstallableUnit> filter = rootIU.getFilter();
10411041

1042-
IRequirement rootRequirement = MetadataFactory.createRequirement(IInstallableUnit.NAMESPACE_IU_ID, id, versionRange, filter, false, false);
1042+
boolean isPatch = "true".equals(rootIU.getProperty(QueryUtil.PROP_TYPE_PATCH)); //$NON-NLS-1$
1043+
IRequirement rootRequirement = MetadataFactory.createRequirement(IInstallableUnit.NAMESPACE_IU_ID, id, versionRange, filter, isPatch, false);
10431044
rootRequirements.add(rootRequirement);
10441045
if (rootIU.isSingleton() || "true".equals(rootIU.getProperty(InstallableUnitDescription.PROP_TYPE_GROUP))) //$NON-NLS-1$
10451046
{

plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/util/SelfProductCatalogURIHandlerImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,13 +216,17 @@ private ProductCatalog create()
216216
org.osgi.framework.Version osgiVersion = new org.osgi.framework.Version(version.toString());
217217
int major = osgiVersion.getMajor();
218218
int minor = osgiVersion.getMinor();
219-
VersionRange versionRange = new VersionRange(Version.createOSGi(major, minor, 0), true, Version.createOSGi(major, minor + 1, 0), false);
219+
VersionRange versionRange = new VersionRange(Version.createOSGi(major, minor, 0), true, Version.createOSGi(major + 1, 0, 0), false);
220220
requirement.setVersionRange(versionRange);
221221
}
222222

223223
requirement.setName(iu.getId());
224224
requirement.setMatchExpression(iu.getFilter());
225225
requirements.add(requirement);
226+
if ("true".equals(iu.getProperty(QueryUtil.PROP_TYPE_PATCH))) //$NON-NLS-1$
227+
{
228+
requirement.setOptional(true);
229+
}
226230
}
227231
}
228232
}

0 commit comments

Comments
 (0)