From 747bab4841a00424788dbc46a9f134298d427852 Mon Sep 17 00:00:00 2001 From: Mihailo Markovic Date: Wed, 12 Nov 2025 12:27:01 +0100 Subject: [PATCH] AI fix for jjwt-gson 0.12.0 --- .../jjwt-gson/0.12.0/index.json | 3 + .../0.12.0/reachability-metadata.json | 657 +++++ metadata/io.jsonwebtoken/jjwt-gson/index.json | 9 +- tests/src/index.json | 2125 +++++++++++------ .../jjwt-gson/0.12.0/.gitignore | 4 + .../jjwt-gson/0.12.0/access-filter.json | 7 + .../jjwt-gson/0.12.0/build.gradle | 50 + .../jjwt-gson/0.12.0/gradle.properties | 2 + .../jjwt-gson/0.12.0/settings.gradle | 13 + .../jjwt_gson/Jjwt_gsonTest.java | 99 + .../jjwt-gson/0.12.0/user-code-filter.json | 10 + 11 files changed, 2233 insertions(+), 746 deletions(-) create mode 100644 metadata/io.jsonwebtoken/jjwt-gson/0.12.0/index.json create mode 100644 metadata/io.jsonwebtoken/jjwt-gson/0.12.0/reachability-metadata.json create mode 100644 tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/.gitignore create mode 100644 tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/access-filter.json create mode 100644 tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build.gradle create mode 100644 tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/gradle.properties create mode 100644 tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/settings.gradle create mode 100644 tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/src/test/java/io_jsonwebtoken/jjwt_gson/Jjwt_gsonTest.java create mode 100644 tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/user-code-filter.json diff --git a/metadata/io.jsonwebtoken/jjwt-gson/0.12.0/index.json b/metadata/io.jsonwebtoken/jjwt-gson/0.12.0/index.json new file mode 100644 index 000000000..10d66874f --- /dev/null +++ b/metadata/io.jsonwebtoken/jjwt-gson/0.12.0/index.json @@ -0,0 +1,3 @@ +[ + "reachability-metadata.json" +] \ No newline at end of file diff --git a/metadata/io.jsonwebtoken/jjwt-gson/0.12.0/reachability-metadata.json b/metadata/io.jsonwebtoken/jjwt-gson/0.12.0/reachability-metadata.json new file mode 100644 index 000000000..02ce0d411 --- /dev/null +++ b/metadata/io.jsonwebtoken/jjwt-gson/0.12.0/reachability-metadata.json @@ -0,0 +1,657 @@ +{ + "reflection": [ + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.DefaultMacAlgorithm$1" + }, + "type": "com.sun.crypto.provider.HmacCore$HmacSHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.DefaultMacAlgorithm$1" + }, + "type": "com.sun.crypto.provider.HmacCore$HmacSHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.DefaultMacAlgorithm$1" + }, + "type": "com.sun.crypto.provider.HmacCore$HmacSHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$KeyGeneratorFactory" + }, + "type": "com.sun.crypto.provider.KeyGeneratorCore$HmacKG$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$KeyGeneratorFactory" + }, + "type": "com.sun.crypto.provider.KeyGeneratorCore$HmacKG$SHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$KeyGeneratorFactory" + }, + "type": "com.sun.crypto.provider.KeyGeneratorCore$HmacKG$SHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.DefaultJwtBuilder" + }, + "type": "io.jsonwebtoken.impl.DefaultClaims" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.Jwts" + }, + "type": "io.jsonwebtoken.impl.DefaultClaimsBuilder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.DefaultJwtBuilder" + }, + "type": "io.jsonwebtoken.impl.DefaultJwsHeader" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.Jwts" + }, + "type": "io.jsonwebtoken.impl.DefaultJwtBuilder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.Jwts" + }, + "type": "io.jsonwebtoken.impl.DefaultJwtParserBuilder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.Jwts$ZIP" + }, + "type": "io.jsonwebtoken.impl.io.StandardCompressionAlgorithms", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.security.Keys" + }, + "type": "io.jsonwebtoken.impl.security.KeysBridge" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.Jwts$ENC" + }, + "type": "io.jsonwebtoken.impl.security.StandardEncryptionAlgorithms", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.Jwts$KEY" + }, + "type": "io.jsonwebtoken.impl.security.StandardKeyAlgorithms", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.security.Jwks$OP" + }, + "type": "io.jsonwebtoken.impl.security.StandardKeyOperations", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.Jwts$SIG" + }, + "type": "io.jsonwebtoken.impl.security.StandardSecureDigestAlgorithms", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.lang.Classes" + }, + "type": "java.io.ByteArrayInputStream", + "fields": [ + { + "name": "buf" + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate" + }, + "type": "java.security.AlgorithmParametersSpi" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$1" + }, + "type": "java.security.interfaces.ECPrivateKey" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$1" + }, + "type": "java.security.interfaces.ECPublicKey" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.lang.OptionalMethodInvoker" + }, + "type": "java.security.interfaces.EdECKey" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "java.security.interfaces.RSAPrivateKey" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "java.security.interfaces.RSAPublicKey" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.lang.OptionalMethodInvoker" + }, + "type": "java.security.interfaces.XECKey" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.gson.io.GsonSerializer" + }, + "type": "java.sql.Date" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.Randoms" + }, + "type": "sun.security.provider.NativePRNG", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.security.SecureRandomParameters" + ] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.DefaultMacAlgorithm$1" + }, + "type": "sun.security.provider.SHA2$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$1" + }, + "type": "sun.security.provider.SHA2$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$2" + }, + "type": "sun.security.provider.SHA2$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$MessageDigestFactory" + }, + "type": "sun.security.provider.SHA2$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$SignatureFactory" + }, + "type": "sun.security.provider.SHA2$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "sun.security.provider.SHA2$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$2" + }, + "type": "sun.security.provider.SHA2$SHA256", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.DefaultMacAlgorithm$1" + }, + "type": "sun.security.provider.SHA5$SHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$1" + }, + "type": "sun.security.provider.SHA5$SHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$2" + }, + "type": "sun.security.provider.SHA5$SHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$SignatureFactory" + }, + "type": "sun.security.provider.SHA5$SHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "sun.security.provider.SHA5$SHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$2" + }, + "type": "sun.security.provider.SHA5$SHA384", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.DefaultMacAlgorithm$1" + }, + "type": "sun.security.provider.SHA5$SHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$1" + }, + "type": "sun.security.provider.SHA5$SHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.EcSignatureAlgorithm$2" + }, + "type": "sun.security.provider.SHA5$SHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$SignatureFactory" + }, + "type": "sun.security.provider.SHA5$SHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "sun.security.provider.SHA5$SHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$2" + }, + "type": "sun.security.provider.SHA5$SHA512", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate" + }, + "type": "sun.security.rsa.RSAKeyPairGenerator$Legacy", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate" + }, + "type": "sun.security.rsa.RSAKeyPairGenerator$PSS", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "sun.security.rsa.RSAPSSSignature", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$2" + }, + "type": "sun.security.rsa.RSAPSSSignature", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "sun.security.rsa.RSASignature$SHA256withRSA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$2" + }, + "type": "sun.security.rsa.RSASignature$SHA256withRSA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "sun.security.rsa.RSASignature$SHA384withRSA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$2" + }, + "type": "sun.security.rsa.RSASignature$SHA384withRSA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$1" + }, + "type": "sun.security.rsa.RSASignature$SHA512withRSA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.RsaSignatureAlgorithm$2" + }, + "type": "sun.security.rsa.RSASignature$SHA512withRSA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.lang.OptionalMethodInvoker" + }, + "type": "sun.security.util.KeyUtil", + "methods": [ + { + "name": "getKeySize", + "parameterTypes": [ + "java.security.Key" + ] + } + ] + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.KeysBridge" + }, + "type": "sun.security.util.KeyUtil" + }, + { + "type": "worker.org.gradle.process.internal.worker.GradleWorkerMain", + "jniAccessible": true, + "methods": [ + { + "name": "main", + "parameterTypes": [ + "java.lang.String[]" + ] + } + ] + } + ], + "resources": [ + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$KeyGeneratorFactory" + }, + "glob": "META-INF/services/java.net.spi.URLStreamHandlerProvider" + }, + { + "condition": { + "typeReached": "io.jsonwebtoken.impl.security.JcaTemplate$KeyGeneratorFactory" + }, + "glob": "META-INF/services/java.net.spi.URLStrex`amHandlerProvider" + } + ] +} \ No newline at end of file diff --git a/metadata/io.jsonwebtoken/jjwt-gson/index.json b/metadata/io.jsonwebtoken/jjwt-gson/index.json index 3cfe27363..0b0844a52 100644 --- a/metadata/io.jsonwebtoken/jjwt-gson/index.json +++ b/metadata/io.jsonwebtoken/jjwt-gson/index.json @@ -1,10 +1,17 @@ [ { "latest": true, + "metadata-version": "0.12.0", + "module": "io.jsonwebtoken:jjwt-gson", + "tested-versions": [ + "0.12.0" + ] + }, + { "metadata-version": "0.11.5", "module": "io.jsonwebtoken:jjwt-gson", "tested-versions": [ "0.11.5" ] } -] +] \ No newline at end of file diff --git a/tests/src/index.json b/tests/src/index.json index a15ef4927..96a1460fe 100644 --- a/tests/src/index.json +++ b/tests/src/index.json @@ -1,745 +1,1380 @@ -[ { - "test-project-path" : "ch.qos.logback.contrib/logback-jackson/0.1.5", - "libraries" : [ { - "name" : "ch.qos.logback.contrib:logback-jackson", - "versions" : [ "0.1.5" ] - } ] -}, { - "test-project-path" : "ch.qos.logback.contrib/logback-json-classic/0.1.5", - "libraries" : [ { - "name" : "ch.qos.logback.contrib:logback-json-classic", - "versions" : [ "0.1.5" ] - } ] -}, { - "test-project-path" : "ch.qos.logback/logback-classic/1.2.11", - "libraries" : [ { - "name" : "ch.qos.logback:logback-classic", - "versions" : [ "1.2.11" ] - } ] -}, { - "test-project-path" : "ch.qos.logback/logback-classic/1.4.1", - "libraries" : [ { - "name" : "ch.qos.logback:logback-classic", - "versions" : [ "1.4.1", "1.4.9" ] - } ] -}, { - "test-project-path" : "com.ecwid.consul/consul-api/1.4.5", - "libraries" : [ { - "name" : "com.ecwid.consul:consul-api", - "versions" : [ "1.4.5" ] - } ] -}, { - "test-project-path" : "com.fasterxml.jackson.core/jackson-databind/2.15.2", - "libraries" : [ { - "name" : "com.fasterxml.jackson.core:jackson-databind", - "versions" : [ "2.15.2" ] - } ] -}, { - "test-project-path" : "com.github.ben-manes.caffeine/caffeine/2.9.3", - "libraries" : [ { - "name" : "com.github.ben-manes.caffeine:caffeine", - "versions" : [ "2.9.3" ] - } ] -}, { - "test-project-path" : "com.github.ben-manes.caffeine/caffeine/3.1.2", - "libraries" : [ { - "name" : "com.github.ben-manes.caffeine:caffeine", - "versions" : [ "3.1.2" ] - } ] -}, { - "test-project-path" : "com.github.luben/zstd-jni/1.5.2-5", - "libraries" : [ { - "name" : "com.github.luben:zstd-jni", - "versions" : [ "1.5.2-5" ] - } ] -}, { - "test-project-path" : "com.google.protobuf/protobuf-java-util/3.21.12", - "libraries" : [ { - "name" : "com.google.protobuf:protobuf-java-util", - "versions" : [ "3.21.12" ] - } ] -}, { - "test-project-path" : "com.graphql-java/graphql-java-extended-validation/19.1", - "libraries" : [ { - "name" : "com.graphql-java:graphql-java-extended-validation", - "versions" : [ "19.1" ] - } ] -}, { - "test-project-path" : "com.graphql-java/graphql-java/19.2", - "libraries" : [ { - "name" : "com.graphql-java:graphql-java", - "versions" : [ "19.2" ] - } ] -}, { - "test-project-path" : "com.h2database/h2/2.1.210", - "libraries" : [ { - "name" : "com.h2database:h2", - "versions" : [ "2.1.210" ] - } ] -}, { - "test-project-path" : "com.hazelcast/hazelcast/5.2.1", - "libraries" : [ { - "name" : "com.hazelcast:hazelcast", - "versions" : [ "5.2.1" ] - } ] -}, { - "test-project-path" : "com.itextpdf/forms/8.0.3", - "libraries" : [ { - "name" : "com.itextpdf:forms", - "versions" : [ "8.0.3" ] - } ] -}, { - "test-project-path" : "com.itextpdf/io/8.0.3", - "libraries" : [ { - "name" : "com.itextpdf:io", - "versions" : [ "8.0.3" ] - } ] -}, { - "test-project-path" : "com.itextpdf/kernel/8.0.3", - "libraries" : [ { - "name" : "com.itextpdf:kernel", - "versions" : [ "8.0.3" ] - } ] -}, { - "test-project-path" : "com.itextpdf/layout/8.0.3", - "libraries" : [ { - "name" : "com.itextpdf:layout", - "versions" : [ "8.0.3" ] - } ] -}, { - "test-project-path" : "com.itextpdf/svg/8.0.3", - "libraries" : [ { - "name" : "com.itextpdf:svg", - "versions" : [ "8.0.3" ] - } ] -}, { - "test-project-path" : "com.microsoft.sqlserver/mssql-jdbc/12.2.0.jre11", - "libraries" : [ { - "name" : "com.microsoft.sqlserver:mssql-jdbc", - "versions" : [ "12.2.0.jre11" ] - } ] -}, { - "test-project-path" : "com.mysql/mysql-connector-j/8.0.31", - "libraries" : [ { - "name" : "com.mysql:mysql-connector-j", - "versions" : [ "8.0.31" ] - } ] -}, { - "test-project-path" : "com.sun.mail/jakarta.mail/2.0.1", - "libraries" : [ { - "name" : "com.sun.mail:jakarta.mail", - "versions" : [ "2.0.1" ] - } ] -}, { - "test-project-path" : "com.zaxxer/HikariCP/5.0.1", - "libraries" : [ { - "name" : "com.zaxxer:HikariCP", - "versions" : [ "5.0.1" ] - } ] -}, { - "test-project-path" : "com.zaxxer/HikariCP/6.0.0", - "libraries" : [ { - "name" : "com.zaxxer:HikariCP", - "versions" : [ "6.0.0" ] - } ] -}, { - "test-project-path" : "commons-logging/commons-logging/1.2", - "libraries" : [ { - "name" : "commons-logging:commons-logging", - "versions" : [ "1.2" ] - } ] -}, { - "test-project-path" : "io.grpc/grpc-core/1.69.0", - "libraries" : [ { - "name" : "io.grpc:grpc-core", - "versions" : [ "1.69.0" ] - } ] -}, { - "test-project-path" : "io.grpc/grpc-netty/1.51.0", - "libraries" : [ { - "name" : "io.grpc:grpc-netty", - "versions" : [ "1.51.0" ] - } ] -}, { - "test-project-path" : "io.jsonwebtoken/jjwt-gson/0.11.5", - "libraries" : [ { - "name" : "io.jsonwebtoken:jjwt-gson", - "versions" : [ "0.11.5" ] - } ] -}, { - "test-project-path" : "io.jsonwebtoken/jjwt-jackson/0.11.5", - "libraries" : [ { - "name" : "io.jsonwebtoken:jjwt-jackson", - "versions" : [ "0.11.5" ] - } ] -}, { - "test-project-path" : "io.jsonwebtoken/jjwt-orgjson/0.11.5", - "libraries" : [ { - "name" : "io.jsonwebtoken:jjwt-orgjson", - "versions" : [ "0.11.5" ] - } ] -}, { - "test-project-path" : "io.nats/jnats/2.16.11", - "libraries" : [ { - "name" : "io.nats:jnats", - "versions" : [ "2.16.11" ] - } ] -}, { - "test-project-path" : "io.netty/netty-common/4.1.115.Final", - "libraries" : [ { - "name" : "io.netty:netty-common", - "versions" : [ "4.1.115.Final" ] - } ] -}, { - "test-project-path" : "io.netty/netty-common/4.1.80.Final", - "libraries" : [ { - "name" : "io.netty:netty-common", - "versions" : [ "4.1.80.Final" ] - } ] -}, { - "test-project-path" : "io.netty/netty-transport/4.1.115.Final", - "libraries" : [ { - "name" : "io.netty:netty-transport", - "versions" : [ "4.1.115.Final" ] - } ] -}, { - "test-project-path" : "io.netty/netty-transport/4.1.80.Final", - "libraries" : [ { - "name" : "io.netty:netty-transport", - "versions" : [ "4.1.80.Final" ] - } ] -}, { - "test-project-path" : "io.opentelemetry/opentelemetry-exporter-jaeger/1.19.0", - "libraries" : [ { - "name" : "io.opentelemetry:opentelemetry-exporter-jaeger", - "versions" : [ "1.19.0" ] - } ] -}, { - "test-project-path" : "io.opentelemetry/opentelemetry-exporter-logging/1.19.0", - "libraries" : [ { - "name" : "io.opentelemetry:opentelemetry-exporter-logging", - "versions" : [ "1.19.0" ] - } ] -}, { - "test-project-path" : "io.opentelemetry/opentelemetry-exporter-otlp/1.19.0", - "libraries" : [ { - "name" : "io.opentelemetry:opentelemetry-exporter-otlp", - "versions" : [ "1.19.0" ] - } ] -}, { - "test-project-path" : "io.opentelemetry/opentelemetry-exporter-zipkin/1.19.0", - "libraries" : [ { - "name" : "io.opentelemetry:opentelemetry-exporter-zipkin", - "versions" : [ "1.19.0" ] - } ] -}, { - "test-project-path" : "io.opentelemetry/opentelemetry-sdk-metrics/1.19.0", - "libraries" : [ { - "name" : "io.opentelemetry:opentelemetry-sdk-metrics", - "versions" : [ "1.19.0" ] - } ] -}, { - "test-project-path" : "io.opentelemetry/opentelemetry-sdk-trace/1.19.0", - "libraries" : [ { - "name" : "io.opentelemetry:opentelemetry-sdk-trace", - "versions" : [ "1.19.0" ] - } ] -}, { - "test-project-path" : "io.undertow/undertow-core/2.2.19.Final", - "libraries" : [ { - "name" : "io.undertow:undertow-core", - "versions" : [ "2.2.19.Final" ] - } ] -}, { - "test-project-path" : "io.undertow/undertow-core/2.3.0.Final", - "libraries" : [ { - "name" : "io.undertow:undertow-core", - "versions" : [ "2.3.0.Final" ] - } ] -}, { - "test-project-path" : "jakarta.servlet/jakarta.servlet-api/5.0.0", - "libraries" : [ { - "name" : "jakarta.servlet:jakarta.servlet-api", - "versions" : [ "5.0.0" ] - } ] -}, { - "test-project-path" : "javax.cache/cache-api/1.1.1", - "libraries" : [ { - "name" : "javax.cache:cache-api", - "versions" : [ "1.1.1" ] - } ] -}, { - "test-project-path" : "log4j/log4j/1.2.17", - "libraries" : [ { - "name" : "log4j:log4j", - "versions" : [ "1.2.17" ] - } ] -}, { - "test-project-path" : "mysql/mysql-connector-java/8.0.29", - "libraries" : [ { - "name" : "mysql:mysql-connector-java", - "versions" : [ "8.0.29" ] - } ] -}, { - "test-project-path" : "net.java.dev.jna/jna/5.8.0", - "libraries" : [ { - "name" : "net.java.dev.jna:jna", - "versions" : [ "5.8.0" ] - } ] -}, { - "test-project-path" : "org.apache.activemq/activemq-broker/5.18.1", - "libraries" : [ { - "name" : "org.apache.activemq:activemq-broker", - "versions" : [ "5.18.1" ] - } ] -}, { - "test-project-path" : "org.apache.activemq/activemq-client/5.18.1", - "libraries" : [ { - "name" : "org.apache.activemq:activemq-client", - "versions" : [ "5.18.1" ] - } ] -}, { - "test-project-path" : "org.apache.activemq/activemq-client/6.0.0", - "libraries" : [ { - "name" : "org.apache.activemq:activemq-client", - "versions" : [ "6.0.0" ] - } ] -}, { - "test-project-path" : "org.apache.activemq/artemis-jms-client/2.28.0", - "libraries" : [ { - "name" : "org.apache.activemq:artemis-jms-client", - "versions" : [ "2.28.0" ] - } ] -}, { - "test-project-path" : "org.apache.commons/commons-compress/1.23.0", - "libraries" : [ { - "name" : "org.apache.commons:commons-compress", - "versions" : [ "1.23.0" ] - } ] -}, { - "test-project-path" : "org.apache.commons/commons-dbcp2/2.12.0", - "libraries" : [ { - "name" : "org.apache.commons:commons-dbcp2", - "versions" : [ "2.12.0" ] - } ] -}, { - "test-project-path" : "org.apache.commons/commons-pool2/2.11.1", - "libraries" : [ { - "name" : "org.apache.commons:commons-pool2", - "versions" : [ "2.11.1" ] - } ] -}, { - "test-project-path" : "org.apache.httpcomponents/httpclient/4.5.14", - "libraries" : [ { - "name" : "org.apache.httpcomponents:httpclient", - "versions" : [ "4.5.14" ] - } ] -}, { - "test-project-path" : "org.apache.kafka/kafka-clients/3.5.1", - "libraries" : [ { - "name" : "org.apache.kafka:kafka-clients", - "versions" : [ "3.5.1" ] - } ] -}, { - "test-project-path" : "org.apache.kafka/kafka-streams/3.5.1", - "libraries" : [ { - "name" : "org.apache.kafka:kafka-streams", - "versions" : [ "3.5.1" ] - } ] -}, { - "test-project-path" : "org.apache.tomcat.embed/tomcat-embed-core/10.0.20", - "libraries" : [ { - "name" : "org.apache.tomcat.embed:tomcat-embed-core", - "versions" : [ "10.0.20" ] - } ] -}, { - "test-project-path" : "org.apache.tomcat/tomcat-jdbc/10.1.7", - "libraries" : [ { - "name" : "org.apache.tomcat:tomcat-jdbc", - "versions" : [ "10.1.7" ] - } ] -}, { - "test-project-path" : "org.bouncycastle/bcpkix-jdk15on/1.70", - "libraries" : [ { - "name" : "org.bouncycastle:bcpkix-jdk15on", - "versions" : [ "1.70" ] - } ] -}, { - "test-project-path" : "org.bouncycastle/bcpkix-jdk15to18/1.77", - "libraries" : [ { - "name" : "org.bouncycastle:bcpkix-jdk15to18", - "versions" : [ "1.77" ] - } ] -}, { - "test-project-path" : "org.bouncycastle/bcpkix-jdk18on/1.77", - "libraries" : [ { - "name" : "org.bouncycastle:bcpkix-jdk18on", - "versions" : [ "1.77" ] - } ] -}, { - "test-project-path" : "org.eclipse.angus/jakarta.mail/1.0.0", - "libraries" : [ { - "name" : "org.eclipse.angus:jakarta.mail", - "versions" : [ "1.0.0" ] - } ] -}, { - "test-project-path" : "org.eclipse.jetty/jetty-client/11.0.12", - "libraries" : [ { - "name" : "org.eclipse.jetty:jetty-client", - "versions" : [ "11.0.12" ] - } ] -}, { - "test-project-path" : "org.eclipse.jetty/jetty-client/12.0.0.beta0", - "libraries" : [ { - "name" : "org.eclipse.jetty:jetty-client", - "versions" : [ "12.0.0.beta0" ] - } ] -}, { - "test-project-path" : "org.eclipse.jetty/jetty-server/11.0.12", - "libraries" : [ { - "name" : "org.eclipse.jetty:jetty-server", - "versions" : [ "11.0.12" ] - } ] -}, { - "test-project-path" : "org.eclipse.jetty/jetty-server/12.0.1", - "libraries" : [ { - "name" : "org.eclipse.jetty:jetty-server", - "versions" : [ "12.0.1" ] - } ] - } , { - "test-project-path" : "org.eclipse.jetty/jetty-server/12.1.3", - "libraries" : [ { - "name" : "org.eclipse.jetty:jetty-server", - "versions" : [ "12.1.3" ] - } ] -}, { - "test-project-path" : "org.eclipse.jetty/jetty-util/12.0.9", - "libraries" : [ { - "name" : "org.eclipse.jetty:jetty-util", - "versions" : [ "12.0.9" ] - } ] -}, { - "test-project-path" : "org.eclipse.jgit/org.eclipse.jgit/6.5.0.202303070854-r", - "libraries" : [ { - "name" : "org.eclipse.jgit:org.eclipse.jgit", - "versions" : [ "6.5.0.202303070854-r" ] - } ] -}, { - "test-project-path" : "org.eclipse.jgit/org.eclipse.jgit/7.4.0.202509020913-r", - "libraries" : [ { - "name" : "org.eclipse.jgit:org.eclipse.jgit", - "versions" : [ "7.4.0.202509020913-r" ] - } ] -}, { - "test-project-path" : "org.eclipse.paho/org.eclipse.paho.client.mqttv3/1.2.5", - "libraries" : [ { - "name" : "org.eclipse.paho:org.eclipse.paho.client.mqttv3", - "versions" : [ "1.2.5" ] - } ] -}, { - "test-project-path" : "org.eclipse.paho/org.eclipse.paho.mqttv5.client/1.2.5", - "libraries" : [ { - "name" : "org.eclipse.paho:org.eclipse.paho.mqttv5.client", - "versions" : [ "1.2.5" ] - } ] -}, { - "test-project-path" : "org.ehcache/ehcache/3.10.8-jakarta", - "libraries" : [ { - "name" : "org.ehcache:ehcache", - "versions" : [ "3.10.8-jakarta" ] - } ] -}, { - "test-project-path" : "org.example/library/0.0.1", - "libraries" : [ { - "name" : "org.example:library", - "versions" : [ "0.0.1" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-core/10.10.0", - "libraries" : [ { - "name" : "org.flywaydb:flyway-core", - "versions" : [ "10.10.0" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-core/10.15.0", - "libraries" : [ { - "name" : "org.flywaydb:flyway-core", - "versions" : [ "10.15.0" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-core/10.20.0", - "libraries" : [ { - "name" : "org.flywaydb:flyway-core", - "versions" : [ "10.20.0" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-core/10.20.1", - "libraries" : [ { - "name" : "org.flywaydb:flyway-core", - "versions" : [ "10.20.1" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-core/11.14.1", - "libraries" : [ { - "name" : "org.flywaydb:flyway-core", - "versions" : [ "11.14.1" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-core/9.0.1", - "libraries" : [ { - "name" : "org.flywaydb:flyway-core", - "versions" : [ "9.0.1" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-database-postgresql/10.10.0", - "libraries" : [ { - "name" : "org.flywaydb:flyway-database-postgresql", - "versions" : [ "10.10.0" ] - } ] -}, { - "test-project-path" : "org.flywaydb/flyway-sqlserver/10.10.0", - "libraries" : [ { - "name" : "org.flywaydb:flyway-sqlserver", - "versions" : [ "10.10.0" ] - } ] -}, { - "test-project-path" : "org.freemarker/freemarker/2.3.31", - "libraries" : [ { - "name" : "org.freemarker:freemarker", - "versions" : [ "2.3.31" ] - } ] -}, { - "test-project-path" : "org.glassfish.jaxb/jaxb-runtime/3.0.2", - "libraries" : [ { - "name" : "org.glassfish.jaxb:jaxb-runtime", - "versions" : [ "3.0.2" ] - } ] -}, { - "test-project-path" : "org.hdrhistogram/HdrHistogram/2.1.12", - "libraries" : [ { - "name" : "org.hdrhistogram:HdrHistogram", - "versions" : [ "2.1.12" ] - } ] -}, { - "test-project-path" : "org.hibernate.orm/hibernate-core/6.1.1.Final", - "libraries" : [ { - "name" : "org.hibernate.orm:hibernate-core", - "versions" : [ "6.1.1.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate.orm/hibernate-core/6.2.0.Final", - "libraries" : [ { - "name" : "org.hibernate.orm:hibernate-core", - "versions" : [ "6.2.0.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate.orm/hibernate-core/6.5.0.Final", - "libraries" : [ { - "name" : "org.hibernate.orm:hibernate-core", - "versions" : [ "6.5.0.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate.orm/hibernate-core/6.6.0.Final", - "libraries" : [ { - "name" : "org.hibernate.orm:hibernate-core", - "versions" : [ "6.6.0.Final" ] - } ] - }, { - "test-project-path" : "org.hibernate.orm/hibernate-core/7.0.0.Final", - "libraries" : [ { - "name" : "org.hibernate.orm:hibernate-core", - "versions" : [ "7.0.0.Final" ] - } ] - }, { - "test-project-path" : "org.hibernate.orm/hibernate-core/7.1.0.Final", - "libraries" : [ { - "name" : "org.hibernate.orm:hibernate-core", - "versions" : [ "7.1.0.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate.orm/hibernate-envers/6.1.1.Final", - "libraries" : [ { - "name" : "org.hibernate.orm:hibernate-envers", - "versions" : [ "6.1.1.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate.reactive/hibernate-reactive-core/2.0.0.Final", - "libraries" : [ { - "name" : "org.hibernate.reactive:hibernate-reactive-core", - "versions" : [ "2.0.0.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate.validator/hibernate-validator/7.0.4.Final", - "libraries" : [ { - "name" : "org.hibernate.validator:hibernate-validator", - "versions" : [ "7.0.4.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate/hibernate-core/5.6.14.Final", - "libraries" : [ { - "name" : "org.hibernate:hibernate-core", - "versions" : [ "5.6.14.Final" ] - } ] -}, { - "test-project-path" : "org.hibernate/hibernate-spatial/6.5.0.Final", - "libraries" : [ { - "name" : "org.hibernate:hibernate-spatial", - "versions" : [ "6.5.0.Final" ] - } ] -}, { - "test-project-path" : "org.jboss.logging/jboss-logging/3.5.0.Final", - "libraries" : [ { - "name" : "org.jboss.logging:jboss-logging", - "versions" : [ "3.5.0.Final" ] - } ] -}, { - "test-project-path" : "org.jboss.spec.javax.servlet/jboss-servlet-api_4.0_spec/2.0.0.Final", - "libraries" : [ { - "name" : "org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec", - "versions" : [ "2.0.0.Final" ] - } ] -}, { - "test-project-path" : "org.jctools/jctools-core/2.1.2", - "libraries" : [ { - "name" : "org.jctools:jctools-core", - "versions" : [ "2.1.2" ] - } ] -}, { - "test-project-path" : "org.jetbrains.kotlin/kotlin-reflect/1.7.10", - "libraries" : [ { - "name" : "org.jetbrains.kotlin:kotlin-reflect", - "versions" : [ "1.7.10" ] - } ] -}, { - "test-project-path" : "org.jetbrains.kotlin/kotlin-stdlib/1.7.10", - "libraries" : [ { - "name" : "org.jetbrains.kotlin:kotlin-stdlib", - "versions" : [ "1.7.10" ] - } ] -}, { - "test-project-path" : "org.jline/jline/3.21.0", - "libraries" : [ { - "name" : "org.jline:jline", - "versions" : [ "3.21.0" ] - } ] -}, { - "test-project-path" : "org.jooq/jooq/3.17.7", - "libraries" : [ { - "name" : "org.jooq:jooq", - "versions" : [ "3.17.7" ] - } ] -}, { - "test-project-path" : "org.jooq/jooq/3.18.2", - "libraries" : [ { - "name" : "org.jooq:jooq", - "versions" : [ "3.18.2" ] - } ] -}, { - "test-project-path" : "org.liquibase/liquibase-core/4.17.0", - "libraries" : [ { - "name" : "org.liquibase:liquibase-core", - "versions" : [ "4.17.0", "4.20.0", "4.23.0" ] - } ] -}, { - "test-project-path" : "org.liquibase/liquibase-core/5.0.1", - "libraries" : [ { - "name" : "org.liquibase:liquibase-core", - "versions" : [ "5.0.1" ] - } ] -}, { - "test-project-path" : "org.mariadb.jdbc/mariadb-java-client/3.0.6", - "libraries" : [ { - "name" : "org.mariadb.jdbc:mariadb-java-client", - "versions" : [ "3.0.6" ] - } ] -}, { - "test-project-path" : "org.mariadb.jdbc/mariadb-java-client/3.5.2", - "libraries" : [ { - "name" : "org.mariadb.jdbc:mariadb-java-client", - "versions" : [ "3.5.2" ] - } ] -}, { - "test-project-path" : "org.mariadb/r2dbc-mariadb/1.1.3", - "libraries" : [ { - "name" : "org.mariadb:r2dbc-mariadb", - "versions" : [ "1.1.3" ] - } ] -}, { - "test-project-path" : "org.mockito/mockito-core/4.8.1", - "libraries" : [ { - "name" : "org.mockito:mockito-core", - "versions" : [ "4.8.1" ] - } ] -}, { - "test-project-path" : "org.mockito/mockito-core/5.0.0", - "libraries" : [ { - "name" : "org.mockito:mockito-core", - "versions" : [ "5.0.0" ] - } ] -}, { - "test-project-path" : "org.opengauss/opengauss-jdbc/3.1.0-og", - "libraries" : [ { - "name" : "org.opengauss:opengauss-jdbc", - "versions" : [ "3.1.0-og" ] - } ] -}, { - "test-project-path" : "org.postgresql/postgresql/42.3.4", - "libraries" : [ { - "name" : "org.postgresql:postgresql", - "versions" : [ "42.3.4" ] - } ] -}, { - "test-project-path" : "org.postgresql/postgresql/42.7.3", - "libraries" : [ { - "name" : "org.postgresql:postgresql", - "versions" : [ "42.7.3" ] - } ] -}, { - "test-project-path" : "org.quartz-scheduler/quartz/2.3.2", - "libraries" : [ { - "name" : "org.quartz-scheduler:quartz", - "versions" : [ "2.3.2" ] - } ] -}, { - "test-project-path" : "org.testcontainers/testcontainers/1.17.6", - "libraries" : [ { - "name" : "org.testcontainers:testcontainers", - "versions" : [ "1.17.6" ] - } ] -}, { - "test-project-path" : "org.testcontainers/testcontainers/1.19.8", - "libraries" : [ { - "name" : "org.testcontainers:testcontainers", - "versions" : [ "1.19.8" ] - } ] -}, { - "test-project-path" : "org.thymeleaf.extras/thymeleaf-extras-springsecurity6/3.1.0.M1", - "libraries" : [ { - "name" : "org.thymeleaf.extras:thymeleaf-extras-springsecurity6", - "versions" : [ "3.1.0.M1" ] - } ] -}, { - "test-project-path" : "org.thymeleaf/thymeleaf-spring6/3.1.0.M2", - "libraries" : [ { - "name" : "org.thymeleaf:thymeleaf-spring6", - "versions" : [ "3.1.0.M2" ] - } ] -}, { - "test-project-path" : "org.thymeleaf/thymeleaf/3.1.0.M2", - "libraries" : [ { - "name" : "org.thymeleaf:thymeleaf", - "versions" : [ "3.1.0.M2" ] - } ] -}, { - "test-project-path" : "org.thymeleaf/thymeleaf/3.1.0.RC1", - "libraries" : [ { - "name" : "org.thymeleaf:thymeleaf", - "versions" : [ "3.1.0.RC1" ] - } ] -}, { - "test-project-path" : "samples/docker/image-pull", - "libraries" : [ { - "name" : "samples:docker", - "versions" : [ "image-pull" ] - } ] -} ] +[ + { + "test-project-path": "ch.qos.logback.contrib/logback-jackson/0.1.5", + "libraries": [ + { + "name": "ch.qos.logback.contrib:logback-jackson", + "versions": [ + "0.1.5" + ] + } + ] + }, + { + "test-project-path": "ch.qos.logback.contrib/logback-json-classic/0.1.5", + "libraries": [ + { + "name": "ch.qos.logback.contrib:logback-json-classic", + "versions": [ + "0.1.5" + ] + } + ] + }, + { + "test-project-path": "ch.qos.logback/logback-classic/1.2.11", + "libraries": [ + { + "name": "ch.qos.logback:logback-classic", + "versions": [ + "1.2.11" + ] + } + ] + }, + { + "test-project-path": "ch.qos.logback/logback-classic/1.4.1", + "libraries": [ + { + "name": "ch.qos.logback:logback-classic", + "versions": [ + "1.4.1", + "1.4.9" + ] + } + ] + }, + { + "test-project-path": "com.ecwid.consul/consul-api/1.4.5", + "libraries": [ + { + "name": "com.ecwid.consul:consul-api", + "versions": [ + "1.4.5" + ] + } + ] + }, + { + "test-project-path": "com.fasterxml.jackson.core/jackson-databind/2.15.2", + "libraries": [ + { + "name": "com.fasterxml.jackson.core:jackson-databind", + "versions": [ + "2.15.2" + ] + } + ] + }, + { + "test-project-path": "com.github.ben-manes.caffeine/caffeine/2.9.3", + "libraries": [ + { + "name": "com.github.ben-manes.caffeine:caffeine", + "versions": [ + "2.9.3" + ] + } + ] + }, + { + "test-project-path": "com.github.ben-manes.caffeine/caffeine/3.1.2", + "libraries": [ + { + "name": "com.github.ben-manes.caffeine:caffeine", + "versions": [ + "3.1.2" + ] + } + ] + }, + { + "test-project-path": "com.github.luben/zstd-jni/1.5.2-5", + "libraries": [ + { + "name": "com.github.luben:zstd-jni", + "versions": [ + "1.5.2-5" + ] + } + ] + }, + { + "test-project-path": "com.google.protobuf/protobuf-java-util/3.21.12", + "libraries": [ + { + "name": "com.google.protobuf:protobuf-java-util", + "versions": [ + "3.21.12" + ] + } + ] + }, + { + "test-project-path": "com.graphql-java/graphql-java-extended-validation/19.1", + "libraries": [ + { + "name": "com.graphql-java:graphql-java-extended-validation", + "versions": [ + "19.1" + ] + } + ] + }, + { + "test-project-path": "com.graphql-java/graphql-java/19.2", + "libraries": [ + { + "name": "com.graphql-java:graphql-java", + "versions": [ + "19.2" + ] + } + ] + }, + { + "test-project-path": "com.h2database/h2/2.1.210", + "libraries": [ + { + "name": "com.h2database:h2", + "versions": [ + "2.1.210" + ] + } + ] + }, + { + "test-project-path": "com.hazelcast/hazelcast/5.2.1", + "libraries": [ + { + "name": "com.hazelcast:hazelcast", + "versions": [ + "5.2.1" + ] + } + ] + }, + { + "test-project-path": "com.itextpdf/forms/8.0.3", + "libraries": [ + { + "name": "com.itextpdf:forms", + "versions": [ + "8.0.3" + ] + } + ] + }, + { + "test-project-path": "com.itextpdf/io/8.0.3", + "libraries": [ + { + "name": "com.itextpdf:io", + "versions": [ + "8.0.3" + ] + } + ] + }, + { + "test-project-path": "com.itextpdf/kernel/8.0.3", + "libraries": [ + { + "name": "com.itextpdf:kernel", + "versions": [ + "8.0.3" + ] + } + ] + }, + { + "test-project-path": "com.itextpdf/layout/8.0.3", + "libraries": [ + { + "name": "com.itextpdf:layout", + "versions": [ + "8.0.3" + ] + } + ] + }, + { + "test-project-path": "com.itextpdf/svg/8.0.3", + "libraries": [ + { + "name": "com.itextpdf:svg", + "versions": [ + "8.0.3" + ] + } + ] + }, + { + "test-project-path": "com.microsoft.sqlserver/mssql-jdbc/12.2.0.jre11", + "libraries": [ + { + "name": "com.microsoft.sqlserver:mssql-jdbc", + "versions": [ + "12.2.0.jre11" + ] + } + ] + }, + { + "test-project-path": "com.mysql/mysql-connector-j/8.0.31", + "libraries": [ + { + "name": "com.mysql:mysql-connector-j", + "versions": [ + "8.0.31" + ] + } + ] + }, + { + "test-project-path": "com.sun.mail/jakarta.mail/2.0.1", + "libraries": [ + { + "name": "com.sun.mail:jakarta.mail", + "versions": [ + "2.0.1" + ] + } + ] + }, + { + "test-project-path": "com.zaxxer/HikariCP/5.0.1", + "libraries": [ + { + "name": "com.zaxxer:HikariCP", + "versions": [ + "5.0.1" + ] + } + ] + }, + { + "test-project-path": "com.zaxxer/HikariCP/6.0.0", + "libraries": [ + { + "name": "com.zaxxer:HikariCP", + "versions": [ + "6.0.0" + ] + } + ] + }, + { + "test-project-path": "commons-logging/commons-logging/1.2", + "libraries": [ + { + "name": "commons-logging:commons-logging", + "versions": [ + "1.2" + ] + } + ] + }, + { + "test-project-path": "io.grpc/grpc-core/1.69.0", + "libraries": [ + { + "name": "io.grpc:grpc-core", + "versions": [ + "1.69.0" + ] + } + ] + }, + { + "test-project-path": "io.grpc/grpc-netty/1.51.0", + "libraries": [ + { + "name": "io.grpc:grpc-netty", + "versions": [ + "1.51.0" + ] + } + ] + }, + { + "test-project-path": "io.jsonwebtoken/jjwt-gson/0.11.5", + "libraries": [ + { + "name": "io.jsonwebtoken:jjwt-gson", + "versions": [ + "0.11.5" + ] + } + ] + }, + { + "test-project-path": "io.jsonwebtoken/jjwt-gson/0.12.0", + "libraries": [ + { + "name": "io.jsonwebtoken:jjwt-gson", + "versions": [ + "0.12.0" + ] + } + ] + }, + { + "test-project-path": "io.jsonwebtoken/jjwt-jackson/0.11.5", + "libraries": [ + { + "name": "io.jsonwebtoken:jjwt-jackson", + "versions": [ + "0.11.5" + ] + } + ] + }, + { + "test-project-path": "io.jsonwebtoken/jjwt-orgjson/0.11.5", + "libraries": [ + { + "name": "io.jsonwebtoken:jjwt-orgjson", + "versions": [ + "0.11.5" + ] + } + ] + }, + { + "test-project-path": "io.nats/jnats/2.16.11", + "libraries": [ + { + "name": "io.nats:jnats", + "versions": [ + "2.16.11" + ] + } + ] + }, + { + "test-project-path": "io.netty/netty-common/4.1.115.Final", + "libraries": [ + { + "name": "io.netty:netty-common", + "versions": [ + "4.1.115.Final" + ] + } + ] + }, + { + "test-project-path": "io.netty/netty-common/4.1.80.Final", + "libraries": [ + { + "name": "io.netty:netty-common", + "versions": [ + "4.1.80.Final" + ] + } + ] + }, + { + "test-project-path": "io.netty/netty-transport/4.1.115.Final", + "libraries": [ + { + "name": "io.netty:netty-transport", + "versions": [ + "4.1.115.Final" + ] + } + ] + }, + { + "test-project-path": "io.netty/netty-transport/4.1.80.Final", + "libraries": [ + { + "name": "io.netty:netty-transport", + "versions": [ + "4.1.80.Final" + ] + } + ] + }, + { + "test-project-path": "io.opentelemetry/opentelemetry-exporter-jaeger/1.19.0", + "libraries": [ + { + "name": "io.opentelemetry:opentelemetry-exporter-jaeger", + "versions": [ + "1.19.0" + ] + } + ] + }, + { + "test-project-path": "io.opentelemetry/opentelemetry-exporter-logging/1.19.0", + "libraries": [ + { + "name": "io.opentelemetry:opentelemetry-exporter-logging", + "versions": [ + "1.19.0" + ] + } + ] + }, + { + "test-project-path": "io.opentelemetry/opentelemetry-exporter-otlp/1.19.0", + "libraries": [ + { + "name": "io.opentelemetry:opentelemetry-exporter-otlp", + "versions": [ + "1.19.0" + ] + } + ] + }, + { + "test-project-path": "io.opentelemetry/opentelemetry-exporter-zipkin/1.19.0", + "libraries": [ + { + "name": "io.opentelemetry:opentelemetry-exporter-zipkin", + "versions": [ + "1.19.0" + ] + } + ] + }, + { + "test-project-path": "io.opentelemetry/opentelemetry-sdk-metrics/1.19.0", + "libraries": [ + { + "name": "io.opentelemetry:opentelemetry-sdk-metrics", + "versions": [ + "1.19.0" + ] + } + ] + }, + { + "test-project-path": "io.opentelemetry/opentelemetry-sdk-trace/1.19.0", + "libraries": [ + { + "name": "io.opentelemetry:opentelemetry-sdk-trace", + "versions": [ + "1.19.0" + ] + } + ] + }, + { + "test-project-path": "io.undertow/undertow-core/2.2.19.Final", + "libraries": [ + { + "name": "io.undertow:undertow-core", + "versions": [ + "2.2.19.Final" + ] + } + ] + }, + { + "test-project-path": "io.undertow/undertow-core/2.3.0.Final", + "libraries": [ + { + "name": "io.undertow:undertow-core", + "versions": [ + "2.3.0.Final" + ] + } + ] + }, + { + "test-project-path": "jakarta.servlet/jakarta.servlet-api/5.0.0", + "libraries": [ + { + "name": "jakarta.servlet:jakarta.servlet-api", + "versions": [ + "5.0.0" + ] + } + ] + }, + { + "test-project-path": "javax.cache/cache-api/1.1.1", + "libraries": [ + { + "name": "javax.cache:cache-api", + "versions": [ + "1.1.1" + ] + } + ] + }, + { + "test-project-path": "log4j/log4j/1.2.17", + "libraries": [ + { + "name": "log4j:log4j", + "versions": [ + "1.2.17" + ] + } + ] + }, + { + "test-project-path": "mysql/mysql-connector-java/8.0.29", + "libraries": [ + { + "name": "mysql:mysql-connector-java", + "versions": [ + "8.0.29" + ] + } + ] + }, + { + "test-project-path": "net.java.dev.jna/jna/5.8.0", + "libraries": [ + { + "name": "net.java.dev.jna:jna", + "versions": [ + "5.8.0" + ] + } + ] + }, + { + "test-project-path": "org.apache.activemq/activemq-broker/5.18.1", + "libraries": [ + { + "name": "org.apache.activemq:activemq-broker", + "versions": [ + "5.18.1" + ] + } + ] + }, + { + "test-project-path": "org.apache.activemq/activemq-client/5.18.1", + "libraries": [ + { + "name": "org.apache.activemq:activemq-client", + "versions": [ + "5.18.1" + ] + } + ] + }, + { + "test-project-path": "org.apache.activemq/activemq-client/6.0.0", + "libraries": [ + { + "name": "org.apache.activemq:activemq-client", + "versions": [ + "6.0.0" + ] + } + ] + }, + { + "test-project-path": "org.apache.activemq/artemis-jms-client/2.28.0", + "libraries": [ + { + "name": "org.apache.activemq:artemis-jms-client", + "versions": [ + "2.28.0" + ] + } + ] + }, + { + "test-project-path": "org.apache.commons/commons-compress/1.23.0", + "libraries": [ + { + "name": "org.apache.commons:commons-compress", + "versions": [ + "1.23.0" + ] + } + ] + }, + { + "test-project-path": "org.apache.commons/commons-dbcp2/2.12.0", + "libraries": [ + { + "name": "org.apache.commons:commons-dbcp2", + "versions": [ + "2.12.0" + ] + } + ] + }, + { + "test-project-path": "org.apache.commons/commons-pool2/2.11.1", + "libraries": [ + { + "name": "org.apache.commons:commons-pool2", + "versions": [ + "2.11.1" + ] + } + ] + }, + { + "test-project-path": "org.apache.httpcomponents/httpclient/4.5.14", + "libraries": [ + { + "name": "org.apache.httpcomponents:httpclient", + "versions": [ + "4.5.14" + ] + } + ] + }, + { + "test-project-path": "org.apache.kafka/kafka-clients/3.5.1", + "libraries": [ + { + "name": "org.apache.kafka:kafka-clients", + "versions": [ + "3.5.1" + ] + } + ] + }, + { + "test-project-path": "org.apache.kafka/kafka-streams/3.5.1", + "libraries": [ + { + "name": "org.apache.kafka:kafka-streams", + "versions": [ + "3.5.1" + ] + } + ] + }, + { + "test-project-path": "org.apache.tomcat.embed/tomcat-embed-core/10.0.20", + "libraries": [ + { + "name": "org.apache.tomcat.embed:tomcat-embed-core", + "versions": [ + "10.0.20" + ] + } + ] + }, + { + "test-project-path": "org.apache.tomcat/tomcat-jdbc/10.1.7", + "libraries": [ + { + "name": "org.apache.tomcat:tomcat-jdbc", + "versions": [ + "10.1.7" + ] + } + ] + }, + { + "test-project-path": "org.bouncycastle/bcpkix-jdk15on/1.70", + "libraries": [ + { + "name": "org.bouncycastle:bcpkix-jdk15on", + "versions": [ + "1.70" + ] + } + ] + }, + { + "test-project-path": "org.bouncycastle/bcpkix-jdk15to18/1.77", + "libraries": [ + { + "name": "org.bouncycastle:bcpkix-jdk15to18", + "versions": [ + "1.77" + ] + } + ] + }, + { + "test-project-path": "org.bouncycastle/bcpkix-jdk18on/1.77", + "libraries": [ + { + "name": "org.bouncycastle:bcpkix-jdk18on", + "versions": [ + "1.77" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.angus/jakarta.mail/1.0.0", + "libraries": [ + { + "name": "org.eclipse.angus:jakarta.mail", + "versions": [ + "1.0.0" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jetty/jetty-client/11.0.12", + "libraries": [ + { + "name": "org.eclipse.jetty:jetty-client", + "versions": [ + "11.0.12" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jetty/jetty-client/12.0.0.beta0", + "libraries": [ + { + "name": "org.eclipse.jetty:jetty-client", + "versions": [ + "12.0.0.beta0" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jetty/jetty-server/11.0.12", + "libraries": [ + { + "name": "org.eclipse.jetty:jetty-server", + "versions": [ + "11.0.12" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jetty/jetty-server/12.0.1", + "libraries": [ + { + "name": "org.eclipse.jetty:jetty-server", + "versions": [ + "12.0.1" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jetty/jetty-server/12.1.3", + "libraries": [ + { + "name": "org.eclipse.jetty:jetty-server", + "versions": [ + "12.1.3" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jetty/jetty-util/12.0.9", + "libraries": [ + { + "name": "org.eclipse.jetty:jetty-util", + "versions": [ + "12.0.9" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jgit/org.eclipse.jgit/6.5.0.202303070854-r", + "libraries": [ + { + "name": "org.eclipse.jgit:org.eclipse.jgit", + "versions": [ + "6.5.0.202303070854-r" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.jgit/org.eclipse.jgit/7.4.0.202509020913-r", + "libraries": [ + { + "name": "org.eclipse.jgit:org.eclipse.jgit", + "versions": [ + "7.4.0.202509020913-r" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.paho/org.eclipse.paho.client.mqttv3/1.2.5", + "libraries": [ + { + "name": "org.eclipse.paho:org.eclipse.paho.client.mqttv3", + "versions": [ + "1.2.5" + ] + } + ] + }, + { + "test-project-path": "org.eclipse.paho/org.eclipse.paho.mqttv5.client/1.2.5", + "libraries": [ + { + "name": "org.eclipse.paho:org.eclipse.paho.mqttv5.client", + "versions": [ + "1.2.5" + ] + } + ] + }, + { + "test-project-path": "org.ehcache/ehcache/3.10.8-jakarta", + "libraries": [ + { + "name": "org.ehcache:ehcache", + "versions": [ + "3.10.8-jakarta" + ] + } + ] + }, + { + "test-project-path": "org.example/library/0.0.1", + "libraries": [ + { + "name": "org.example:library", + "versions": [ + "0.0.1" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-core/10.10.0", + "libraries": [ + { + "name": "org.flywaydb:flyway-core", + "versions": [ + "10.10.0" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-core/10.15.0", + "libraries": [ + { + "name": "org.flywaydb:flyway-core", + "versions": [ + "10.15.0" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-core/10.20.0", + "libraries": [ + { + "name": "org.flywaydb:flyway-core", + "versions": [ + "10.20.0" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-core/10.20.1", + "libraries": [ + { + "name": "org.flywaydb:flyway-core", + "versions": [ + "10.20.1" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-core/11.14.1", + "libraries": [ + { + "name": "org.flywaydb:flyway-core", + "versions": [ + "11.14.1" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-core/9.0.1", + "libraries": [ + { + "name": "org.flywaydb:flyway-core", + "versions": [ + "9.0.1" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-database-postgresql/10.10.0", + "libraries": [ + { + "name": "org.flywaydb:flyway-database-postgresql", + "versions": [ + "10.10.0" + ] + } + ] + }, + { + "test-project-path": "org.flywaydb/flyway-sqlserver/10.10.0", + "libraries": [ + { + "name": "org.flywaydb:flyway-sqlserver", + "versions": [ + "10.10.0" + ] + } + ] + }, + { + "test-project-path": "org.freemarker/freemarker/2.3.31", + "libraries": [ + { + "name": "org.freemarker:freemarker", + "versions": [ + "2.3.31" + ] + } + ] + }, + { + "test-project-path": "org.glassfish.jaxb/jaxb-runtime/3.0.2", + "libraries": [ + { + "name": "org.glassfish.jaxb:jaxb-runtime", + "versions": [ + "3.0.2" + ] + } + ] + }, + { + "test-project-path": "org.hdrhistogram/HdrHistogram/2.1.12", + "libraries": [ + { + "name": "org.hdrhistogram:HdrHistogram", + "versions": [ + "2.1.12" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.orm/hibernate-core/6.1.1.Final", + "libraries": [ + { + "name": "org.hibernate.orm:hibernate-core", + "versions": [ + "6.1.1.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.orm/hibernate-core/6.2.0.Final", + "libraries": [ + { + "name": "org.hibernate.orm:hibernate-core", + "versions": [ + "6.2.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.orm/hibernate-core/6.5.0.Final", + "libraries": [ + { + "name": "org.hibernate.orm:hibernate-core", + "versions": [ + "6.5.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.orm/hibernate-core/6.6.0.Final", + "libraries": [ + { + "name": "org.hibernate.orm:hibernate-core", + "versions": [ + "6.6.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.orm/hibernate-core/7.0.0.Final", + "libraries": [ + { + "name": "org.hibernate.orm:hibernate-core", + "versions": [ + "7.0.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.orm/hibernate-core/7.1.0.Final", + "libraries": [ + { + "name": "org.hibernate.orm:hibernate-core", + "versions": [ + "7.1.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.orm/hibernate-envers/6.1.1.Final", + "libraries": [ + { + "name": "org.hibernate.orm:hibernate-envers", + "versions": [ + "6.1.1.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.reactive/hibernate-reactive-core/2.0.0.Final", + "libraries": [ + { + "name": "org.hibernate.reactive:hibernate-reactive-core", + "versions": [ + "2.0.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate.validator/hibernate-validator/7.0.4.Final", + "libraries": [ + { + "name": "org.hibernate.validator:hibernate-validator", + "versions": [ + "7.0.4.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate/hibernate-core/5.6.14.Final", + "libraries": [ + { + "name": "org.hibernate:hibernate-core", + "versions": [ + "5.6.14.Final" + ] + } + ] + }, + { + "test-project-path": "org.hibernate/hibernate-spatial/6.5.0.Final", + "libraries": [ + { + "name": "org.hibernate:hibernate-spatial", + "versions": [ + "6.5.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.jboss.logging/jboss-logging/3.5.0.Final", + "libraries": [ + { + "name": "org.jboss.logging:jboss-logging", + "versions": [ + "3.5.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.jboss.spec.javax.servlet/jboss-servlet-api_4.0_spec/2.0.0.Final", + "libraries": [ + { + "name": "org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec", + "versions": [ + "2.0.0.Final" + ] + } + ] + }, + { + "test-project-path": "org.jctools/jctools-core/2.1.2", + "libraries": [ + { + "name": "org.jctools:jctools-core", + "versions": [ + "2.1.2" + ] + } + ] + }, + { + "test-project-path": "org.jetbrains.kotlin/kotlin-reflect/1.7.10", + "libraries": [ + { + "name": "org.jetbrains.kotlin:kotlin-reflect", + "versions": [ + "1.7.10" + ] + } + ] + }, + { + "test-project-path": "org.jetbrains.kotlin/kotlin-stdlib/1.7.10", + "libraries": [ + { + "name": "org.jetbrains.kotlin:kotlin-stdlib", + "versions": [ + "1.7.10" + ] + } + ] + }, + { + "test-project-path": "org.jline/jline/3.21.0", + "libraries": [ + { + "name": "org.jline:jline", + "versions": [ + "3.21.0" + ] + } + ] + }, + { + "test-project-path": "org.jooq/jooq/3.17.7", + "libraries": [ + { + "name": "org.jooq:jooq", + "versions": [ + "3.17.7" + ] + } + ] + }, + { + "test-project-path": "org.jooq/jooq/3.18.2", + "libraries": [ + { + "name": "org.jooq:jooq", + "versions": [ + "3.18.2" + ] + } + ] + }, + { + "test-project-path": "org.liquibase/liquibase-core/4.17.0", + "libraries": [ + { + "name": "org.liquibase:liquibase-core", + "versions": [ + "4.17.0", + "4.20.0", + "4.23.0" + ] + } + ] + }, + { + "test-project-path": "org.liquibase/liquibase-core/5.0.1", + "libraries": [ + { + "name": "org.liquibase:liquibase-core", + "versions": [ + "5.0.1" + ] + } + ] + }, + { + "test-project-path": "org.mariadb.jdbc/mariadb-java-client/3.0.6", + "libraries": [ + { + "name": "org.mariadb.jdbc:mariadb-java-client", + "versions": [ + "3.0.6" + ] + } + ] + }, + { + "test-project-path": "org.mariadb.jdbc/mariadb-java-client/3.5.2", + "libraries": [ + { + "name": "org.mariadb.jdbc:mariadb-java-client", + "versions": [ + "3.5.2" + ] + } + ] + }, + { + "test-project-path": "org.mariadb/r2dbc-mariadb/1.1.3", + "libraries": [ + { + "name": "org.mariadb:r2dbc-mariadb", + "versions": [ + "1.1.3" + ] + } + ] + }, + { + "test-project-path": "org.mockito/mockito-core/4.8.1", + "libraries": [ + { + "name": "org.mockito:mockito-core", + "versions": [ + "4.8.1" + ] + } + ] + }, + { + "test-project-path": "org.mockito/mockito-core/5.0.0", + "libraries": [ + { + "name": "org.mockito:mockito-core", + "versions": [ + "5.0.0" + ] + } + ] + }, + { + "test-project-path": "org.opengauss/opengauss-jdbc/3.1.0-og", + "libraries": [ + { + "name": "org.opengauss:opengauss-jdbc", + "versions": [ + "3.1.0-og" + ] + } + ] + }, + { + "test-project-path": "org.postgresql/postgresql/42.3.4", + "libraries": [ + { + "name": "org.postgresql:postgresql", + "versions": [ + "42.3.4" + ] + } + ] + }, + { + "test-project-path": "org.postgresql/postgresql/42.7.3", + "libraries": [ + { + "name": "org.postgresql:postgresql", + "versions": [ + "42.7.3" + ] + } + ] + }, + { + "test-project-path": "org.quartz-scheduler/quartz/2.3.2", + "libraries": [ + { + "name": "org.quartz-scheduler:quartz", + "versions": [ + "2.3.2" + ] + } + ] + }, + { + "test-project-path": "org.testcontainers/testcontainers/1.17.6", + "libraries": [ + { + "name": "org.testcontainers:testcontainers", + "versions": [ + "1.17.6" + ] + } + ] + }, + { + "test-project-path": "org.testcontainers/testcontainers/1.19.8", + "libraries": [ + { + "name": "org.testcontainers:testcontainers", + "versions": [ + "1.19.8" + ] + } + ] + }, + { + "test-project-path": "org.thymeleaf.extras/thymeleaf-extras-springsecurity6/3.1.0.M1", + "libraries": [ + { + "name": "org.thymeleaf.extras:thymeleaf-extras-springsecurity6", + "versions": [ + "3.1.0.M1" + ] + } + ] + }, + { + "test-project-path": "org.thymeleaf/thymeleaf-spring6/3.1.0.M2", + "libraries": [ + { + "name": "org.thymeleaf:thymeleaf-spring6", + "versions": [ + "3.1.0.M2" + ] + } + ] + }, + { + "test-project-path": "org.thymeleaf/thymeleaf/3.1.0.M2", + "libraries": [ + { + "name": "org.thymeleaf:thymeleaf", + "versions": [ + "3.1.0.M2" + ] + } + ] + }, + { + "test-project-path": "org.thymeleaf/thymeleaf/3.1.0.RC1", + "libraries": [ + { + "name": "org.thymeleaf:thymeleaf", + "versions": [ + "3.1.0.RC1" + ] + } + ] + }, + { + "test-project-path": "samples/docker/image-pull", + "libraries": [ + { + "name": "samples:docker", + "versions": [ + "image-pull" + ] + } + ] + } +] \ No newline at end of file diff --git a/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/.gitignore b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/.gitignore new file mode 100644 index 000000000..c98c7875b --- /dev/null +++ b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/.gitignore @@ -0,0 +1,4 @@ +gradlew.bat +gradlew +gradle/ +build/ diff --git a/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/access-filter.json b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/access-filter.json new file mode 100644 index 000000000..b13188648 --- /dev/null +++ b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/access-filter.json @@ -0,0 +1,7 @@ +{ + "regexRules": [ + { + "excludeClasses": ".*java\\..*" + } + ] +} diff --git a/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build.gradle b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build.gradle new file mode 100644 index 000000000..ce04ca0cf --- /dev/null +++ b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build.gradle @@ -0,0 +1,50 @@ +/* + * Copyright and related rights waived via CC0 + * + * You should have received a copy of the CC0 legalcode along with this + * work. If not, see . + */ + +plugins { + id "org.graalvm.internal.tck" +} + +String libraryVersion = tck.testedLibraryVersion.get() + +dependencies { + testImplementation "io.jsonwebtoken:jjwt-gson:$libraryVersion" + testImplementation 'org.assertj:assertj-core:3.22.0' + testImplementation "io.jsonwebtoken:jjwt-api:$libraryVersion" + testImplementation "io.jsonwebtoken:jjwt-impl:$libraryVersion" +} + +graalvmNative { + agent { + defaultMode = "conditional" + modes { + conditional { + userCodeFilterPath = "user-code-filter.json" + } + } + metadataCopy { + mergeWithExisting = true + inputTaskNames.add("test") + outputDirectories.add("src/test/resources/META-INF/native-image/io.jsonwebtoken/jjwt-gson") + } + accessFilterFiles.from("access-filter.json") + } + binaries { + all { + buildArgs.addAll([ + '--add-exports=java.base/sun.security.util=ALL-UNNAMED', + '--add-opens=java.base/java.io=ALL-UNNAMED' + ]) + } + } +} + +// Allow JJWT 0.12.0 to reflectively access JDK internals +tasks.withType(Test).configureEach { + jvmArgs '--add-exports', 'java.base/sun.security.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.io=ALL-UNNAMED' +} diff --git a/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/gradle.properties b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/gradle.properties new file mode 100644 index 000000000..ad4d25124 --- /dev/null +++ b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/gradle.properties @@ -0,0 +1,2 @@ +library.version = 0.12.0 +metadata.dir = io.jsonwebtoken/jjwt-gson/0.12.0/ diff --git a/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/settings.gradle b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/settings.gradle new file mode 100644 index 000000000..1c847c424 --- /dev/null +++ b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/settings.gradle @@ -0,0 +1,13 @@ +pluginManagement { + def tckPath = Objects.requireNonNullElse( + System.getenv("GVM_TCK_TCKDIR"), + "../../../../tck-build-logic" + ) + includeBuild(tckPath) +} + +plugins { + id "org.graalvm.internal.tck-settings" version "1.0.0-SNAPSHOT" +} + +rootProject.name = 'io.jsonwebtoken.jjwt-gson_tests' diff --git a/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/src/test/java/io_jsonwebtoken/jjwt_gson/Jjwt_gsonTest.java b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/src/test/java/io_jsonwebtoken/jjwt_gson/Jjwt_gsonTest.java new file mode 100644 index 000000000..043531dc1 --- /dev/null +++ b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/src/test/java/io_jsonwebtoken/jjwt_gson/Jjwt_gsonTest.java @@ -0,0 +1,99 @@ +/* + * Copyright and related rights waived via CC0 + * + * You should have received a copy of the CC0 legalcode along with this + * work. If not, see . + */ +package io_jsonwebtoken.jjwt_gson; + +import io.jsonwebtoken.SignatureAlgorithm; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.CompressionCodecs; +import io.jsonwebtoken.JwtParserBuilder; +import io.jsonwebtoken.io.Decoders; +import io.jsonwebtoken.io.Encoders; +import io.jsonwebtoken.security.Keys; +import org.junit.jupiter.api.Test; + +import javax.crypto.SecretKey; +import java.util.Date; +import java.util.UUID; +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +class Jjwt_gsonTest { + @Test + void testSignedJWTs() { + SecretKey firstKey = Keys.secretKeyFor(SignatureAlgorithm.HS256); + String secretString = Encoders.BASE64.encode(firstKey.getEncoded()); + SecretKey secondKey = Keys.hmacShaKeyFor(Decoders.BASE64.decode(secretString)); + assertThat(Jwts.parser().verifyWith(firstKey).build().parseSignedClaims( + Jwts.builder().setSubject("Joe").signWith(firstKey).compact() + ).getPayload().getSubject()).isEqualTo("Joe"); + assertThat(Jwts.parser().verifyWith(secondKey).build().parseSignedClaims( + Jwts.builder().setSubject("Joe").signWith(secondKey).compact() + ).getPayload().getSubject()).isEqualTo("Joe"); + } + + @Test + void testCreatingAJWS() { + Date firstDate = new Date(); + Date secondDate = new Date(System.currentTimeMillis() + 24 * 60 * 60 * 1000L); + String uuidString = UUID.randomUUID().toString(); + SecretKey firstKey = Keys.secretKeyFor(SignatureAlgorithm.HS256); + String firstCompactJws = Jwts.builder() + .setSubject("Joe") + .setHeaderParam("kid", "myKeyId") + .setIssuer("Aaron") + .setAudience("Abel") + .setExpiration(secondDate) + .setNotBefore(firstDate) + .setIssuedAt(firstDate) + .setId(uuidString) + .claim("exampleClaim", "Adam") + .signWith(firstKey) + .compressWith(CompressionCodecs.GZIP) + .compact(); + JwtParserBuilder jwtParserBuilder = Jwts.parser().clockSkewSeconds(3 * 60).verifyWith(firstKey); + assertThat(jwtParserBuilder.build().parseSignedClaims(firstCompactJws).getPayload().getSubject()).isEqualTo("Joe"); + assertDoesNotThrow(() -> jwtParserBuilder.requireSubject("Joe").build().parseSignedClaims(firstCompactJws)); + assertDoesNotThrow(() -> jwtParserBuilder.requireIssuer("Aaron").build().parseSignedClaims(firstCompactJws)); + assertDoesNotThrow(() -> jwtParserBuilder.requireAudience("Abel").build().parseSignedClaims(firstCompactJws)); + + // In JJWT 0.12.0 the Gson extension validates these claims correctly + assertDoesNotThrow(() -> jwtParserBuilder.requireExpiration(secondDate).build().parseSignedClaims(firstCompactJws)); + assertDoesNotThrow(() -> jwtParserBuilder.requireNotBefore(firstDate).build().parseSignedClaims(firstCompactJws)); + assertDoesNotThrow(() -> jwtParserBuilder.requireIssuedAt(firstDate).build().parseSignedClaims(firstCompactJws)); + assertDoesNotThrow(() -> jwtParserBuilder.requireId(uuidString).build().parseSignedClaims(firstCompactJws)); + assertDoesNotThrow(() -> jwtParserBuilder.require("exampleClaim", "Adam").build().parseSignedClaims(firstCompactJws)); + } + + @Test + void testCompression() { + SecretKey firstKey = Keys.secretKeyFor(SignatureAlgorithm.HS256); + assertThat(Jwts.parser().verifyWith(firstKey).build().parseSignedClaims( + Jwts.builder().setSubject("Joe").signWith(firstKey).compressWith(CompressionCodecs.DEFLATE).compact() + ).getPayload().getSubject()).isEqualTo("Joe"); + assertThat(Jwts.parser().verifyWith(firstKey).build().parseSignedClaims( + Jwts.builder().setSubject("Joe").signWith(firstKey).compressWith(CompressionCodecs.GZIP).compact() + ).getPayload().getSubject()).isEqualTo("Joe"); + } + + @Test + void testSignatureAlgorithms() { + Stream.of(SignatureAlgorithm.HS256, SignatureAlgorithm.HS384, SignatureAlgorithm.HS512) + .map(Keys::secretKeyFor) + .forEach(secretKey -> assertThat(Jwts.parser().verifyWith(secretKey).build().parseSignedClaims( + Jwts.builder().setSubject("Joe").signWith(secretKey).compact() + ).getPayload().getSubject()).isEqualTo("Joe")); + Stream.of(SignatureAlgorithm.ES256, SignatureAlgorithm.ES384, SignatureAlgorithm.ES512, + SignatureAlgorithm.RS256, SignatureAlgorithm.RS384, SignatureAlgorithm.RS512, + SignatureAlgorithm.PS256, SignatureAlgorithm.PS384, SignatureAlgorithm.PS512) + .map(Keys::keyPairFor) + .forEach(keyPair -> assertThat(Jwts.parser().verifyWith(keyPair.getPublic()).build().parseSignedClaims( + Jwts.builder().setSubject("Joe").signWith(keyPair.getPrivate()).compact() + ).getPayload().getSubject()).isEqualTo("Joe")); + } +} diff --git a/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/user-code-filter.json b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/user-code-filter.json new file mode 100644 index 000000000..f973903db --- /dev/null +++ b/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/user-code-filter.json @@ -0,0 +1,10 @@ +{ + "rules" : [ + { + "excludeClasses" : "**" + }, + { + "includeClasses" : "io.jsonwebtoken.**" + } + ] +} \ No newline at end of file