Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMykola Nikishov2018-03-05 03:32:30 +0000
committerMykola Nikishov2018-03-05 05:40:17 +0000
commit29b908a23c3f6db08e3ec3903489053bcf8b5160 (patch)
tree1aca269511a235bc0aa13355326809ef75abb288 /bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse
parent610afbb97141f55c5743d5b14535afbc109bed99 (diff)
downloadrt.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/org/eclipse')
-rw-r--r--bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java12
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()) {

Back to the top