diff options
author | Mykola Nikishov | 2018-03-05 03:32:30 +0000 |
---|---|---|
committer | Mykola Nikishov | 2018-03-05 05:40:17 +0000 |
commit | 29b908a23c3f6db08e3ec3903489053bcf8b5160 (patch) | |
tree | 1aca269511a235bc0aa13355326809ef75abb288 /bundles/org.eclipse.equinox.p2.repository.tools/src | |
parent | 610afbb97141f55c5743d5b14535afbc109bed99 (diff) | |
download | rt.equinox.p2-29b908a23c3f6db08e3ec3903489053bcf8b5160.tar.gz rt.equinox.p2-29b908a23c3f6db08e3ec3903489053bcf8b5160.tar.xz rt.equinox.p2-29b908a23c3f6db08e3ec3903489053bcf8b5160.zip |
Bug 423715 - Really preserve legacy MD5 propertiesI20180305-0800I20180305-0300
Workflow to calculate checksums and store them in artifact's
properties assumes usage of two methods from
org.eclipse.equinox.internal.p2.artifact.processors.checksum.ChecksumUtilities:
- calculateChecksums(File, Map<String, String>, Collection<String>)
- checksumsToProperties(String, Map<String, String>)
Two users of these methods, PublisherHelper and
RecreateRepositoryApplication handled legacy MD5 properties in an
inconsistent way. Even more, RecreateRepositoryApplication effectively
ignored legacy MD5 property when recreating artifact descriptor.
Move logic to handle legacy MD5 properties from PublisherHelper and
RecreateRepositoryApplication to ChecksumUtilities'
checksumsToProperties(String, Map<String, String>).
p2 codebase has no tests for RecreateRepositoryApplication but PDE
Build does, specifically P2Tests' testBug265564. This time PDE Build
detected such regression [1], but it would be better to have some test
harness for RecreateRepositoryApplication in p2 itself and not rely on
downstream projects.
[1] Bug 531931
Change-Id: Ic651df754691c25ee824bb444eff251f64f0757a
Signed-off-by: Mykola Nikishov <mn@mn.com.ua>
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.repository.tools/src')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java index a56fdb73d..b67c9a3b6 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java @@ -31,7 +31,6 @@ import org.eclipse.equinox.p2.repository.artifact.spi.ProcessingStepDescriptor; import org.eclipse.osgi.util.NLS; public class RecreateRepositoryApplication extends AbstractApplication { - private static final String MD5_CHECKSUM_ID = "md5"; //$NON-NLS-1$ static final private String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$ private URI repoLocation; private String repoName = null; @@ -123,17 +122,14 @@ public class RecreateRepositoryApplication extends AbstractApplication { newDescriptor.setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, size); Map<String, String> checksums = new HashMap<>(); - IStatus status = ChecksumUtilities.calculateChecksums(artifactFile, checksums, Collections.emptyList()); + List<String> checksumsToSkip = Collections.emptyList(); + IStatus status = ChecksumUtilities.calculateChecksums(artifactFile, checksums, checksumsToSkip); if (!status.isOK()) // TODO handle errors in some way LogHelper.log(status); - String md5 = checksums.get(MD5_CHECKSUM_ID); - if (md5 != null) - // preserve legacy MD5 checksum location - newDescriptor.setProperty(IArtifactDescriptor.DOWNLOAD_MD5, md5); - - newDescriptor.addProperties(ChecksumUtilities.checksumsToProperties(IArtifactDescriptor.DOWNLOAD_CHECKSUM, checksums)); + Map<String, String> checksumsToProperties = ChecksumUtilities.checksumsToProperties(IArtifactDescriptor.DOWNLOAD_CHECKSUM, checksums); + newDescriptor.addProperties(checksumsToProperties); File temp = new File(artifactFile.getParentFile(), artifactFile.getName() + ".pack.gz"); //$NON-NLS-1$ if (temp.exists()) { |