From 6d666004be0ecf6cfe36180e8585010b1602044a Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Sat, 27 Jan 2018 14:00:46 +0200 Subject: Bug 423715 - Add SHA256 to p2 metadata publishing Extract method to add checksum verifier to processing steps Change-Id: Id3dccedc687afee6faf97a66d21873e98a52717a Signed-off-by: Mykola Nikishov --- .../repository/simple/SimpleArtifactRepository.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java index 9053227f2..69905d5f9 100644 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java +++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java @@ -459,8 +459,8 @@ public class SimpleArtifactRepository extends AbstractArtifactRepository impleme private synchronized OutputStream addPostSteps(ProcessingStepHandler handler, IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) { ArrayList steps = new ArrayList<>(); steps.add(new SignatureVerifier()); - if (ARTIFACT_MD5_CHECKSUM_ENABLED && descriptor.getProperty(IArtifactDescriptor.ARTIFACT_MD5) != null) - steps.add(new MD5Verifier(descriptor.getProperty(IArtifactDescriptor.ARTIFACT_MD5))); + addChecksumVerifiers(steps, ARTIFACT_MD5_CHECKSUM_ENABLED, descriptor.getProperty(IArtifactDescriptor.ARTIFACT_MD5)); + if (steps.isEmpty()) return destination; ProcessingStep[] stepArray = steps.toArray(new ProcessingStep[steps.size()]); @@ -472,8 +472,8 @@ public class SimpleArtifactRepository extends AbstractArtifactRepository impleme ArrayList steps = new ArrayList<>(); if (IArtifactDescriptor.TYPE_ZIP.equals(descriptor.getProperty(IArtifactDescriptor.DOWNLOAD_CONTENTTYPE))) steps.add(new ZipVerifierStep()); - if (DOWNLOAD_MD5_CHECKSUM_ENABLED && descriptor.getProperty(IArtifactDescriptor.DOWNLOAD_MD5) != null) - steps.add(new MD5Verifier(descriptor.getProperty(IArtifactDescriptor.DOWNLOAD_MD5))); + addChecksumVerifiers(steps, DOWNLOAD_MD5_CHECKSUM_ENABLED, descriptor.getProperty(IArtifactDescriptor.DOWNLOAD_MD5)); + // Add steps here if needed if (steps.isEmpty()) return destination; @@ -482,6 +482,14 @@ public class SimpleArtifactRepository extends AbstractArtifactRepository impleme return handler.link(stepArray, destination, monitor); } + /** + * Adds checksum verifier to steps only if isChecksumEnabled and checksum is not null + */ + private void addChecksumVerifiers(ArrayList steps, boolean isChecksumEnabled, String checksum) { + if (isChecksumEnabled && checksum != null) + steps.add(new MD5Verifier(checksum)); + } + private byte[] bytesFromHexString(String string) { byte[] bytes = new byte[UniversalUniqueIdentifier.BYTES_SIZE]; for (int i = 0; i < string.length(); i += 2) { -- cgit v1.2.3