This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git


The following commit(s) were added to refs/heads/master by this push:
     new d6e23c1  [MINDEXER-171] Support SHA256 and SHA512 HashType (#253)
d6e23c1 is described below

commit d6e23c1c5209aefb4083b929e89fb8e8ab1b752f
Author: Grzegorz Smardzewski 
<[email protected]>
AuthorDate: Fri Oct 14 17:03:58 2022 +0200

    [MINDEXER-171] Support SHA256 and SHA512 HashType (#253)
    
    Adds support for .sha256 and .sha512 checksum files
---
 .../java/org/apache/maven/index/artifact/Gav.java  |  2 +-
 .../maven/index/artifact/M2GavCalculator.java      | 12 ++++++++
 .../maven/index/artifact/M2GavCalculatorTest.java  | 35 ++++++++++++++++++++++
 3 files changed, 48 insertions(+), 1 deletion(-)

diff --git 
a/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java 
b/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
index fa9c72e..7d87df8 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/Gav.java
@@ -34,7 +34,7 @@ public class Gav
      */
     public enum HashType
     {
-        sha1, md5
+        sha1, md5, sha256, sha512
     }
 
     /**
diff --git 
a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
 
b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
index 383283f..809b628 100644
--- 
a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
+++ 
b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
@@ -83,6 +83,18 @@ public class M2GavCalculator
                 checksumType = Gav.HashType.sha1;
                 s = s.substring( 0, s.length() - 5 );
             }
+            else if ( s.endsWith( ".sha256" ) )
+            {
+                checksum = true;
+                checksumType = Gav.HashType.sha256;
+                s = s.substring( 0, s.length() - 7 );
+            }
+            else if ( s.endsWith( ".sha512" ) )
+            {
+                checksum = true;
+                checksumType = Gav.HashType.sha512;
+                s = s.substring( 0, s.length() - 7 );
+            }
 
             if ( s.endsWith( ".asc" ) )
             {
diff --git 
a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
 
b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
index b12f49f..7021c9b 100644
--- 
a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
+++ 
b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
@@ -560,6 +560,41 @@ public class M2GavCalculatorTest
         path = gavCalculator.gavToPath( gav );
         assertEquals( "/foo/artifact/SNAPSHOT/artifact-20080623.175436-1.jar", 
path );
 
+        gav = gavCalculator.pathToGav( 
"/org/jruby/jruby/1.0/jruby-1.0-javadoc.jar.sha256" );
+
+        assertEquals( "org.jruby", gav.getGroupId() );
+        assertEquals( "jruby", gav.getArtifactId() );
+        assertEquals( "1.0", gav.getVersion() );
+        assertEquals( "1.0", gav.getBaseVersion() );
+        assertEquals( "javadoc", gav.getClassifier() );
+        assertEquals( "jar", gav.getExtension() );
+        assertEquals( null, gav.getSnapshotBuildNumber() );
+        assertEquals( null, gav.getSnapshotTimeStamp() );
+        assertEquals( "jruby-1.0-javadoc.jar.sha256", gav.getName() );
+        assertEquals( false, gav.isSnapshot() );
+        assertEquals( true, gav.isHash() );
+        assertEquals( Gav.HashType.sha256, gav.getHashType() );
+
+        path = gavCalculator.gavToPath( gav );
+        assertEquals( "/org/jruby/jruby/1.0/jruby-1.0-javadoc.jar.sha256", 
path );
+
+        gav = gavCalculator.pathToGav( 
"/org/jruby/jruby/1.0/jruby-1.0-javadoc.jar.sha512" );
+        assertEquals( "org.jruby", gav.getGroupId() );
+        assertEquals( "jruby", gav.getArtifactId() );
+        assertEquals( "1.0", gav.getVersion() );
+        assertEquals( "1.0", gav.getBaseVersion() );
+        assertEquals( "javadoc", gav.getClassifier() );
+        assertEquals( "jar", gav.getExtension() );
+        assertEquals( null, gav.getSnapshotBuildNumber() );
+        assertEquals( null, gav.getSnapshotTimeStamp() );
+        assertEquals( "jruby-1.0-javadoc.jar.sha512", gav.getName() );
+        assertEquals( false, gav.isSnapshot() );
+        assertEquals( true, gav.isHash() );
+        assertEquals( Gav.HashType.sha512, gav.getHashType() );
+
+        path = gavCalculator.gavToPath( gav );
+        assertEquals( "/org/jruby/jruby/1.0/jruby-1.0-javadoc.jar.sha512", 
path );
+
         gav = gavCalculator.pathToGav( 
"/dev/mbien/hintmod/1.0-SNAPSHOT/hintmod-1.0-SNAPSHOT.pom" );
         assertEquals( "dev.mbien", gav.getGroupId() );
         assertEquals( "hintmod", gav.getArtifactId() );

Reply via email to