Adding SHA-256 checksums to the build
diff --git a/build.gradle b/build.gradle
index 8442a16..88a03b7 100755
--- a/build.gradle
+++ b/build.gradle
@@ -7,6 +7,7 @@
apply from: "ssh.gradle"
apply from: "md5.gradle"
+apply from: "sha256.gradle"
project.ext.versions = [
jetty: "7.6.11.v20130520",
@@ -14,7 +15,7 @@
testng: "6.8.21",
easymock: "3.3.1",
servletapi: "2.5",
- spock: "1.0-groovy-2.3",
+ spock: "1.0-groovy-2.5",
hibernate: "4.3.6.Final",
slf4j: "1.7.19",
geb: "0.10.0",
@@ -563,6 +564,13 @@
outputDir "$buildDir/md5"
}
+ task generateSHA256Checksums(type: GenSHA256) {
+ group "Release artifact"
+ description "Creates SHA-256 checksums for archives of source and JavaDoc"
+ source tasks.withType(Zip)
+ outputDir "$buildDir/sha256"
+ }
+
if (doSign) {
signing {
sign configurations.archives
@@ -590,6 +598,7 @@
destinationDir file(archiveDeployFolder())
from generateMD5Checksums
+ from generateSHA256Checksums
from configurations.uploads.allArtifacts.files
}
diff --git a/sha256.gradle b/sha256.gradle
new file mode 100644
index 0000000..97f356f
--- /dev/null
+++ b/sha256.gradle
@@ -0,0 +1,25 @@
+import java.security.MessageDigest
+
+class GenSHA256 extends SourceTask {
+
+ def outputDir
+
+ @OutputDirectory
+ File getOutputDir() { project.file(outputDir) }
+
+ @TaskAction
+ void writeSHA256s() {
+
+ source.each { file ->
+ MessageDigest digest = MessageDigest.getInstance("SHA-256")
+
+ digest.update(file.bytes)
+
+ def checksum = new BigInteger(1, digest.digest()).toString(16).padLeft(32, "0")
+
+ new File(outputDir, file.name + ".sha256").text = checksum
+ }
+ }
+}
+
+project.ext.GenSHA256 = GenSHA256.class