jmeter-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vladimirsitni...@apache.org
Subject [jmeter] branch master updated: PGP-based dependency verification (#488)
Date Thu, 19 Sep 2019 20:53:22 GMT
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new d5cde8a  PGP-based dependency verification (#488)
d5cde8a is described below

commit d5cde8aee0fcefd78d3104943dbf9581874950bc
Author: Vladimir Sitnikov <sitnikov.vladimir@gmail.com>
AuthorDate: Thu Sep 19 23:53:17 2019 +0300

    PGP-based dependency verification (#488)
---
 .travis.yml                  |   2 +
 buildSrc/checksum.properties |  49 ----------
 buildSrc/checksum.xml        |  21 +++++
 buildSrc/settings.gradle.kts |  40 +++++----
 checksum.properties          | 206 -------------------------------------------
 checksum.xml                 | 201 +++++++++++++++++++++++++++++++++++++++++
 rat-excludes.txt             |   2 +
 settings.gradle.kts          |  58 ++++++------
 8 files changed, 284 insertions(+), 295 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index a5a4749..7651934 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,6 +18,8 @@ env:
     # Building source and binary distributions takes time, and it does not verify much, so we skip it in CI
     # However we want to validate licenses
     - SKIP_DIST_TASKS="$GRADLE_ARGS -PskipDist :src:licenses:build"
+    - ORG_GRADLE_PROJECT_checksumFailOn=build_finish
+    - ORG_GRADLE_PROJECT_checksumPrint=true
 
 matrix:
   include:
diff --git a/buildSrc/checksum.properties b/buildSrc/checksum.properties
deleted file mode 100644
index 80ed024..0000000
--- a/buildSrc/checksum.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-
-com.googlecode.javaewah/JavaEWAH/1.1.6=FEA689D1E29761CE90C860EE3650C4167AE9E5ECAA316247BDAFAC5833BCE48D2B3E04E633B426E3AB7EF3A5C9C7FD150FFA0C21AFDCAE9C945CB2BB85F8A82F
-com.jcraft/jsch/0.1.54=97EC6DE64F4870EE3C84F883BD3664562BFD600CA9F3364966E7DBEE7E4E8520647C03F9F81D6808E330052CA1333E37F497D6252CD26FE721A90F573CBE2036
-com.jcraft/jzlib/1.1.1=223AF0806A19FD25E2496C980B9824B7612528013EAB9E7E21161ACFE81A6F808D3D65148BDAA794C9AB73C518F6B49AA7A69107C9BC0D66D6F8E78C39964F8F
-org.ajoberstar.grgit/grgit-core/3.1.1=B856459DBAD417987ED640ECCD77DEE8E16589B75741BE4E985A028BC1ECEE71D1E3FE75E2BDDFB5342D54D497C41F9368F99C5FD77892C4A48E46EA37E114C8
-org.ajoberstar.grgit/grgit-gradle/3.1.1=B168B7249D83A2C156BD7C3F59E1DCA79ABEB3AB9F32AB548C3A429814FA5095E678839EB269DF332D0F003A7CAFAF3D69E07C0B8B123A4A8EA2F32C56A6C608
-org.bouncycastle/bcpg-jdk15on/1.60=8CB407B096C218152D427CAFE1DE55CA7E77555D688492F84477678CDB6B0DF14DD7BC3C64B7B93FEDBB52EDB1384CC97EF96A9D87162C8997C8DC49D538E565
-org.bouncycastle/bcpkix-jdk15on/1.60=D44CDAC998A0D804AC452725C9E84B7D517C838CC6770CECDB214E1DF50EFC5EC2D067A91A5009F1316A5635CF7A1D213F2EE2A4E7497C66E1C7BBD5D2D4445F
-org.bouncycastle/bcprov-jdk15on/1.60=1C08D82349E333720C08FC467FF6489B14B8633A09019BF8BB5E6A3C426DFAE6DCC415648FE1FB4A2DA8631548F4947AB6CA1BC90B3190A05040F4D2EB271A10
-org.eclipse.jgit/org.eclipse.jgit/5.3.0.201903130848-r=75C66DB40AB4D7C0765666E1F65633E6AC07A94898F9120BC132DAAEFB143866385CE3538CA0383AF4BABB70C1F69A387D737C60B6006D24FD2A8E177C8E127D
-org.gradle.kotlin/plugins/1.2.8=8EA1B7517CCCC6DD1A41CF0E88613F14548AF9052A0A8E1C68004F3B58A1D26B47A8BDA2D9F663213F59FCDBCEC4BE1A596D8B0B50013C7DD0276140D9DE3391
-org.jetbrains.intellij.deps/trove4j/1.0.20181211=1C805EFE0DD5700941D20F02D6BA8DD79C54BFFE3B0147D82AF9B7525DBDCC97EEE5B3258CBCE161A39A699C28574BA43BA401DBF3AD3D73600293146949D512
-org.jetbrains.kotlin/kotlin-android-extensions/1.3.31=4F12351F0D5C76A0A2AC632900011796E3407A3EC1BB47E292C9AB1A7860FFDBE97CB0148E01FF8B48F9DC2FBE4ECDEBD2E534FCBFC11887A8844CA4E15969D4
-org.jetbrains.kotlin/kotlin-annotation-processing-gradle/1.3.31=B6111418E8AAAC28E431EE50B25E08A79C2A687B909A059266AFF294EB00BCC631194BBA6EB2658725A5D42D1C393BC1236933F35AF7988F51845B02239E0F39
-org.jetbrains.kotlin/kotlin-build-common/1.3.31=D4FD475E78AF3B9D6802EE5E02996C37415D2EBAD50ACDE4C08F59EB7377ECE02ECC233D24FBFAE5BC7ACFD9E0C224E3AC59629BF62EF0B8C85C13F41E033172
-org.jetbrains.kotlin/kotlin-compiler-embeddable/1.3.31=9A02D07901B60508DBDA0EAC4B77EB0277EB2C2A9D5D12214D70033BD5DD998D93FF55CBC8E2AF9DD76DC98C6C93FA782BA9754A089878111BAE95540ABCB631
-org.jetbrains.kotlin/kotlin-compiler-runner/1.3.31=E1F54D04A06375F8C63752048D465FBC541FAAE1C566E4CB69AAC15D72BE99A2326C6E6FA7FEBB52D99140D057C276413F33CCB693ADED4322B2F0C47B0A3AD8
-org.jetbrains.kotlin/kotlin-daemon-client/1.3.31=C11140F18A4740F81B2CA3A6A91FCD64FCDBAD6FE9EBA4A936D12FEA063D46700CBB3410CC103856D36D7A477071284CF0C57A829D34EC84C0E03EDE61714FCD
-org.jetbrains.kotlin/kotlin-gradle-plugin-api/1.3.31=5FD21B25A8392863996555F5F79ABBD3FACE12B7DABC8D9254E00B6ECA490F9FD39921F70C440D177025C4B5BDA171B815F2E2D4C0397D0A9B4E1400FF2D0A58
-org.jetbrains.kotlin/kotlin-gradle-plugin-model/1.3.31=253FCF64208F43F0B0C23853D4008E54F220F03505EAE78EEA9D638AC366D6AF7DE4988DF3CB64C327B22AEA643E275C9C4829C61226F756B686E59D2AA6ED51
-org.jetbrains.kotlin/kotlin-gradle-plugin/1.3.31=DEB2B99A9B8A03E867CF13AF0FC0FBAF383079D756B8CE71F3FDA0C7C56B4F175E2628A987F26A9F08F5C45855F0B0897E906F324D1F7629D3479F0172AAFA31
-org.jetbrains.kotlin/kotlin-native-utils/1.3.31=7C48BC3942597D5D0A9697E6F788C6F1F11BF8CD9EC7EA24B96DEFD8360B932E6CF1673FA518909F1107A1FFEB52BA02F150890E54FB5C056132E4267F0B7133
-org.jetbrains.kotlin/kotlin-reflect/1.3.31=E8229A254AF9FC0BD0D0D7FADD5F7D9F3C66A5A1B67E899A287DAAB84ED1A1B8C42E9107A4E9AD8571E05744DBBC44A3129FD2ECD0565B0E476A6E64115935C8
-org.jetbrains.kotlin/kotlin-sam-with-receiver/1.3.31=856D9098AAB66CC8611D56566E9E0691C3AA3463F24311FFEED492C8FB34FF6EE6A314F5BCE3A2F5662AA3BC4453A0412E3ECCE68C23CBD812BA0010AA68949B
-org.jetbrains.kotlin/kotlin-script-runtime/1.3.31=89D1F00F20E6ED727C6161B6E0AB32D65705D07E21C75D181FDFD39DD40069DB9710FC831C9F4CF50DE3B4C96A8C9DDB5CE5A9DCCA094B81BE58D098D7D84217
-org.jetbrains.kotlin/kotlin-scripting-compiler-embeddable/1.3.31=3B27F42E75702DE44CB6CCC4E64D74CB801A406208311F2F2CC0E3022BE9BD4AC12F6C211DDB730E92746A6F57F96E232B4582B6EF1577795D3E749C74CED0EF
-org.jetbrains.kotlin/kotlin-stdlib-common/1.3.31=53DF3352743FF6756CA8A5A63EE04DE27B9FA873204F89823C4906CFE33BC5FA91899B35B6EDADF852F7DB2C300D56FCB2D32AE4606EFBA4E3BFF32BEED5531
-org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.31=9500F884AA93069DD0DCBBA231CE7CAD76BD9B71B2FA51573842AA9B730192A13B813402DF9DBC6956B7BB35ACC23072FBF04A93E0A98002500FBBE35E8894E5
-org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.31=16FE610D51CB610DBF1B1AAC490E159559F5172B29A04288AD18E95B68F462BE1A386B3F3B0D93AD4F7F3A1E5CD9498855571D9A24A0F5F6AD7D6FF20FFDDFD0
-org.jetbrains.kotlin/kotlin-stdlib/1.3.31=1DE7F0A1E0920D179DD3677D78B8D4AB009F04FED8919584A4190D4B69C2D4754454613A91BD41A66DA45E48F9E23B6AC5BFFF0B409F81BE1746556298AD698A
-org.jetbrains/annotations/13.0=5622D0FFE410E7272E2BB9FAE1006CAEDEB86D0C62D2D9F3929A3B3CDCDEF1963218FCF0CEDE82E95EF9F4DA3ED4A173FA055EE6E4038886376181E0423E02FF
-org.slf4j/slf4j-api/1.7.2=BFE12C722ED57FAA3E26FEF214D95B9BDD2192742901920954979926D51E7B1BF0F61EA538F858328F4D6A306AFFECDCEF9D52452530CD2FE5C03552350C0EA0
diff --git a/buildSrc/checksum.xml b/buildSrc/checksum.xml
new file mode 100644
index 0000000..64fa16f
--- /dev/null
+++ b/buildSrc/checksum.xml
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='utf-8'?>
+<dependency-verification version='1'>
+  <trust-requirement pgp='GROUP' checksum='NONE' />
+  <ignored-keys />
+  <trusted-keys>
+    <trusted-key id='72475fd306b9cab7' group='com.googlecode.javaewah' />
+    <trusted-key id='a50569c7ca7fa1f0' group='com.jcraft' />
+    <trusted-key id='c84125c13bf6f2f2' group='org.ajoberstar.grgit' />
+    <trusted-key id='b341ddb020fcb6ab' group='org.bouncycastle' />
+    <trusted-key id='5b05ccde140c2876' group='org.eclipse.jgit' />
+    <trusted-key id='bcf4173966770193' group='org.jetbrains' />
+    <trusted-key id='379ce192d401ab61' group='org.jetbrains.intellij.deps' />
+    <trusted-key id='98fe03a974ce0a0b' group='org.jetbrains.kotlin' />
+    <trusted-key id='2c7b12f2a511e325' group='org.slf4j' />
+  </trusted-keys>
+  <dependencies>
+    <dependency group='org.gradle.kotlin' module='plugins' version='1.2.8'>
+      <sha512>8EA1B7517CCCC6DD1A41CF0E88613F14548AF9052A0A8E1C68004F3B58A1D26B47A8BDA2D9F663213F59FCDBCEC4BE1A596D8B0B50013C7DD0276140D9DE3391</sha512>
+    </dependency>
+  </dependencies>
+</dependency-verification>
diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts
index 2108987..7d5f702 100644
--- a/buildSrc/settings.gradle.kts
+++ b/buildSrc/settings.gradle.kts
@@ -40,7 +40,10 @@ for (project in rootProject.children) {
 
 buildscript {
     dependencies {
-        classpath("com.github.vlsi.gradle:checksum-dependency-plugin:1.19.0")
+        classpath("com.github.vlsi.gradle:checksum-dependency-plugin:1.28.0") {
+            // Gradle ships kotlin-stdlib which is good enough
+            exclude("org.jetbrains.kotlin", "kotlin-stdlib")
+        }
     }
     repositories {
         gradlePluginPortal()
@@ -48,8 +51,18 @@ buildscript {
 }
 
 // Note: we need to verify the checksum for checksum-dependency-plugin itself
-val expectedSha512 =
-    "D7B1A0C7937DCB11536F97C52FE25752BD7DA6011299E81FA59AD446A843265A6FA079ECA1D5FD49C4B3C2496A363C60C5939268BED0B722EFB8BB6787A2B193"
+val expectedSha512 = mapOf(
+    "43BC9061DFDECA0C421EDF4A76E380413920E788EF01751C81BDC004BD28761FBD4A3F23EA9146ECEDF10C0F85B7BE9A857E9D489A95476525565152E0314B5B"
+            to "bcpg-jdk15on-1.62.jar",
+    "2BA6A5DEC9C8DAC2EB427A65815EB3A9ADAF4D42D476B136F37CD57E6D013BF4E9140394ABEEA81E42FBDB8FC59228C7B85C549ED294123BF898A7D048B3BD95"
+            to "bcprov-jdk15on-1.62.jar",
+    "17DAAF511BE98F99007D7C6B3762C9F73ADD99EAB1D222985018B0258EFBE12841BBFB8F213A78AA5300F7A3618ACF252F2EEAD196DF3F8115B9F5ED888FE827"
+            to "okhttp-4.1.0.jar",
+    "93E7A41BE44CC17FB500EA5CD84D515204C180AEC934491D11FC6A71DAEA761FB0EECEF865D6FD5C3D88AAF55DCE3C2C424BE5BA5D43BEBF48D05F1FA63FA8A7"
+            to "okio-2.2.2.jar",
+    "2ABC83FF0675D69697D4530D4853411761FE947E57EB8D68F6590DC2BFF0436906ADE619822EEE5F80B0DA28285FBE75FDCB50B67421DB7BF78B34CF6A613714"
+            to "checksum-dependency-plugin-1.28.0.jar"
+)
 
 fun File.sha512(): String {
     val md = java.security.MessageDigest.getInstance("SHA-512")
@@ -58,17 +71,14 @@ fun File.sha512(): String {
     }
     return BigInteger(1, md.digest()).toString(16).toUpperCase()
 }
-//
-val checksumDependencyJar: File = buildscript.configurations["classpath"].resolve().first()
-val actualSha512 = checksumDependencyJar.sha512()
-if (actualSha512 != expectedSha512) {
-    throw GradleException(
-        """
-        Checksum mismatch for $checksumDependencyJar
-        Expected: $expectedSha512
-          Actual: $actualSha512
-        """.trimIndent()
-    )
-}
+
+val violations =
+    buildscript.configurations["classpath"]
+        .resolve()
+        .sortedBy { it.name }
+        .associateWith { it.sha512() }
+        .filterNot { (_, sha512) -> expectedSha512.contains(sha512) }
+        .entries
+        .joinToString("\n  ") { (file, sha512) -> "SHA-512(${file.name}) = $sha512 ($file)" }
 
 apply(plugin = "com.github.vlsi.checksum-dependency")
diff --git a/checksum.properties b/checksum.properties
deleted file mode 100644
index 8d73f41..0000000
--- a/checksum.properties
+++ /dev/null
@@ -1,206 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-
-antlr/antlr/2.7.7=311C3115F9F6651D1711C52D1739E25A70F25456CACB9A2CDDE7627498C30B13D721133CC75B39462AD18812A82472EF1B3B9D64FAB5ABB0377C12BF82043A74
-bsf/bsf/2.4.0=CF2FF6EA53CD13EA842CAD398F1BE24539BEC68A5CBBD088492ADAB50BC782CDE6D9F4C0B6A24DEAEEE537809C90631C43F9A680FF2826C28CCF1B39380954E3
-cglib/cglib-nodep/3.2.9=429F5E63C33F3E65615243AD24C27C86FD1ADE3C5DAA0A64F9FAF8BCE1E59ED9A6D4EDC348281CBB8FD7AE10C01FC2E3716FF74571B14A31A37DDE1DE06E2A3A
-com.fasterxml.jackson.core/jackson-annotations/2.9.9=FD7E441FBB6A807B1841497BBF6B4950CA11A48FAD19B83BAD6DA691A9878A8B03F28EEF11DAC7EF160CB9535C999D7BBF49DA155C165C205AEB7DD81C111F28
-com.fasterxml.jackson.core/jackson-core/2.9.9=D8BEAC9E71444BC795C9D99308EAD3284A39AA161F825708DA7DBDFCE410D099C0BBC76C31C27ADAD540CF3BCCF6826D539FCB157923EFAE84B10B3778B920A9
-com.fasterxml.jackson.core/jackson-databind/2.9.9.3=B69ACA11BAA7E8E45A4E584ADA480465797F4722C266A1711F224F91F1051683526D59654771D83DE54A9CCE0786C5613A0256645BB73964DF9E47015AD8931B
-com.fifesoft/rsyntaxtextarea/3.0.2=A210EC77304E7B0B175532BD7E5C2A46823C0D93B359E174782B548087B48A0386D3CAE566877ACFB6252E6B4F28C25DAA6B8074A55BC54A296FC4AC554B0DC1
-com.github.ben-manes.caffeine/caffeine/2.6.2=6521F1BFEFCD6E2991A7D017BBA8D751C5BA4694D335B61B4E732A2B795C748532BE7A5A63107B6BB70F816CEEEA4659B77EBAC68AD02C44CD813C478F759A06
-com.github.bulenkov.darcula/darcula/e208efb96f70e4be9dc362fbb46f6e181ef501dd=80F3335D8EA3FB3FF07A12A79C958C4E3F8BB542511C52825A8B3694AC96F027E24396CE9EDCEFA44EE93B5CBED4E4AED4575E6AAED56F363BAE92C52EE85D22
-com.github.spotbugs/spotbugs-annotations/3.1.12=8B4EABA6A44232B3E62F37EAAC146C2BD2222D4AB1BC27A8DE80130D06D22AB4383C62CF05F5A7FFB7E162B81490C81B1E84D42C6A6EC5A379221A8435EDCAED
-com.github.spotbugs/spotbugs/3.1.12=F27658417C5EBB620F32353DE4ED0703856E749C0739D3E975AF3F5D295C778D9A0D8057D90EC6614AEC17B5104BDFA594FBBBA39BA276FF47CAA25F2FDAC4E1
-com.github.vlsi.gradle/crlf-plugin/1.17.0=473E13699DDDE54F2B7245BB33A47346E907179F7C528751B0BB730005BCAF3FFCDBE3F1333655D635B0EE2683FC8B24F2BD598922F9DA3DA03F8EC25A373AA1
-com.github.vlsi.gradle/ide-plugin/1.17.0=4321949B8201BA4F0E1F0D977397349C34DF84E4632DAFEE6F221F9AFA176FDD9497C9AFBE7F734E3423BE25351DCA7551F93181CC99A99A24EAAEB43BCBD544
-com.github.vlsi.gradle/license-gather-plugin/1.17.0=E1EE1396B2838E03FB7C84667BD473BAB558569EB5F1C4CB9B7C6806FDC5C7DABC41AAB1705A0FE73FBDB11624F11A15D7394232F59AC1039EFA197FCB495E67
-com.github.vlsi.gradle/stage-vote-release-plugin/1.17.0=575A87846F61717B2F220A485B67D253644980A0DD57C8EBD3F07C9D66E9B463115897BFE3364216445CAB4AA09EA4B27070ABA5BE7620A632A95BE3F414D464
-com.google.code.findbugs/jsr305/3.0.2=BB09DB62919A50FA5B55906013BE6CA4FC7ACB2E87455FAC5EAF9EDE2E41CE8BBAFC0E5A385A561264EA4CD71BBBD3EF5A45E02D63277A201D06A0AE1636F804
-com.google.code.gson/gson/2.8.2=C0C6DC5D609950A6EE3C7E5EA493DA0E6906A18F38FC5A23CC792C1E09E0E892344B4AE2DD35879D6101533E485784E1ECA5052E0AEF44A724CA8A8EE4D73F04
-com.google.errorprone/error_prone_annotations/2.1.3=BD2135CC9EB2C652658A2814EC9C565FA3E071D4CFF590CBE17B853885C78C9F84C1B7B24BA736F4F30ED8CEC60A6AF983827FCBED61FF142F27AC808E97FC6B
-com.google.errorprone/error_prone_annotations/2.2.0=8F5F13FAC4C40D680A1F062C609AA598E7585684AF37D695357738935FC0683DDCB94C880DDDD03E78B1DB071C2E5CEBD054A061F8F24322C5FFA43ACA34A859
-com.google.guava/failureaccess/1.0.1=F8D59B808D6BA617252305B66D5590937DA9B2B843D492D06B8D0B1B1F397E39F360D5817707797B979A5BF20BF21987B35333E7A15C44ED7401FEA2D2119CAE
-com.google.guava/guava/18.0=C84AD9F1646B52B6E19F55C3C63936C6DBE59597D53CEC6855F85E21AD26F9BC27B0C541B793FAB117E2359B1BF3FCD59B222255345FCE858BC03CC48CBFFD65
-com.google.guava/guava/25.1-jre=429CEEEC0350BA98E2B089B8B70DED2EC570C3A684894A7545D10592C1C7BE42DACD1FAD8B2CB9123AA3612575CE1B56E1BB54923443FC293F8E9ADEAC2762EE
-com.google.guava/guava/27.1-jre=5C32A58148C3B91577CD6D335D61A1994041A2A5C77A240303BA6E786C895336400F6FD449EAB0802594BF47C17985C5587AB87C3C4B628BFC1D7090DDC0B006
-com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava=C5987A979174CBACAE2E78B319F080420CC71BCDBCF7893745731EEB93C23ED13BFF8D4599441F373F3A246023D33DF03E882DE3015EE932A74A774AFDD0782F
-com.google.j2objc/j2objc-annotations/1.1=A4A0B58FFC2D9F9B516F571BCD0AC14E4D3EEC15AACD6320A4A1A12045ACCE8C6081E8CE922C4E882221CEDB2CC266399AB468487AE9A08124D65EDC07AE30F0
-com.googlecode.javaewah/JavaEWAH/1.1.6=FEA689D1E29761CE90C860EE3650C4167AE9E5ECAA316247BDAFAC5833BCE48D2B3E04E633B426E3AB7EF3A5C9C7FD150FFA0C21AFDCAE9C945CB2BB85F8A82F
-com.helger/ph-commons/9.2.1=C82A4C6AA1702B95049A8348B88F3A5ABC5B4781A796328E46E701F57C0DFEAC289441D332E1D730EE46107AB24AB106CDE2D39BB8BEFAFAC123D53382B85A40
-com.helger/ph-css/6.1.1=EED6A6C680424C4337A8FFE8431F5E042841FBACE3529622125837F9E4D89B3DA8675BD74799957384CAC77ACB9F0AE031BAB3883CD87291E03ED823EDE8EC31
-com.jayway.jsonpath/json-path/2.4.0=B55B30CF85CA12E6A492FD48D4B6BB0B1F3BA610C195AA1A36EDA2A80E24BF7688A6A802362D398108E822F6DCB7B713CF421BB4208897FC4F5CC7B8B9B4C97C
-com.jcraft/jsch/0.1.55=B6827D8DE471682FD11744080663AEA77612A03774E2EBCC3357C7C493D5DF50D4EC9C8D52C4FCC928BDFDD75B62B40D3C60F184DA8A7B8ABA44C92AFECEE7A5
-com.jcraft/jzlib/1.1.1=223AF0806A19FD25E2496C980B9824B7612528013EAB9E7E21161ACFE81A6F808D3D65148BDAA794C9AB73C518F6B49AA7A69107C9BC0D66D6F8E78C39964F8F
-com.puppycrawl.tools/checkstyle/8.22=880C32F20AA476BD2209FF77AE04BC65427BA2D47401EC9372F1385EA43BDE9055539249DB2D8429325D2EDA0BB62152C9E3F21C25184A04047649A5C4B61098
-com.sun.activation/javax.activation/1.2.0=B4CBDD8FD1703E4B2E1E691DB78FBCF2232D836F740D1821C4C191A14F9472508E27A40D06E4B6B153964AF68032959C22945BA169A0CA4018B7748162F420A6
-com.thoughtworks.xstream/xstream/1.4.11=ACEBA38FE0239A8D873D276023F9EFD1C79CE8C6651BB7314A06684758AABFCDB1E89A71B26FA596C9491BDC3D4BBEEF3819683D65002E584CD4728A03C2DE0B
-commons-beanutils/commons-beanutils/1.8.0=AA6C0E0A8F0422964025B36FC2AC8FCA04C39EA697C7DFCD265CA06FC3070F1F639083C7EDC00B2A42D8823AB4375023C6BCB198BB606D56DB0AA67FB1A671D1
-commons-beanutils/commons-beanutils/1.9.3=F19B50135FCF20D9B4FB193CC651C97081D389EF320A691B51637809E7E99ACBCA2B28BEEB60F0997525FDE923125FEDEACF7FBE17D203F97F1C3A66DC84D3CA
-commons-cli/commons-cli/1.3.1=383FF22040787D7A27E18B414892DD204BA0F9D75E43EEE775C1276D6DD6EA2A38FC349EDEC1B2BD332FB0BD324DCC8CCCE084B98D47BCAF8AA443773FABF3DE
-commons-codec/commons-codec/1.11=D9586162B257386B5871E7E9AE255A38014A9EFAEEF5148DE5E40A3B0200364DAD8516BDDD554352AA2E5337BEC2CC11DF88C76C4FDDE96A40F3421AA60650D7
-commons-codec/commons-codec/1.6=752FCA09371E0E228432155533A9B84F0442CAFD7F25EBF0C6C2024D541FBBA80882E71AEE047EC94CD22C0D8114942E967652913412F5CBCF9B816C0E1FC1AD
-commons-collections/commons-collections/3.2.1=8D0AA0E4E328C2E391D4D972F361A19FF085F508CB0478F5967280953ABD3520EE92CC1D19B21CB4E29E4A7BC557487DDBAEE9807B751824241269367B9E92CB
-commons-collections/commons-collections/3.2.2=51C72F9ACA7726F3C387095E66BE85A6DF97C74B00A25434B89188C1B8EAB6E2B55ACCF7B9BD412430D22BD09324DEC076E300B3D1FA39FCCAD471F0F2A3DA16
-commons-io/commons-io/2.2=AD08841278FEF6F1EBCB2483059882175D30481C75FAE916F768D08087BF6159C7D3F4A7EF382F45EC2294235BBCB596C60B1FA98AA04E9DFD8FBAFBFA2CAD2C
-commons-io/commons-io/2.6=4DE22E2A50711F756A5542474395D8619DCA0A8BE0407B722605005A1167F8C306BC5EEF7F0B8252F5508C817C1CEB759171E4E18D4EB9697DFDD809AC39673F
-commons-lang/commons-lang/2.4=AE35B761D16F4327CDB6FDA16789166FC67020EFD71FD2CC3395B97444F439DFCC7EEE948A3EFD3B02440416CAEB873417D95DB6A2B16F4EF198DE9D1AFBC045
-commons-lang/commons-lang/2.6=4A5A3DBE4941C645E2CCA068CCA5C1882CFE988B02E7CD981D1E51784900767D1DEAB0E0E0566F559C9FCABB4A180E436D5BB948902D4F4106F37360466AFB42
-commons-logging/commons-logging/1.0.4=C8D2D39A60ADCC49091D393DAF30473D1776E4B6B09BB86639171F660833A17AFBDC9F3E85843093535DA16FA664CD7CD4CA38F54E141018DD1B78DE681AD668
-commons-logging/commons-logging/1.1.1=470323A2EE38BE1B7FF8C84F1F5A5F8C4EC2CEB6B0649FAA7B961F111865877DBE125409F72B1C52C7F18AA89E3469635C49FF4B83F86CC2F2EB2CC5562F9BFF
-commons-logging/commons-logging/1.2=ED00DBFABD9AE00EFA26DD400983601D076FE36408B7D6520084B447E5D1FA527CE65BD6AFDCB58506C3A808323D28E88F26CB99C6F5DB9FF64F6525ECDFA557
-commons-net/commons-net/3.6=DBA414CEA9FB4B47DFE6D20C347BD91052185DD958996BFDD1E709F66B5FA7812EBB0DAD80C47E72BCC0075B3B5526C705216EFE771CAC1CC53B2F7923124FAF
-de.marcphilipp.gradle/nexus-publish-plugin/0.2.0=36DFDADA6745D7AF5CF2807E197AFD111073C30536CB29C531522F73D4086C2A7AB70756975FEC290657012B8C9090414F76811731A920D8BC4EEC1DEC0AB2DF
-dnsjava/dnsjava/2.1.8=A4BCB8BBB43906F42FAF1802C504CCC9C616E49AFD5DD7DB77676D13AAED79A300979FFC2195B680A9C6D5F03466B611B6F1338D824099816AA224B234760F4B
-gradle.plugin.com.github.spotbugs/spotbugs-gradle-plugin/1.6.10=E7486B32EF6C9C14FE879814DA5F06CA6ECABF47195063A93E6FC8CD10119244C5A7BC3C71A4760CCE3AFFA9E9736336D345D8ED84EB65153C15683FA6529D92
-gradle.plugin.org.jetbrains.gradle.plugin.idea-ext/gradle-idea-ext/0.5=4A6B7FA6CD8C6FA82A517C396510E408F1C6FAB5FF6D4C68008F80718F05E5943755AA240F329C95661CCB0231114DD0F6D7C38EFBF73EE6B1ECC70850F40F7E
-info.picocli/picocli/3.9.6=3DDB7ABE7AFD0AFF754BE5616481C589E1354692BE583179503DDFD5F542A7F520960A6FB0D5320E171AE02E3A01B9E6B51E298B74518F8BF690EA9E9C7C8162
-io.burt/jmespath-core/0.3.0=86D1AAA40CB33172E7E3302A1031BCE34DB3B321101FFB268BF63A7FDC160E50E2F9B1AE2001D45D1904BEB941DDA74771DE1177B18BBC34146C0B5D6616D52E
-io.burt/jmespath-jackson/0.3.0=2CCE30F10B393431B4E316CD6467983AFD0970332C25A27F38CCBA7D79BA30BD8F2567C8C35945D40D95D9C7D1C8B3EA22EA3DC81E8442E666CD6629D0847640
-io.codearte.gradle.nexus/gradle-nexus-staging-plugin/0.20.0=E59970ADFA3343654A7A879299BADA0915D89F3A2FCCA53AACD26EEFE621D7EC598019CC32E9C38DDD35AC1B2E40B5167801A34E39E00FE72755D5FBB16236DD
-javax.activation/javax.activation-api/1.2.0=8EE0DB43AE402F0079A836EF2BFF5D15160E3FF9D585C3283F4CF474BE4EDD2FCC8714D8F032EFD72CAE77EC5F6D304FC24FA094D9CDBA5CF72966CC964AF6C9
-javax.mail/mail/1.5.0-b01=801A910F70DD743982872DCDEA46C24C6378E82C2CD2D970902A9CE5864191D3847BCFF6D5B81AEB89BABF056A30A70A03AA5687586D52CBFAAEAE3A5D6649F9
-jaxen/jaxen/1.1.6=6BD11529D6DFCB27DDD485C8DA2440D3686CB61693A9461833A2BED49407343DF4BA707F45164A6E69B78979581D91FBF0F6C5EAB28653DCFA724AFC89529778
-jcharts/jcharts/0.7.5=3953900BEBE38F4242499D106D59425F54B73C0478C3050F0DC0917D5C36CC35F94CCFEA96E6BF85E9B1282BD572F55AFEF1B485F81F5ED9493CC4D3828F5A0B
-junit/junit/4.12=5974670C3D178A12DA5929BA5DD9B4F5FF461BDC1B92618C2C36D53E88650DF7ADBF3C1684017BB082B477CB8F40F15DCF7526F06F06183F93118BA9EBEACCCE
-net.jcip/jcip-annotations/1.0=CB312B3F571D91EF183C119D878F50464FFD97F853B7311CBA386463F295E8B7B3A5A89ED4269A045CACD5AA7CB4C803D4882854A0FDDEFA9BBC28C72AA6C786
-net.minidev/accessors-smart/1.2=39FE6A5EBD2AE2D33D8737C8407A8CAA4F6A62CE2057D726BB82496D35104B76F230BBB9721E1DB5F535FEFA3D70EE88C0A5A5E4A3F1266D7317CAE897AD0882
-net.minidev/json-smart/2.3=977FFE05C17965B403A60471EB6C160103263BBE454E942D67D4D725E1826B504DE6C15038FF01EA90632BF9AD8A31B47C6662613BB905F020EFFA68C44D6F9A
-net.sf.ezmorph/ezmorph/1.0.6=16D30BE564723B74F312B4E7D06F349370FB6726B3162778C869CD723ECA2A40C4972C2757B3E107E1820CEC0D70B0BD2B96EFCD466518FC64495F7AEF97967A
-net.sf.json-lib/json-lib/2.3/jdk15=ED6E95BF555AD3193B527258972DAFABD73745D993DA0CECE486E34A471D080850D201864026F4F41CA0982926C264C6E6CC55D91F000CDFD5D09EE3F306735C
-net.sf.jtidy/jtidy/r938=4C6CC198BD8CDE62B6CC9091ED95A4114EAAD035C196317C891F8F2263B28649A33B1F26F74F2B043A17CEC2A3D025EDA81ACF317FDF2D04641FA646E486B345
-net.sf.saxon/Saxon-HE/9.9.1-1=DEED3B397975A8419C903B61A1FC54C1E3899506B6D8DD562425DFD776690C51A8BB5326B821AFA4892670F410688255506CB0BFEB8F7532B84914A11490CCB3
-net.sf.saxon/Saxon-HE/9.9.1-3=6580E24632116449CB420F8D854FA0AE9CD61E3029586922F658D611EF3E735EC8D62A80A0A102C31C020C8EF6038E8817AB4D045E6B9A7B2FF67885CB361FED
-net.sourceforge.nekohtml/nekohtml/1.9.16=54167FD0D2A01E393BDF00C4553144ED53935643F0B278C052AAD29CC3DAC3343FE0D181437FB9F705B7BB46321ACD0F4E46159874AB17C055183CC2A2375DD
-org.ajoberstar.grgit/grgit-core/3.1.1=B856459DBAD417987ED640ECCD77DEE8E16589B75741BE4E985A028BC1ECEE71D1E3FE75E2BDDFB5342D54D497C41F9368F99C5FD77892C4A48E46EA37E114C8
-org.ajoberstar.grgit/grgit-gradle/3.1.1=B168B7249D83A2C156BD7C3F59E1DCA79ABEB3AB9F32AB548C3A429814FA5095E678839EB269DF332D0F003A7CAFAF3D69E07C0B8B123A4A8EA2F32C56A6C608
-org.antlr/antlr4-runtime/4.7.2=F057286FA0F7E3D0CCA414A348893577288882B887C0278DD0C012447D3C48AC150B30E023F886F038C6B0A144329FF927A3869AF5534D23B279CF88F302E0BB
-org.apache-extras.beanshell/bsh/2.0b6=A39321A99A8A619A48B65752F6EE6B8F11D3B28EBB051082EC70A70A0D5041E83D144378DF191929E3D6562BD5EE4C4F1CCADB0BA42055529D18800A41D8AE18
-org.apache.activemq/activemq-broker/5.15.8=1092F81D61BCD0137130C4A553B028B021D02EEE9E0B1E5B38C9478204DE1174B9AC5399222BD49F0E5E458AE1432CECDCD1B3412A849986AEB14DA766C6189C
-org.apache.activemq/activemq-client/5.15.8=FE9A38BE230C9F034C53F0C6416B2C668C7DDB975B693E3A087FC1433200CBC717116841981EA0D3D6A0C88F220ADAEB4CA248DD7D243244D84F12EA7320FC28
-org.apache.activemq/activemq-jms-pool/5.15.8=4606604A8C2F1C596CA9C3294A8218D022FA30454FBFD61863CA0C6CF4398B069FC90CEA89201C4CB2B2AD87C171603095AC9F46EE142C089755429BDEB49344
-org.apache.activemq/activemq-openwire-legacy/5.15.8=8B730DA2BF0755A7C486CA5C495F2F43C3C043F6E33C0FF34BE31C46403B91BCE87864AF44CCD8D305ECA1D778736A84238A7541AE3F61718F7863E1024CCAEF
-org.apache.activemq/activemq-pool/5.15.8=78202EF368175E05226039F5620884BB48DA1B254DB99EE136F023A6A9730566922FA37F26715E7E8BF0B0394C0268C2A466DF82365DC867508E11D41D67F4B2
-org.apache.activemq/activemq-spring/5.15.8=CE11F857A4CFE55F8CE994F31F60B6D0EBEB1DC9667BEBA3CDF63C7E3F3C3C7E5ED3837424FA58A2A35CDA0A76E1B1CDCE69BCED42893550E9099F90482F9115
-org.apache.bcel/bcel/6.3=76073839812981106BB7089668B5421D0D2E1E8BDB272FC79EA5A5D51D27832BB8E8B37C344DA173A54A19506D9BE43BCE727F24C5360AAA530B2FFDBB4A4435
-org.apache.commons/commons-compress/1.11=D7553179576E6557CD2486730F0E54F93E8830BE16C32354BE16FDDC62BED7F854909A63E87BB2F2856577522C3EF95CBC3D883889E95C3C0B2E4295F57DCD86
-org.apache.commons/commons-dbcp2/2.5.0=9CEF8B6F4DD907A63B1FA562A9D2497D84E8A9C7839955742B134421D63B0CF0A102802CAC97985842C0231D6E76CEFA9A29C6A3378955517E8BE192133961ED
-org.apache.commons/commons-jexl/2.1.1=DCD62490CC386516F66427F5E478C308F6937EB6D64A34A02DE56255129DED20BEDB85C01B5C794D95CA3C4D6A11D58FA920779C5E517B78A881C5A229E4FBA2
-org.apache.commons/commons-jexl3/3.1=6AD2D83CFB29CB6C19DB70D4A89E8BD317B10DA736AC0B9B37C3F4DF8E428AE5987BF73AA1BA9439955E7278B7E056B009B691E2E64925E3E3C5B2CFA1349D9F
-org.apache.commons/commons-lang3/3.8.1=FB0FE98385496A565678A000C26A3245082ABFBF879CC29A35112B4BF18C966697A7A63BB1FD2FAE4A42512CD3DE5A2E6DC9D1DF4A4058332A6DDEAE06CDF667
-org.apache.commons/commons-math3/3.6.1=8BC2438B3B4D9A6BE4A47A58410B2D4D0E56E05787AB24BADAB8CBC9075D61857E8D2F0BFFEDAD33F18F8A356541D00F80A8597B5DEDB995BE8480D693D03226
-org.apache.commons/commons-pool2/2.6.0=C31D44FF2D527DEC5189BAF8AE1D888C37A53A60283C58CBEACD723C773DB8219DD54E0FCA15F29F781E0AF66E60E894254D6AAC80178207B51DD2F9DCC972C3
-org.apache.commons/commons-text/1.6=A0C077E33C075FFD2A9BF6776C1C27F6D19B451DD6F9A26CC06AED586BD746E5DADEFEE72E130F0D43768F8E3F24CDDABE79B1E94ABF227FBC8E8C58DB0C6504
-org.apache.ftpserver/ftplet-api/1.1.1=70C9E913E578460BB9B8F014C47B9C9634B9454F194EF105CFD4EB896857DC47D292B1AB88C267FF6BC0E608BFEA0BB900DB6E4D88E5F5D9096EF6A4B4CDD51C
-org.apache.ftpserver/ftpserver-core/1.1.1=D880495D077694475D27C081488728085FC19B8E1F113E8BA64656A3DE0A7DBC612F341EC653F3CB719B889916DE20DBD188898EED7A8CFECBAF9BE52A237118
-org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1=32E38035E7A9BC63F31CAA612421BDC33DDB9503E37C97B587490926D35831A8E3C2FEF324ACADC9A301AA977A761B36C94188A64E53E0AEC8641B04A21B3597
-org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1=94CB8660775596B298DB93E11FDBB28D2A582B161F7A6D667D41946F59E8B114AA80E15C28C4186F05B43F432B1AC555D845AD870309609202382C3F6061E319
-org.apache.geronimo.specs/geronimo-jta_1.0.1B_spec/1.0.1=F61164A57A83D7C5383E28EB7C57182A94E0966B3194BEC51720CE127AECA0C8802106898FFEEDEE00D55C59277104A6D04C2183BBCE7807AE5336AA83EF2323
-org.apache.httpcomponents/httpasyncclient/4.1.4=A80DB5DBF772F02D02BA6C7C163E8DA9517DD7195714B495ACB845C429580C1FC926D3E71C115E75BE8C145651DCE2FDFA0DC380132F7809C14B3AD95492AEE
-org.apache.httpcomponents/httpclient/4.2.1=675BCAB061F874E7903655D86F25F838CC8DF206918875C6E6C747313A4831CC68EC85A0AB6D0F3DEC96247EEEBDD700F47A0024375C61CC3A371B2B7DDD2FC9
-org.apache.httpcomponents/httpclient/4.5.8=DEB6B66065CFDED63795B934E18C3ACABEB3CAFE8A34D3903ED280284C7B2A3F801711AA5413699EA72CB8356D8F5C81F96BEEA5B910D97411F99E3220FCA2DE
-org.apache.httpcomponents/httpcore-nio/4.4.11=921BFA77D06C2B624D257DC6D57689A06F704954AE49FE4433D5200018F46607A46EA21ECA3C7757913BD6C1C2605A025BEA912A007230EA2E4227C07F8ADCA3
-org.apache.httpcomponents/httpcore/4.2.1=BB378ADAA1B431269E5D711735005D899F09578A115CB4F0B37D797F8ABAA43E57581DAD1B7BE925893BFF5217286A37C3A5EFDCEE2284974C7D2C69BF0AC234
-org.apache.httpcomponents/httpcore/4.4.11=1F45A26F97E5488BF1985F5F5C88C5E2744F46D422040708F7641DEB14BB04561BCEC35C9284C1DCE606FCDCB768EDC3EF970EF965BD6BB591EC362DFD417C74
-org.apache.httpcomponents/httpmime/4.5.8=E44EEBDC57A0E2F99FFDD7907A8D5ADCC18FF05FF5CE353AA7D05A2C7914272E6D4746F09399DF024C2663E1838C6477581D2787B8D07B8EDD3B18D526381993
-org.apache.logging.log4j/log4j-1.2-api/2.11.1=7FA86AE3F19F88C0690D12F7ACD04D270E365C1E925DF0A8012DDE7B8B3EA1F787D34C9FC26B198D7D8054F7BFADB522A34C4B8C1C7998E7C138187C5DA4060E
-org.apache.logging.log4j/log4j-api/2.11.1=A598DA3836D2DDCA60CFB3D62DF96E525A8A130CB67199C3FA0380E722B82B8F5778372CCCB763BF8AC216112C3E5E6300FC5B85E097845F42FB743ADC1FD41F
-org.apache.logging.log4j/log4j-core/2.11.1=6D23ECAF0AC18A5DFF492B8F047543B392FE5D1D56EF1F9F6C68CFF43C7EE97F2FD8521C22D242E5ACBFF9C133E9315045D6C689609F9C7DA3DDFC3FFB96B261
-org.apache.logging.log4j/log4j-slf4j-impl/2.11.1=55360BF9BCD47DAE49FCC8E28DBAD9D3AA26BCC66729DA98D701CC2099CB070E537F19327FA52486B4E557FA513D37AFBBE6FD17B1557527FB2496F56072545A
-org.apache.mina/mina-core/2.0.19=B494D592C42D4F8C70BD5F1927A71729E12016F28FAC77BB41286186A69C530B7B486DAB8A44C7B09BB8BD44B960FBA10246E5D61420DE6FCE1E29D0FA22C202
-org.apache.rat/apache-rat-api/0.13=F12B23C33D671563E9314B8790848C71E69D4D4CFFA6BB086F02AF5DEA7B7FD74CC2DB0548C57F5484A3C183E1F0766D0D2F2018D96A567A2E3B73C398282504
-org.apache.rat/apache-rat-core/0.13=E0788C9F3BBAEC17B5BCF5B029118254BCEA33BB9C2DB70E19B3EC76B116C53723CF2B508C3AB904A1D7302BA82FA64BFB24A027D5513B3AC9A5796CF68A4A11
-org.apache.rat/apache-rat-tasks/0.13=229F74F96C74E421A37A00A57F3153FF913B77F34514003695DCA9F5D63D8D5FF429A9E055425CC925FA30328023D52812FC6BD66B5EC736B529784B20D19344
-org.apache.rat/apache-rat/0.13=A51B88495D1988D6886CC04D0039FD9F6AEE77D060719239F9C5E9AF2B6D9A639E83C38E8BF4FDC632D1F0FEB87BC43FC0B345C0F2A4B7F692303898AADB2663
-org.apache.tika/tika-core/1.22=AA529B09F0F95E755240AA85726135C90EF84F883FD59153D55263EAB7FD9B41E437F421FE70C3231A72EDBB15D71C92DE19399B4E89EF034A925F993ACED70E
-org.apache.tika/tika-parsers/1.22=9C46D891AC5B23F04F2A40643D40F0A98B2FE76864C5DEF170415834379A5DD8D2530C9F9C49C7F24E280AEA867105E334686B45D450B365649166350C662683
-org.apache.velocity/velocity/1.7=E521785D947CAE1A02070B26A43D235B6319439A6364C58266D3F9C458F9A099406C10AAB5F51C5DB5BA541E88322CB35203C6758B4B8BB65F9539A345DA9A04
-org.apache.xbean/xbean-spring/4.2=F6BC463D2E3A140DABD48AB99B8B99A6607611A6B448D0B08D56A7B496080B4DDAFB97808B9EE25EEAE2BE8994213FA42C74921F4169F5BB288F473E7A92463F
-org.apache.xmlgraphics/xmlgraphics-commons/2.3=2914C30F5A58A1EAA19B51399EEFD30F3A4D530D19BE5A74AB0AD5D93142F13C5DDFE9FAA3E95F2632C14E18F39AA1AC3090061D32FB79A1A69AD9126F51AF0
-org.bouncycastle/bcmail-jdk15on/1.60=79B43DF17AB209A1026FC3CDA644B2611A72E861D3673CE846E078CED93A0991E16C91667FA854FEE7E92F5553338D1C9783BB2FBF426EB6FD19C8CE3582B26E
-org.bouncycastle/bcpg-jdk15on/1.61=1986D1385AE7591635F758902BAA37064752C356973B44E40077D690E7D73E3D1460207F48D2F193CA05E4B8ED1D364223DCC3BAAB66037AA00BB492D5E6302D
-org.bouncycastle/bcpkix-jdk15on/1.60=D44CDAC998A0D804AC452725C9E84B7D517C838CC6770CECDB214E1DF50EFC5EC2D067A91A5009F1316A5635CF7A1D213F2EE2A4E7497C66E1C7BBD5D2D4445F
-org.bouncycastle/bcpkix-jdk15on/1.61=BA8469294D658E93880FDF2B1DF88AA501BC6BF1613D7EC6287A362078AF425BB645234E85A1C737B582EB01E1DA2AACCC33326A30E0EFF0CB5616EDCF6FB008
-org.bouncycastle/bcprov-jdk15on/1.60=1C08D82349E333720C08FC467FF6489B14B8633A09019BF8BB5E6A3C426DFAE6DCC415648FE1FB4A2DA8631548F4947AB6CA1BC90B3190A05040F4D2EB271A10
-org.bouncycastle/bcprov-jdk15on/1.61=2F09C3E8EA8666620CF32A0BC3D1B8DCB562EC4CB06B485D038956FA2CC898AB11132A675B3C12CBFB00A1CA96DDF34ADC0C1B5981FCCDC566557FC6C533673B
-org.brotli/dec/0.1.2=D4CD2B33F7C358012FF01DB6A13EBFE1E8051A580698BFFCD942C47451012CF53CE49A400B1C8BF7502B01E631D79D7C6417202A145622572D79FD145CCDE61A
-org.checkerframework/checker-qual/2.0.0=3C38B0B9E0BDE464268CFF5FDB1894A048240B039093EE3ABE5B32976A22737D26B355F8793F630A7F0B319FDB019A6FCD9EE1D5219676F0F10C0B0F496B61B7
-org.checkerframework/checker-qual/2.5.2=FB32E3893F9EBC956EF99066B219A8FC8049B47B80A7253CD89B7FAADF0A2FA14D60B52DD5C2F4AAEB1DB0359F49FEC9E29D3616BD314EC8C82DB1C657BE8CD2
-org.codehaus.groovy.modules.http-builder/http-builder/0.7.1=BC7BC2A514F8CA104A392ECF8736F4A3D316EE988FA91299D33B0AF46134B38E14E4A5061449D17B2DF7A521643E6C02DFA37CC277ED7CAB7CE83C28C00E9719
-org.codehaus.groovy/groovy-all/2.4.15=FC30F48E1D64959BE90CD25C4E68E44AA3A9D80D319323A291F2655C65036D860525F55ED902AD0E5CDC114143D20A165876E80DFE949E5C9AD4D8A0AD7F39E7
-org.codehaus.groovy/groovy-all/2.4.16=C2616868541A3F587CBBA9BED3CFCA234565C1FD896654D6FB1934B452F05759A93F9614952D9620C1BA066CD328E6D55A349F1738BCEDB3EFA65A862FDEE09D
-org.codehaus.mojo/animal-sniffer-annotations/1.14=9E5E3EA9E06E0AC9463869FD0E08ED38F7042784995A7B50C9BFD7F692A53F0E1430B9E1367DC772D0D4EAFE5FD2BEABBCC60DA5008BD792F9E7EC8436C0F136
-org.codehaus.mojo/animal-sniffer-annotations/1.17=94D0335CDF94AA547AD6C0C7E44B8E3BDA736CE19D941DD0FAA3A45390E5AB2D122022FF4E07BB9AAEDD41FFBD9500F324E0A9E42F4C5441BCE0774F44872F45
-org.dom4j/dom4j/2.1.1=547DA0752FFB12CE40800449376F2F7E20F053F816DE4AE8ADF1A4FAD5A3B87CE4E98E95650671A6C9CDCBBF7C20A4B61E711E5AE8D324C923D508BCB07E02E1
-org.eclipse.jgit/org.eclipse.jgit/5.4.0.201906121030-r=874E2F245CA184BE72BA97E8AB4539E76B6D223D20DA27620355BBE812896DAC1CD33C4CDD8272C8FA9A346C6E80C986BA1EC290C973D0EF4B7D44EF42692523
-org.exparity/hamcrest-date/2.0.4=DC0FB7DDE5B151E09C619C080BD0AB6405596A0E926126342C65EDE6E25F65519B5B6A02BF25C02AD75A31EB26C6B41672CDAB97CC8B5AD983D025651A33CDD6
-org.freemarker/freemarker/2.3.28=44435CB2B6BA02ABACDC4A21BEA44A2DC50FAA1B486FC5B2F79097A68F1F98CA24AA835448AC5DEC33A1869EED1B8A32AC285E95FDABBDAFAA810D575951894E
-org.fusesource.hawtbuf/hawtbuf/1.11=396966ADF3E8CBA09FF75297915D41BA6A7C60C327575DFFF153F6617A1BCAFFF4A1AC0BAA19D93B4DDCAB511C5E23A6FD95AADF45E55E2057700DA3B8991AF0
-org.hamcrest/hamcrest-core/1.3=E237AE735AAC4FA5A7253EC693191F42EF7DDCE384C11D29FBF605981C0BE077D086757409ACAD53CB5B9E53D86A07CC428D459FF0F5B00D32A8CBBCA390BE49
-org.hsqldb/hsqldb/2.4.1=7A4B0F48072894C9CAD7352785465F3AE232AC22D79018053D8463EE143243626047AC19892A6E43325D172C7948BE35EDA54278F194B7A611B3DC032CFD047E
-org.jacoco/org.jacoco.agent/0.8.2=E0B59440237E2953791666EC5B7080ABCDC0DD1827FD701CADF2CF7FD805E11BAA3CD1749E8BACFAFBB18BF482AD6D93C37CA9DDB950103B0D05E0BC00BD034
-org.jacoco/org.jacoco.ant/0.8.2=F0532CF26F47F6952088BD336900BBBC8688788D71237EBB54EFDC2AE2635E9EFD2B96A6E4F03CEB1ABC4D7CB0138D526A27C5FD5CCDB013569E4F90051F7D55
-org.jacoco/org.jacoco.core/0.8.2=7422BCFECBC36548475319FD9C896A9052F98798F6AC0D602614526C620C9CC7880BB05D987089FC41299D817C92A92E12E72D6A51459740A3BF61582B613669
-org.jacoco/org.jacoco.report/0.8.2=EDE1B3CB978D21F0C65916DDA286732532D1A01450B2B833C9B8C7046B935167ADB63DB24B9ABF0C93AE155B7E8CF5FC74815711704C001093398E4D0FDF081
-org.jdom/jdom/1.1.3=921A79A4759724DAD02830E75FEF0F3A3B2BB1D14D572CA4E1F97BF7A93CC5413EE41B3B231331F1EF459E77F8AE1FBF43DCDF621D18BD72331F98B24C4E8284
-org.jetbrains.kotlin/kotlin-stdlib-common/1.3.31=53DF3352743FF6756CA8A5A63EE04DE27B9FA873204F89823C4906CFE33BC5FA91899B35B6EDADF852F7DB2C300D56FCB2D32AE4606EFBA4E3BFF32BEED5531
-org.jetbrains.kotlin/kotlin-stdlib/1.3.31=1DE7F0A1E0920D179DD3677D78B8D4AB009F04FED8919584A4190D4B69C2D4754454613A91BD41A66DA45E48F9E23B6AC5BFFF0B409F81BE1746556298AD698A
-org.jetbrains.kotlinx/kotlinx-coroutines-core/1.2.1=203FAF28151C4B20C932D716DA4799F44F1B32A32622CD0AECEB649FFB0C45B295553DAA073266D96020687A163EE4A6E0601B2EA9EF93E3785BB8FB07CFBBD0
-org.jetbrains/annotations/13.0=5622D0FFE410E7272E2BB9FAE1006CAEDEB86D0C62D2D9F3929A3B3CDCDEF1963218FCF0CEDE82E95EF9F4DA3ED4A173FA055EE6E4038886376181E0423E02FF
-org.jodd/jodd-core/5.0.6=359328570D17EEDB3CCE8C2D03A52D7C6345F2D1E590E604DF3B628EC641AC8AD5F845F783D74073BF60005E714E98D8B7D0EC1BE52F26A0C697477280FCDFC7
-org.jodd/jodd-lagarto/5.0.6=63C216848091C043C6AD1670B8442C722D7620E3DA428BDAD6AC327CA527E8A789E2B07BB3CD635E4F960F80C26BB2FB8545051EC55CB2C59535A66EB5B0B7A6
-org.jodd/jodd-log/5.0.6=3CE6C14823730ACEAF4CD0F86DA4F63BB47B1146163898B3F2A370E6890AD7F7EEB14D88D9916BF12B211236E9B539DC986C081A746AF00F3B78EB792CFDB9B6
-org.jodd/jodd-props/5.0.6=63AB3951F0C167B28479B6030066B28C35E1B1C4944E978679B4365F8179C123FFD60EE9BA0EEE5AD0BFD2A592B73C999328B92F3E4B2F8376CD39A9DC1B4370
-org.jsoup/jsoup/1.11.3=D8B4634950C8D7FE852C61C0538A7C4B271F5C39227593664A7A32145584E172CB66EBFA5301670DE93C2482CEAE83446BEBB4965A79060C5B28A67F1E3C0394
-org.mongodb/mongo-java-driver/2.11.3=737A0D037A6BEF711539FB89E8D7388EEF8F7B11393291412329D76DFB0C1695718CB903E60C63CA8144C95F53CA9EF66E80B4DFD5DA73E0E989467DC4B61337
-org.mozilla/rhino/1.7.10=FF4F8BFA5F1AFDD4F2E4C34DE8AA3CE18E4955F3804A3B864CB54583B7CB20621302786D625A2E4ED9EE879452F2E5BA70E855E65C34E58CF7F716D8A4515BC2
-org.nosphere.apache/creadur-rat-gradle/0.5.0=45A6A697C4E514893A0AA530D12A61E537FEAA68C2429E959C68541DB08D1BDD52542AF1DE21F4472557551309C54F4E96DF48889F09F77B70C09139352BAA2E
-org.objenesis/objenesis/2.6=23A593BDED8CB43236FAAD2018B008DA47BF4E29CC60C2E98FD4F2ED578FE2BADDD3A98547DC14273017C82CB19CE8EAAAB71D49273411856A2BA1A5D51015FC
-org.ow2.asm/asm-analysis/6.2.1=BE273F8E886BBCFDA81180917145996AB8FD26A17264EBEB5E1FC2337950A309D64DC8CBD373220009728622A8CBF56B8578E960B5561C22EA66848D296AE44E
-org.ow2.asm/asm-analysis/7.0=1A6CA169E9E2D29256F9C45570D89E5B039EAF7D405CCB3F7F79926552F2A0818975CE2C6ADCE3F1F59E28172E4303A1C790C52AB06263C61C9C8181FF279CEE
-org.ow2.asm/asm-commons/6.2.1=CDF7DDB8E865B1C22C7532FFF68380FE4EC49A00C6FF3188BF265C4769E49E793B51621FC80A39B5BA2D49E703F100BDB7FC9CFF8F488C5153A9339334371411
-org.ow2.asm/asm-commons/7.0=CA97B49EECE30DA774055B58A63C6E4F65A6BC4C0F40A829DCAF7164FBFFDEC10C6B2D9A22DF0A0918FDC83A47EA9906294AA99D3F170B35FD9E0632578C80B2
-org.ow2.asm/asm-tree/6.2.1=20FE687C2F494717CCEB33C97704FAB7C1867EEA1A0F79B70C68BCAA72E7818F34921B6FBA7A3C1ECBBC7256E1D8E1A538F9EC5B4BD3B2A255D412D2BC2CAA4C
-org.ow2.asm/asm-tree/7.0=81A223620DD16340D18ECBA20AB15CFE078F61AB0EC1AEF091AFCD282E3F6047B9800200412116289EC14917B5ECE9414C8009E92CC9A3333C677B5BFEC13BCF
-org.ow2.asm/asm-util/7.0=6B9630AD4C5F6ABC2724F9D85A7C0E81E524F8B0BF25273DD5578EDC20EFC7AB400095CD48E904D2536071181A8E9F39635FF3FEE0986BD078016D2DFF8241B1
-org.ow2.asm/asm/5.0.4=AFEE8F98EE21771F104318D95B839D9EA6EA083157BD62D8BC3462D9302DC20EA939D1B4AE2222F92F09B92BC9AB1317AFF02734007F716CC805FE49B92A8A5A
-org.ow2.asm/asm/6.2.1=C8D0AB865B628CB5A71C2B8C5FC8AACDA3E286B14662C3287CE50A96E91990E959F1447D439BD7190D9088E69E4368EFBFF5890FA539F98776F514A262D6DA8C
-org.ow2.asm/asm/7.0=B31699F50485DDC4E84466064CF5789A3E61BAFBEC53C4B9CB19FFEF07B36722D3EFDCA8722884FD6D6DEDACA65DB4DD6F71CD886BBA599E8A77971955167A60
-org.ow2.asm/asm/7.1=7EBA7097109389F48FA9142BF22D225F5D3104D68013D3B8E0A6D4054A8CD0EF64614372BDCB38987D68ADB6D33A3804E98DDF112BA84DBB09D448CE702DACC4
-org.slf4j/jcl-over-slf4j/1.7.25=A703864B269DE6F7BC98DF0FA98AA943CC327A4CA2915899D460E4A071FCC3FBE70957EB91B740CC935D0960B3D98F30C54A0A4019D7AE8C6D50F51EDB8D149
-org.slf4j/slf4j-api/1.7.2=BFE12C722ED57FAA3E26FEF214D95B9BDD2192742901920954979926D51E7B1BF0F61EA538F858328F4D6A306AFFECDCEF9D52452530CD2FE5C03552350C0EA0
-org.slf4j/slf4j-api/1.7.25=5DD6271FD5B34579D8E66271BAB75C89BACA8B2EBEAA9966DE391284BD08F2D720083C6E0E1EDDA106ECF8A04E9A32116DE6873F0F88C19C049C0FE27E5D820B
-org.slf4j/slf4j-api/1.8.0-beta2=49F858C76964F7DBDDF715C70D3CE3A1872E8342CF1643EFCD429CF45BBA97B1859D2723F6565DFB811586B61EBF5B160B3950D3D93D6BC2C3568F5142E5343E
-org.slf4j/slf4j-simple/1.8.0-beta2=D1C6A56ADD8A9BFAE1341910E457F7E561C666184F3F26B2DFA58F83396832AC006803194480000C89770B132A26A6C575687118E28A93D3A09511E22B9934E2
-org.sonarsource.scanner.api/sonar-scanner-api/2.12.0.1661=FB8E10D511E99B0D22ABEF8278BB65CEADA21F37D413ECA060FC8E7B8741374B5E3D5A12EAB4FB63140D754528DE59BA615D47B5BA4CDC0F75FF4A7BCD42F19C
-org.sonarsource.scanner.gradle/sonarqube-gradle-plugin/2.7.1=3C17B038DBD01BD523E7CD71E06F539BA4B804080BC2973DA206E2AF16511073AEDE8B72CA464AD1F561E786D9BFD2B71FF01007B93EAEBED2F2EE95E07FF742
-org.spockframework/spock-core/1.2-groovy-2.4=407AEE08D0E6AA1E2ADC3C9A1C966D91F2F53BEE0C92B85508F1E03E99F0E669356A2FBF9F450DB8D5328AD16ECD19B1BE1C9023B5C00031E91B9799A30381C2
-org.springframework/spring-aop/4.3.17.RELEASE=3072ABA1B4DAF91BC6BD985655032ECA0632FC043AF80AB1B823B3C21513C3715CD64C44A268A953A1457D936CC28A076218FD08AC953911F48A99BCA55E01B
-org.springframework/spring-beans/4.3.17.RELEASE=E8A5A8527C7231BA6C81211C60786550EC26CF549A07E52AA9E1001C624D8C0D0A056D3C6AFEE77AA0D55C57C3DB26F2222F78464BE6F5DF458F9BF6B495495C
-org.springframework/spring-context/4.3.17.RELEASE=5EFA9A98FFE014961E92AB7C86FE991A6C29C923345B2223630945AAEF108AD4A936C16984622AD16C81ED15BFD15707B907B8F5F587E7698C4523206B3D19C7
-org.springframework/spring-core/4.3.17.RELEASE=DCCF185FEFD78AE16DF085A864827D4375C0321E5A143A927705103D86D6CE4ADBEA61394AAEB4B90B3C95FFB8C72E2991B593653671FD5E2A9FD12ADE64B00A
-org.springframework/spring-expression/4.3.17.RELEASE=D4732DA2A25137B85D199DC26792B8510A213A782C04D02BD02FC54AB652F59CDCE8898DD79B5519E6ABFE93F1603924FEA76047F05063C2683B517270C69952
-oro/oro/2.0.8=9A98E493C4D771322B1331EC05AB0E363A83D8AC2AF8018D96A44DF2BF5BFC97D33EBE6F6F93E46AB10BF1536F0C29E9D9569318ED49BC18B4E96B1A8B476D37
-xalan/serializer/2.7.2=884D865865858A46306A3680DF69F3F0EFA0DF1313706B54E6900D36AF21E17CB6828F5A6BAC551C59F7F80BDD1CB64C3FDBDE44E213519C4AF87969E9E70774
-xalan/xalan/2.7.2=F859C5BD65F6DC91E396CE91FE2F6D30B2354D6B419CD9EA96984C5403E5CD1342BB9362B0AE1F2792612F0DF731C4F7AC92F16A825BB7E22089C27A129C6C
-xerces/xercesImpl/2.12.0=E9D62DC311DF808F88AC63B427BB40567C19CEC618A33D0A9C7C830B1BB7C64DAE263A5EE6C824D8E51A63CD24F49FE2EF4E2563D6E6AA0400F63E9BB35DCE97
-xerces/xercesImpl/2.9.1=37A13B129F3536A53F2A553151A53997DA6DE7CE4D7231EFEEFD26A68C92BE309666F2EE1F527D3B8C38BC6ADDC9FCCBBDD0D134759FD88667976B0CFF842435
-xml-apis/xml-apis/1.4.01=8DB0283B6840CD6407957D296B802E3EDF90653E2722F8E29F86C1C0B60996C4B43E9E065E6864DAB89B2138DDB0174D9B4FDDA4A93F94EEB884783DB82F3268
-xml-resolver/xml-resolver/1.2=ECA19B8A6B04C279B7982B16F1763CA1D49B0081A8D4CA2B7419F057D22A0EC60795EB4D901C5EB25DD4A733248876AA2F522C17A6144A26C8EDE9FB2F84531A
-xmlpull/xmlpull/1.1.3.1=54D1090623497E81270B2AF633268656E8855E1EDCE2217886431039516A391BA9F8D8DB3C21A0B5E51C7F7CB672D63EBE77BE75708B760B06F399486960F261
-xpp3/xpp3_min/1.1.4c=34989289CE8ED861499F31742EE1E7B9DC3C59973CE915A7B561D33D98968E77DB5BB94C1692802CCDBD86D04CAA7DB67748EFAFB1402428B2D6AE3056497618
diff --git a/checksum.xml b/checksum.xml
new file mode 100644
index 0000000..268b823
--- /dev/null
+++ b/checksum.xml
@@ -0,0 +1,201 @@
+<?xml version='1.0' encoding='utf-8'?>
+<dependency-verification version='1'>
+  <trust-requirement pgp='GROUP' checksum='NONE' />
+  <ignored-keys />
+  <trusted-keys>
+    <trusted-key id='1c8d5ef0df2b70d4' group='cglib' />
+    <trusted-key id='c9fbaa83a8753994' group='com.fasterxml.jackson.core' />
+    <trusted-key id='4c00043bec5cb7cb' group='com.fifesoft' />
+    <trusted-key id='3c0a8f4744f37328' group='com.github.ben-manes.caffeine' />
+    <trusted-key id='1756b920eecf0e90' group='com.github.spotbugs' />
+    <trusted-key id='59a252fb1199d873' group='com.google.code.findbugs' />
+    <trusted-key id='7a01b0f236e5430f' group='com.google.code.gson' />
+    <trusted-key id='9a259c7ee636c5ed' group='com.google.errorprone' />
+    <trusted-key id='bf935c771a8474f8' group='com.google.errorprone' />
+    <trusted-key id='abe9f3126bb741c1' group='com.google.guava' />
+    <trusted-key id='f6d4a1d411e9d1ae' group='com.google.guava' />
+    <trusted-key id='29579f18fa8fd93b' group='com.google.j2objc' />
+    <trusted-key id='72475fd306b9cab7' group='com.googlecode.javaewah' />
+    <trusted-key id='e57428da9e879e7d' group='com.helger' />
+    <trusted-key id='3684155e9365c30e' group='com.jayway.jsonpath' />
+    <trusted-key id='a50569c7ca7fa1f0' group='com.jcraft' />
+    <trusted-key id='1063fe98bcecb758' group='com.puppycrawl.tools' />
+    <trusted-key id='6425559c47cc79c4' group='com.sun.activation' />
+    <trusted-key id='602ec18d20c4661c' group='com.thoughtworks.xstream' />
+    <trusted-key id='1861c322c56014b2' group='commons-beanutils' />
+    <trusted-key id='411063a3a0ffd119' group='commons-beanutils' />
+    <trusted-key id='9daadc1c9fcc82d0' group='commons-cli' />
+    <trusted-key id='86fdc7e2a11262cb' group='commons-codec' />
+    <trusted-key id='1861c322c56014b2' group='commons-collections' />
+    <trusted-key id='a41f13c999945293' group='commons-collections' />
+    <trusted-key id='86fdc7e2a11262cb' group='commons-io' />
+    <trusted-key id='9daadc1c9fcc82d0' group='commons-io' />
+    <trusted-key id='1241bc872c5e4ec0' group='commons-lang' />
+    <trusted-key id='1861c322c56014b2' group='commons-lang' />
+    <trusted-key id='33cd6733af5ec452' group='commons-logging' />
+    <trusted-key id='a41f13c999945293' group='commons-logging' />
+    <trusted-key id='7a8860944fad5f62' group='commons-net' />
+    <trusted-key id='93391910f494b50c' group='dnsjava' />
+    <trusted-key id='379ce192d401ab61' group='info.picocli' />
+    <trusted-key id='b2ca0dfe9ed21c6e' group='io.burt' />
+    <trusted-key id='5b30d3b10694f057' group='io.codearte.gradle.nexus' />
+    <trusted-key id='6425559c47cc79c4' group='javax.activation' />
+    <trusted-key id='6425559c47cc79c4' group='javax.mail' />
+    <trusted-key id='4044edf1bb73efea' group='jaxen' />
+    <trusted-key id='528dc75aa68f0923' group='jcharts' />
+    <trusted-key id='efe8086f9e93774e' group='junit' />
+    <trusted-key id='f6bc09712c8df6ec' group='net.minidev' />
+    <trusted-key id='d4012dda1f1f0f82' group='net.sf.jtidy' />
+    <trusted-key id='1d185615d0a84648' group='net.sf.saxon' />
+    <trusted-key id='098a31f381819057' group='net.sourceforge.nekohtml' />
+    <trusted-key id='c84125c13bf6f2f2' group='org.ajoberstar.grgit' />
+    <trusted-key id='6b1b008864323b92' group='org.antlr' />
+    <trusted-key id='411063a3a0ffd119' group='org.apache-extras.beanshell' />
+    <trusted-key id='87a7f75a6a8ba5fc' group='org.apache.activemq' />
+    <trusted-key id='86fdc7e2a11262cb' group='org.apache.bcel' />
+    <trusted-key id='3faad2cd5ecbb314' group='org.apache.commons' />
+    <trusted-key id='64a16faaec16a4be' group='org.apache.commons' />
+    <trusted-key id='7a8860944fad5f62' group='org.apache.commons' />
+    <trusted-key id='86fdc7e2a11262cb' group='org.apache.commons' />
+    <trusted-key id='a2115ae15f6b8b72' group='org.apache.commons' />
+    <trusted-key id='f513c419e4b9d0ac' group='org.apache.commons' />
+    <trusted-key id='31474e5e7c6b7034' group='org.apache.ftpserver' />
+    <trusted-key id='cbaebe39a46c4ca1' group='org.apache.geronimo.specs' />
+    <trusted-key id='ecdfea3cb4493b94' group='org.apache.geronimo.specs' />
+    <trusted-key id='7c25280eae63ebe5' group='org.apache.httpcomponents' />
+    <trusted-key id='3595395eb3d8e1ba' group='org.apache.logging.log4j' />
+    <trusted-key id='31474e5e7c6b7034' group='org.apache.mina' />
+    <trusted-key id='9c8c892f91f8e6d1' group='org.apache.rat' />
+    <trusted-key id='4a51a45b944ffd51' group='org.apache.tika' />
+    <trusted-key id='d0eb627d4885ced1' group='org.apache.velocity' />
+    <trusted-key id='a2e92e06ddb37997' group='org.apache.xbean' />
+    <trusted-key id='5b93f1df7cdb6dea' group='org.apache.xmlgraphics' />
+    <trusted-key id='b341ddb020fcb6ab' group='org.bouncycastle' />
+    <trusted-key id='be84d764623a3644' group='org.brotli' />
+    <trusted-key id='b16698a4adf4d638' group='org.checkerframework' />
+    <trusted-key id='41321490758aad6f' group='org.codehaus.groovy' />
+    <trusted-key id='6525fd70cc303655' group='org.codehaus.mojo' />
+    <trusted-key id='873a8e86b4372146' group='org.codehaus.mojo' />
+    <trusted-key id='79e193516be7998f' group='org.dom4j' />
+    <trusted-key id='5b05ccde140c2876' group='org.eclipse.jgit' />
+    <trusted-key id='8759d8f56d022006' group='org.exparity' />
+    <trusted-key id='1939a2520bab1d90' group='org.freemarker' />
+    <trusted-key id='9ff25980f5ba7e4f' group='org.fusesource.hawtbuf' />
+    <trusted-key id='a6adfc93ef34893e' group='org.hamcrest' />
+    <trusted-key id='313cba932516c4d3' group='org.hsqldb' />
+    <trusted-key id='cb43338e060cf9fa' group='org.jacoco' />
+    <trusted-key id='8799af90c06efbbd' group='org.jdom' />
+    <trusted-key id='bcf4173966770193' group='org.jetbrains' />
+    <trusted-key id='98fe03a974ce0a0b' group='org.jetbrains.kotlin' />
+    <trusted-key id='379ce192d401ab61' group='org.jetbrains.kotlinx' />
+    <trusted-key id='91ae1504568ec4dd' group='org.jodd' />
+    <trusted-key id='f42e87f9665015c9' group='org.jsoup' />
+    <trusted-key id='82216a03caa86c78' group='org.mongodb' />
+    <trusted-key id='3f36885c24df4b75' group='org.mozilla' />
+    <trusted-key id='7c7d8456294423ba' group='org.objenesis' />
+    <trusted-key id='5f69ad087600b22c' group='org.ow2.asm' />
+    <trusted-key id='2c7b12f2a511e325' group='org.slf4j' />
+    <trusted-key id='cfca4a29d26468de' group='org.sonarsource.scanner.api' />
+    <trusted-key id='cfca4a29d26468de' group='org.sonarsource.scanner.gradle' />
+    <trusted-key id='72fefd1572eb75e1' group='org.spockframework' />
+    <trusted-key id='9a2c7a98e457c53d' group='org.springframework' />
+    <trusted-key id='9ff25980f5ba7e4f' group='xalan' />
+    <trusted-key id='858fc4c4f43856a3' group='xerces' />
+    <trusted-key id='86fdc7e2a11262cb' group='xml-apis' />
+  </trusted-keys>
+  <dependencies>
+    <dependency group='antlr' module='antlr' version='2.7.7'>
+      <sha512>311C3115F9F6651D1711C52D1739E25A70F25456CACB9A2CDDE7627498C30B13D721133CC75B39462AD18812A82472EF1B3B9D64FAB5ABB0377C12BF82043A74</sha512>
+    </dependency>
+    <dependency group='bsf' module='bsf' version='2.4.0'>
+      <sha512>CF2FF6EA53CD13EA842CAD398F1BE24539BEC68A5CBBD088492ADAB50BC782CDE6D9F4C0B6A24DEAEEE537809C90631C43F9A680FF2826C28CCF1B39380954E3</sha512>
+    </dependency>
+    <dependency group='com.github.bulenkov.darcula' module='darcula' version='e208efb96f70e4be9dc362fbb46f6e181ef501dd'>
+      <sha512>80F3335D8EA3FB3FF07A12A79C958C4E3F8BB542511C52825A8B3694AC96F027E24396CE9EDCEFA44EE93B5CBED4E4AED4575E6AAED56F363BAE92C52EE85D22</sha512>
+    </dependency>
+    <dependency group='com.github.vlsi.gradle' module='crlf-plugin' version='1.17.0'>
+      <sha512>473E13699DDDE54F2B7245BB33A47346E907179F7C528751B0BB730005BCAF3FFCDBE3F1333655D635B0EE2683FC8B24F2BD598922F9DA3DA03F8EC25A373AA1</sha512>
+    </dependency>
+    <dependency group='com.github.vlsi.gradle' module='ide-plugin' version='1.17.0'>
+      <sha512>4321949B8201BA4F0E1F0D977397349C34DF84E4632DAFEE6F221F9AFA176FDD9497C9AFBE7F734E3423BE25351DCA7551F93181CC99A99A24EAAEB43BCBD544</sha512>
+    </dependency>
+    <dependency group='com.github.vlsi.gradle' module='license-gather-plugin' version='1.17.0'>
+      <sha512>E1EE1396B2838E03FB7C84667BD473BAB558569EB5F1C4CB9B7C6806FDC5C7DABC41AAB1705A0FE73FBDB11624F11A15D7394232F59AC1039EFA197FCB495E67</sha512>
+    </dependency>
+    <dependency group='com.github.vlsi.gradle' module='stage-vote-release-plugin' version='1.17.0'>
+      <sha512>575A87846F61717B2F220A485B67D253644980A0DD57C8EBD3F07C9D66E9B463115897BFE3364216445CAB4AA09EA4B27070ABA5BE7620A632A95BE3F414D464</sha512>
+    </dependency>
+    <dependency group='commons-logging' module='commons-logging' version='1.0.4'>
+      <sha512>C8D2D39A60ADCC49091D393DAF30473D1776E4B6B09BB86639171F660833A17AFBDC9F3E85843093535DA16FA664CD7CD4CA38F54E141018DD1B78DE681AD668</sha512>
+    </dependency>
+    <dependency group='de.marcphilipp.gradle' module='nexus-publish-plugin' version='0.2.0'>
+      <sha512>36DFDADA6745D7AF5CF2807E197AFD111073C30536CB29C531522F73D4086C2A7AB70756975FEC290657012B8C9090414F76811731A920D8BC4EEC1DEC0AB2DF</sha512>
+    </dependency>
+    <dependency group='gradle.plugin.com.github.spotbugs' module='spotbugs-gradle-plugin' version='1.6.10'>
+      <sha512>E7486B32EF6C9C14FE879814DA5F06CA6ECABF47195063A93E6FC8CD10119244C5A7BC3C71A4760CCE3AFFA9E9736336D345D8ED84EB65153C15683FA6529D92</sha512>
+    </dependency>
+    <dependency group='gradle.plugin.org.jetbrains.gradle.plugin.idea-ext' module='gradle-idea-ext' version='0.5'>
+      <sha512>4A6B7FA6CD8C6FA82A517C396510E408F1C6FAB5FF6D4C68008F80718F05E5943755AA240F329C95661CCB0231114DD0F6D7C38EFBF73EE6B1ECC70850F40F7E</sha512>
+    </dependency>
+    <dependency group='net.jcip' module='jcip-annotations' version='1.0'>
+      <sha512>CB312B3F571D91EF183C119D878F50464FFD97F853B7311CBA386463F295E8B7B3A5A89ED4269A045CACD5AA7CB4C803D4882854A0FDDEFA9BBC28C72AA6C786</sha512>
+    </dependency>
+    <dependency group='net.sf.ezmorph' module='ezmorph' version='1.0.6'>
+      <sha512>16D30BE564723B74F312B4E7D06F349370FB6726B3162778C869CD723ECA2A40C4972C2757B3E107E1820CEC0D70B0BD2B96EFCD466518FC64495F7AEF97967A</sha512>
+    </dependency>
+    <dependency group='net.sf.json-lib' module='json-lib' version='2.3' classifier='jdk15'>
+      <sha512>ED6E95BF555AD3193B527258972DAFABD73745D993DA0CECE486E34A471D080850D201864026F4F41CA0982926C264C6E6CC55D91F000CDFD5D09EE3F306735C</sha512>
+    </dependency>
+    <dependency group='org.codehaus.groovy.modules.http-builder' module='http-builder' version='0.7.1'>
+      <sha512>BC7BC2A514F8CA104A392ECF8736F4A3D316EE988FA91299D33B0AF46134B38E14E4A5061449D17B2DF7A521643E6C02DFA37CC277ED7CAB7CE83C28C00E9719</sha512>
+    </dependency>
+    <dependency group='org.nosphere.apache' module='creadur-rat-gradle' version='0.5.0'>
+      <sha512>45A6A697C4E514893A0AA530D12A61E537FEAA68C2429E959C68541DB08D1BDD52542AF1DE21F4472557551309C54F4E96DF48889F09F77B70C09139352BAA2E</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm-analysis' version='6.2.1'>
+      <sha512>BE273F8E886BBCFDA81180917145996AB8FD26A17264EBEB5E1FC2337950A309D64DC8CBD373220009728622A8CBF56B8578E960B5561C22EA66848D296AE44E</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm-analysis' version='7.0'>
+      <sha512>1A6CA169E9E2D29256F9C45570D89E5B039EAF7D405CCB3F7F79926552F2A0818975CE2C6ADCE3F1F59E28172E4303A1C790C52AB06263C61C9C8181FF279CEE</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm-commons' version='6.2.1'>
+      <sha512>CDF7DDB8E865B1C22C7532FFF68380FE4EC49A00C6FF3188BF265C4769E49E793B51621FC80A39B5BA2D49E703F100BDB7FC9CFF8F488C5153A9339334371411</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm-commons' version='7.0'>
+      <sha512>CA97B49EECE30DA774055B58A63C6E4F65A6BC4C0F40A829DCAF7164FBFFDEC10C6B2D9A22DF0A0918FDC83A47EA9906294AA99D3F170B35FD9E0632578C80B2</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm-tree' version='6.2.1'>
+      <sha512>20FE687C2F494717CCEB33C97704FAB7C1867EEA1A0F79B70C68BCAA72E7818F34921B6FBA7A3C1ECBBC7256E1D8E1A538F9EC5B4BD3B2A255D412D2BC2CAA4C</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm-tree' version='7.0'>
+      <sha512>81A223620DD16340D18ECBA20AB15CFE078F61AB0EC1AEF091AFCD282E3F6047B9800200412116289EC14917B5ECE9414C8009E92CC9A3333C677B5BFEC13BCF</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm-util' version='7.0'>
+      <sha512>6B9630AD4C5F6ABC2724F9D85A7C0E81E524F8B0BF25273DD5578EDC20EFC7AB400095CD48E904D2536071181A8E9F39635FF3FEE0986BD078016D2DFF8241B1</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm' version='6.2.1'>
+      <sha512>C8D0AB865B628CB5A71C2B8C5FC8AACDA3E286B14662C3287CE50A96E91990E959F1447D439BD7190D9088E69E4368EFBFF5890FA539F98776F514A262D6DA8C</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm' version='7.0'>
+      <sha512>B31699F50485DDC4E84466064CF5789A3E61BAFBEC53C4B9CB19FFEF07B36722D3EFDCA8722884FD6D6DEDACA65DB4DD6F71CD886BBA599E8A77971955167A60</sha512>
+    </dependency>
+    <dependency group='org.ow2.asm' module='asm' version='7.1'>
+      <sha512>7EBA7097109389F48FA9142BF22D225F5D3104D68013D3B8E0A6D4054A8CD0EF64614372BDCB38987D68ADB6D33A3804E98DDF112BA84DBB09D448CE702DACC4</sha512>
+    </dependency>
+    <dependency group='oro' module='oro' version='2.0.8'>
+      <sha512>9A98E493C4D771322B1331EC05AB0E363A83D8AC2AF8018D96A44DF2BF5BFC97D33EBE6F6F93E46AB10BF1536F0C29E9D9569318ED49BC18B4E96B1A8B476D37</sha512>
+    </dependency>
+    <dependency group='xerces' module='xercesImpl' version='2.9.1'>
+      <sha512>37A13B129F3536A53F2A553151A53997DA6DE7CE4D7231EFEEFD26A68C92BE309666F2EE1F527D3B8C38BC6ADDC9FCCBBDD0D134759FD88667976B0CFF842435</sha512>
+    </dependency>
+    <dependency group='xml-resolver' module='xml-resolver' version='1.2'>
+      <sha512>ECA19B8A6B04C279B7982B16F1763CA1D49B0081A8D4CA2B7419F057D22A0EC60795EB4D901C5EB25DD4A733248876AA2F522C17A6144A26C8EDE9FB2F84531A</sha512>
+    </dependency>
+    <dependency group='xmlpull' module='xmlpull' version='1.1.3.1'>
+      <sha512>54D1090623497E81270B2AF633268656E8855E1EDCE2217886431039516A391BA9F8D8DB3C21A0B5E51C7F7CB672D63EBE77BE75708B760B06F399486960F261</sha512>
+    </dependency>
+    <dependency group='xpp3' module='xpp3_min' version='1.1.4c'>
+      <sha512>34989289CE8ED861499F31742EE1E7B9DC3C59973CE915A7B561D33D98968E77DB5BB94C1692802CCDBD86D04CAA7DB67748EFAFB1402428B2D6AE3056497618</sha512>
+    </dependency>
+  </dependencies>
+</dependency-verification>
diff --git a/rat-excludes.txt b/rat-excludes.txt
index 3762eb6..207ab40 100644
--- a/rat-excludes.txt
+++ b/rat-excludes.txt
@@ -1,4 +1,6 @@
 rat-excludes.txt
+checksum.xml
+buildSrc/checksum.xml
 gradle/wrapper/gradle-wrapper.jar
 gradlew
 gradlew.bat
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 35f9217..04c0839 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -75,38 +75,46 @@ if (property("localReleasePlugins").toBool(nullAs = false, blankAs = true, defau
 
 // Checksum plugin sources can be validated at https://github.com/vlsi/vlsi-release-plugins
 buildscript {
-        dependencies {
-                classpath("com.github.vlsi.gradle:checksum-dependency-plugin:1.19.0")
-                // Alternative option is to use local jar file via
-                // classpath(files("checksum-dependency-plugin-1.19.0.jar"))
-        }
-        repositories {
-                gradlePluginPortal()
+    dependencies {
+        classpath("com.github.vlsi.gradle:checksum-dependency-plugin:1.28.0") {
+            // Gradle ships kotlin-stdlib which is good enough
+            exclude("org.jetbrains.kotlin", "kotlin-stdlib")
         }
+    }
+    repositories {
+        gradlePluginPortal()
+    }
 }
 
 // Note: we need to verify the checksum for checksum-dependency-plugin itself
-val expectedSha512 =
-        "D7B1A0C7937DCB11536F97C52FE25752BD7DA6011299E81FA59AD446A843265A6FA079ECA1D5FD49C4B3C2496A363C60C5939268BED0B722EFB8BB6787A2B193"
+val expectedSha512 = mapOf(
+    "43BC9061DFDECA0C421EDF4A76E380413920E788EF01751C81BDC004BD28761FBD4A3F23EA9146ECEDF10C0F85B7BE9A857E9D489A95476525565152E0314B5B"
+            to "bcpg-jdk15on-1.62.jar",
+    "2BA6A5DEC9C8DAC2EB427A65815EB3A9ADAF4D42D476B136F37CD57E6D013BF4E9140394ABEEA81E42FBDB8FC59228C7B85C549ED294123BF898A7D048B3BD95"
+            to "bcprov-jdk15on-1.62.jar",
+    "17DAAF511BE98F99007D7C6B3762C9F73ADD99EAB1D222985018B0258EFBE12841BBFB8F213A78AA5300F7A3618ACF252F2EEAD196DF3F8115B9F5ED888FE827"
+            to "okhttp-4.1.0.jar",
+    "93E7A41BE44CC17FB500EA5CD84D515204C180AEC934491D11FC6A71DAEA761FB0EECEF865D6FD5C3D88AAF55DCE3C2C424BE5BA5D43BEBF48D05F1FA63FA8A7"
+            to "okio-2.2.2.jar",
+    "2ABC83FF0675D69697D4530D4853411761FE947E57EB8D68F6590DC2BFF0436906ADE619822EEE5F80B0DA28285FBE75FDCB50B67421DB7BF78B34CF6A613714"
+            to "checksum-dependency-plugin-1.28.0.jar"
+)
 
 fun File.sha512(): String {
-        val md = java.security.MessageDigest.getInstance("SHA-512")
-        forEachBlock { buffer, bytesRead ->
-                md.update(buffer, 0, bytesRead)
-        }
-        return BigInteger(1, md.digest()).toString(16).toUpperCase()
+    val md = java.security.MessageDigest.getInstance("SHA-512")
+    forEachBlock { buffer, bytesRead ->
+        md.update(buffer, 0, bytesRead)
+    }
+    return BigInteger(1, md.digest()).toString(16).toUpperCase()
 }
 
-val checksumDependencyJar: File = buildscript.configurations["classpath"].resolve().first()
-val actualSha512 = checksumDependencyJar.sha512()
-if (actualSha512 != expectedSha512) {
-        throw GradleException(
-                """
-                Checksum mismatch for $checksumDependencyJar
-                Expected: $expectedSha512
-                  Actual: $actualSha512
-                """.trimIndent()
-        )
-}
+val violations =
+    buildscript.configurations["classpath"]
+        .resolve()
+        .sortedBy { it.name }
+        .associateWith { it.sha512() }
+        .filterNot { (_, sha512) -> expectedSha512.contains(sha512) }
+        .entries
+        .joinToString("\n  ") { (file, sha512) -> "SHA-512(${file.name}) = $sha512 ($file)" }
 
 apply(plugin = "com.github.vlsi.checksum-dependency")


Mime
View raw message