[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[p2-dev] Bug 493193 - MirrorApplication should explicitly use MD5 artifact comparator

Hi there,

When adding support for SHA256 checksums [1], I've found out that the
only place that documents the usage of MD5 comparator in
MirrorApplication is Equinox p2 Repository Mirroring wiki page [2]:

    Adding the argument -comparator <comparator ID> specifies the
    mirroring application should use an Artifact Comparator with an ID
    of "comparator ID" to compare artifact descriptors. The mirroring
    application uses the "MD5 Comparator" to compare the MD5 hash
    property of the artifact descriptors if no comparator is defined.

If no comparator is defined, ArtifactComparatorFactory's
getArtifactComparator(String) will be finally called with null as a
comparator ID. It's an ArtifactComparatorFactory's implementation detail
that it will return the first configured one. MD5 comparator is the only
one available now, but this may (and my I hope it will) change and break
MirrorApplication's expectation.

To avoid such breakage, MirrorApplication declares [3] an explicit
dependency on MD5 comparator. So, when '-compare' CLI parameter is true
but '-comparator' CLI parameter is missing, it will request MD5 artifact
comparator to be used.

Please provide your feedback or just merge [3].

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=493193
[2] https://wiki.eclipse.org/Equinox_p2_Repository_Mirroring
[3] https://git.eclipse.org/r/72234