FINERACT-2181: Update dependencies

This commit is contained in:
Adam Saghy
2025-05-12 10:37:28 +02:00
parent 788cd7aff7
commit 8488918b3b
12 changed files with 119 additions and 76 deletions
+6 -4
View File
@@ -673,8 +673,9 @@ configure(project.fineractJavaProjects) {
'org.junit.jupiter:junit-jupiter-engine',
'org.junit.jupiter:junit-jupiter-params',
'org.junit.platform:junit-platform-runner', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
'org.bouncycastle:bcpkix-jdk15to18',
'org.bouncycastle:bcprov-jdk15to18',
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
'org.awaitility:awaitility',
)
@@ -781,8 +782,9 @@ configure(project.fineractCustomProjects) {
'org.junit.jupiter:junit-jupiter-api',
'org.junit.jupiter:junit-jupiter-engine',
'org.junit.platform:junit-platform-runner', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
'org.bouncycastle:bcpkix-jdk15to18',
'org.bouncycastle:bcprov-jdk15to18',
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
'org.awaitility:awaitility',
'io.github.classgraph:classgraph',
'io.cucumber:cucumber-core',
+7 -3
View File
@@ -45,10 +45,14 @@ dependencies {
implementation 'com.sun.activation:jakarta.activation'
implementation 'com.sun.mail:jakarta.mail'
implementation 'org.freemarker:freemarker'
implementation 'org.tmatesoft.svnkit:svnkit'
implementation 'org.bouncycastle:bcprov-jdk15on'
implementation 'org.bouncycastle:bcpg-jdk15on'
implementation ('com.tmatesoft.svnkit:svnkit') {
exclude group: 'net.i2p.crypto', module: 'eddsa'
}
implementation 'org.bouncycastle:bcprov-jdk18on'
implementation 'org.bouncycastle:bcutil-jdk18on'
implementation 'org.bouncycastle:bcpg-jdk18on'
implementation 'org.eclipse.jgit:org.eclipse.jgit'
implementation 'org.eclipse.jgit:org.eclipse.jgit.gpg.bc'
implementation 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache'
implementation 'com.vdurmont:semver4j'
implementation 'org.beryx:text-io'
@@ -53,10 +53,11 @@ dependencyManagement {
dependency 'org.eclipse.persistence:org.eclipse.persistence.jpa:4.0.2'
dependency 'com.google.guava:guava:32.0.0-jre'
dependency 'com.google.guava:guava:33.1.0-jre'
dependency 'com.google.code.gson:gson:2.11.0'
dependency 'com.google.googlejavaformat:google-java-format:1.24.0'
dependency 'org.apache.commons:commons-collections4:4.4'
dependency 'org.apache.commons:commons-compress:1.26.0'
dependency ('software.amazon.msk:aws-msk-iam-auth:2.2.0') {
exclude 'commons-logging:commons-logging:'
}
@@ -154,15 +155,16 @@ dependencyManagement {
dependency "commons-codec:commons-codec:1.17.1"
dependency "org.projectlombok:lombok:1.18.36"
dependency 'org.bouncycastle:bcpkix-jdk15to18:1.79'
dependency 'org.bouncycastle:bcprov-jdk15to18:1.79'
dependency 'org.bouncycastle:bcprov-jdk15on:1.70'
dependency 'org.bouncycastle:bcpg-jdk15on:1.70'
dependency 'org.bouncycastle:bcpkix-jdk18on:1.80'
dependency 'org.bouncycastle:bcprov-jdk18on:1.80'
dependency 'org.bouncycastle:bcutil-jdk18on:1.80'
dependency 'org.bouncycastle:bcpg-jdk18on:1.80'
dependency 'org.eclipse.jgit:org.eclipse.jgit:6.10.0.202406032230-r'
dependency 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache:7.0.0.202409031743-r'
dependency 'org.eclipse.jgit:org.eclipse.jgit:7.2.0.202503040940-r'
dependency 'org.eclipse.jgit:org.eclipse.jgit.gpg.bc:7.2.0.202503040940-r'
dependency 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache:7.2.0.202503040940-r'
dependency 'org.tmatesoft.svnkit:svnkit:1.10.11'
dependency ('com.tmatesoft.svnkit:svnkit:1.10.12')
dependency 'com.vdurmont:semver4j:3.1.0'
dependency 'org.beryx:text-io:3.4.1'
@@ -209,7 +211,7 @@ dependencyManagement {
dependency 'org.owasp.esapi:esapi:2.6.0.0'
dependency 'org.awaitility:awaitility:4.2.2'
dependencySet(group: 'org.apache.poi', version: '5.3.0') {
dependencySet(group: 'org.apache.poi', version: '5.4.1') {
entry 'poi'
entry 'poi-ooxml'
entry 'poi-ooxml-schemas'
@@ -244,7 +246,9 @@ dependencyManagement {
dependency 'org.mockito:mockito-inline:5.2.0'
dependency 'com.github.tomakehurst:wiremock-standalone:3.0.1'
dependency 'org.wiremock:wiremock-standalone:3.13.0'
dependency 'org.apache.sshd:sshd-common:2.15.0'
dependency 'org.apache.sshd:sshd-core:2.15.0'
dependency 'io.cucumber:cucumber-java:7.20.1'
dependency 'io.cucumber:cucumber-java8:7.20.1'
@@ -19,14 +19,15 @@
package org.apache.fineract.gradle.service
import org.apache.fineract.gradle.FineractPluginExtension
import org.eclipse.jgit.annotations.NonNull
import org.eclipse.jgit.annotations.Nullable
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.api.errors.CanceledException
import org.eclipse.jgit.lib.CommitBuilder
import org.eclipse.jgit.lib.GpgSigner
import org.eclipse.jgit.api.errors.UnsupportedSigningFormatException
import org.eclipse.jgit.gpg.bc.internal.BouncyCastleGpgSigner
import org.eclipse.jgit.lib.GpgConfig
import org.eclipse.jgit.lib.GpgSignature
import org.eclipse.jgit.lib.PersonIdent
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.lib.Signers
import org.eclipse.jgit.lib.StoredConfig
import org.eclipse.jgit.storage.file.FileRepositoryBuilder
import org.eclipse.jgit.transport.CredentialsProvider
@@ -41,14 +42,15 @@ class GitService {
private boolean dryRun
GitService(FineractPluginExtension.FineractPluginConfigGit config, FineractPluginExtension.FineractPluginConfigGpg gpgConfig) {
GpgSigner.setDefault(new GpgSigner() {
Signers.set(GpgConfig.GpgFormat.OPENPGP, new BouncyCastleGpgSigner() {
@Override
void sign(@NonNull CommitBuilder commit, @Nullable String gpgSigningKey, @NonNull PersonIdent committer, CredentialsProvider credentialsProvider) throws CanceledException {
GpgSignature sign(Repository repository, GpgConfig internalConfig, byte[] data, PersonIdent committer, String signingKey, CredentialsProvider credentialsProvider) throws CanceledException, IOException, UnsupportedSigningFormatException {
log.warn("------------------------ KEY: ${gpgSigningKey} IDENT: ${committer}")
}
@Override
boolean canLocateSigningKey(@Nullable String gpgSigningKey, @NonNull PersonIdent committer, CredentialsProvider credentialsProvider) throws CanceledException {
boolean canLocateSigningKey(Repository repository, GpgConfig internalConfig, PersonIdent committer, String signingKey, CredentialsProvider credentialsProvider) throws CanceledException {
log.warn("------------------------ KEY: ${gpgSigningKey} IDENT: ${committer}")
return false
}
+1 -1
View File
@@ -67,7 +67,7 @@ dependencies {
testImplementation 'com.github.spotbugs:spotbugs-annotations'
testImplementation 'com.squareup.retrofit2:retrofit:2.11.0'
testImplementation 'commons-httpclient:commons-httpclient:3.1'
testImplementation 'org.apache.httpcomponents:httpclient:4.5.14'
testImplementation 'org.apache.commons:commons-lang3:3.17.0'
testImplementation 'com.googlecode.json-simple:json-simple:1.1.1'
testImplementation 'com.google.code.gson:gson:2.11.0'
@@ -22,12 +22,12 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import lombok.RequiredArgsConstructor;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.fineract.client.models.GlobalConfigurationPropertyData;
import org.apache.fineract.client.models.PutGlobalConfigurationsRequest;
import org.apache.fineract.client.models.PutGlobalConfigurationsResponse;
import org.apache.fineract.client.services.GlobalConfigurationApi;
import org.apache.http.HttpStatus;
import org.springframework.stereotype.Component;
import retrofit2.Response;
@@ -27,9 +27,9 @@ import java.util.regex.Pattern;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import okhttp3.ResponseBody;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.http.HttpStatus;
import org.junit.runner.Result;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.annotation.Conditional;
+1 -1
View File
@@ -39,7 +39,7 @@ dependencies {
testImplementation 'org.springframework:spring-jms'
testImplementation 'com.squareup.retrofit2:retrofit:2.11.0'
testImplementation 'commons-httpclient:commons-httpclient:3.1'
testImplementation 'org.apache.httpcomponents:httpclient:4.5.14'
testImplementation 'org.apache.commons:commons-lang3:3.17.0'
testImplementation 'com.googlecode.json-simple:json-simple:1.1.1'
testImplementation 'com.google.code.gson:gson:2.11.0'
@@ -88,56 +88,82 @@ public class ClasspathDuplicatesStepDefinitions implements En {
private boolean skipJAR(String jarPath) {
// ./gradlew test finds classes from the Gradle Wrapper (which don't
// show up in-IDE), exclude those
return jarPath.contains("/.gradle/wrapper/dists/") || jarPath.contains("/JetBrains/");
return jarPath.contains("/.gradle/wrapper/dists/") //
|| jarPath.contains("/JetBrains/"); //
}
private boolean isHarmlessDuplicate(String resourcePath) {
return resourcePath.equals("META-INF/MANIFEST.MF") || resourcePath.equals("META-INF/INDEX.LIST")
|| resourcePath.equals("META-INF/ORACLE_J.SF") || resourcePath.toUpperCase().startsWith("META-INF/ASL")
|| resourcePath.toUpperCase().startsWith("META-INF/NOTICE") || resourcePath.toUpperCase().startsWith("META-INF/LICENSE")
|| resourcePath.toUpperCase().startsWith("META-INF/COPYRIGHT") || resourcePath.toUpperCase().startsWith("LICENSE")
|| resourcePath.toUpperCase().startsWith("LICENSE/NOTICE")
return resourcePath.equals("META-INF/MANIFEST.MF") //
|| resourcePath.equals("OSGI-INF/MANIFEST.MF") //
|| resourcePath.equals("META-INF/INDEX.LIST") //
|| resourcePath.equals("META-INF/ORACLE_J.SF") //
|| resourcePath.toUpperCase().startsWith("META-INF/ASL") //
|| resourcePath.toUpperCase().startsWith("META-INF/NOTICE") //
|| resourcePath.toUpperCase().startsWith("META-INF/LICENSE") //
|| resourcePath.toUpperCase().startsWith("META-INF/COPYRIGHT") //
|| resourcePath.toUpperCase().startsWith("LICENSE") //
|| resourcePath.toUpperCase().startsWith("LICENSE/NOTICE") //
// list formerly in ClasspathHellDuplicatesCheckRule (moved here
// in INFRAUTILS-52)
|| resourcePath.endsWith(".txt") || resourcePath.endsWith("LICENSE") || resourcePath.endsWith("license.html")
|| resourcePath.endsWith("AL2.0") || resourcePath.endsWith("LGPL2.1") || resourcePath.endsWith("about.html")
|| resourcePath.endsWith("readme.html") || resourcePath.startsWith("META-INF/services")
|| resourcePath.equals("META-INF/DEPENDENCIES") || resourcePath.equals("META-INF/git.properties")
|| resourcePath.equals("META-INF/io.netty.versions.properties") || resourcePath.equals("META-INF/jersey-module-version")
|| resourcePath.startsWith("OSGI-INF/blueprint/")
|| resourcePath.endsWith(".txt") //
|| resourcePath.endsWith("LICENSE") //
|| resourcePath.endsWith("license.html") //
|| resourcePath.endsWith("AL2.0") //
|| resourcePath.endsWith("LGPL2.1") //
|| resourcePath.endsWith("about.html") //
|| resourcePath.endsWith("readme.html") //
|| resourcePath.startsWith("META-INF/services") //
|| resourcePath.equals("META-INF/DEPENDENCIES") //
|| resourcePath.equals("META-INF/git.properties") //
|| resourcePath.equals("META-INF/io.netty.versions.properties") //
|| resourcePath.equals("META-INF/jersey-module-version") //
|| resourcePath.startsWith("OSGI-INF/blueprint/") //
// in Akka's JARs
|| resourcePath.startsWith("org/opendaylight/blueprint/") || resourcePath.endsWith("reference.conf")
|| resourcePath.startsWith("org/opendaylight/blueprint/") //
|| resourcePath.endsWith("reference.conf") //
// json-schema-core and json-schema-validator depend on each
// other and include these files
|| resourcePath.equals("draftv4/schema") || resourcePath.equals("draftv3/schema") //
|| resourcePath.equals("WEB-INF/web.xml") || resourcePath.equals("META-INF/web-fragment.xml")
|| resourcePath.equals("META-INF/eclipse.inf") || resourcePath.equals("META-INF/ECLIPSE_.SF")
|| resourcePath.equals("META-INF/ECLIPSE_.RSA") || resourcePath.equals("META-INF/BC2048KE.DSA")
|| resourcePath.equals("META-INF/BC1024KE.DSA") || resourcePath.equals("META-INF/BC2048KE.SF")
|| resourcePath.equals("META-INF/BC1024KE.SF") || resourcePath.equals("OSGI-INF/bundle.info")
|| resourcePath.equals("META-INF/DUMMY.SF") || resourcePath.equals("META-INF/DUMMY.DSA")
|| resourcePath.equals("META-INF/FastDoubleParser-NOTICE") || resourcePath.equals("META-INF/validation-mapping-1.0.xsd")
|| resourcePath.equals("META-INF/validation-mapping-1.1.xsd") || resourcePath.equals("META-INF/validation-mapping-2.0.xsd")
|| resourcePath.equals("META-INF/validation-mapping-3.0.xsd")
|| resourcePath.equals("META-INF/validation-configuration-1.0.xsd")
|| resourcePath.equals("META-INF/validation-configuration-1.1.xsd")
|| resourcePath.equals("META-INF/validation-configuration-2.0.xsd")
|| resourcePath.equals("META-INF/validation-configuration-3.0.xsd")
|| resourcePath.equals("draftv4/schema") //
|| resourcePath.equals("draftv3/schema") //
|| resourcePath.equals("WEB-INF/web.xml") //
|| resourcePath.equals("META-INF/web-fragment.xml") //
|| resourcePath.equals("META-INF/eclipse.inf") //
|| resourcePath.equals("META-INF/ECLIPSE_.SF") //
|| resourcePath.equals("META-INF/ECLIPSE_.RSA") //
|| resourcePath.equals("META-INF/BC2048KE.DSA") //
|| resourcePath.equals("META-INF/BC1024KE.DSA") //
|| resourcePath.equals("META-INF/BC2048KE.SF") //
|| resourcePath.equals("META-INF/BC1024KE.SF") //
|| resourcePath.equals("OSGI-INF/bundle.info") //
|| resourcePath.equals("META-INF/DUMMY.SF") //
|| resourcePath.equals("META-INF/DUMMY.DSA") //
|| resourcePath.equals("META-INF/FastDoubleParser-NOTICE") //
|| resourcePath.equals("META-INF/validation-mapping-1.0.xsd") //
|| resourcePath.equals("META-INF/validation-mapping-1.1.xsd") //
|| resourcePath.equals("META-INF/validation-mapping-2.0.xsd") //
|| resourcePath.equals("META-INF/validation-mapping-3.0.xsd") //
|| resourcePath.equals("META-INF/validation-configuration-1.0.xsd") //
|| resourcePath.equals("META-INF/validation-configuration-1.1.xsd") //
|| resourcePath.equals("META-INF/validation-configuration-2.0.xsd") //
|| resourcePath.equals("META-INF/validation-configuration-3.0.xsd") //
// Spring Framework knows what they are do..
|| resourcePath.startsWith("META-INF/spring") || resourcePath.startsWith("META-INF/additional-spring")
|| resourcePath.startsWith("META-INF/terracotta") || resourcePath.startsWith("com/fasterxml/jackson/core/io/doubleparser")
|| resourcePath.startsWith("META-INF/spring") //
|| resourcePath.startsWith("META-INF/additional-spring") //
|| resourcePath.startsWith("META-INF/terracotta") //
|| resourcePath.startsWith("com/fasterxml/jackson/core/io/doubleparser") //
// Groovy is groovy
|| resourcePath.startsWith("META-INF/groovy")
|| resourcePath.startsWith("org/springframework/batch/core/scope/context/JobSynchronizationManager")
|| resourcePath.startsWith("org/springframework/batch/core/scope/context/StepSynchronizationManager")
|| resourcePath.startsWith("META-INF/groovy") //
|| resourcePath.startsWith("org/springframework/batch/core/scope/context/JobSynchronizationManager") //
|| resourcePath.startsWith("org/springframework/batch/core/scope/context/StepSynchronizationManager") //
// Something doesn't to be a perfectly clean in Maven Surefire:
|| resourcePath.startsWith("META-INF/maven/") || resourcePath.contains("surefire")
|| resourcePath.startsWith("META-INF/maven/") //
|| resourcePath.contains("surefire") //
// org.slf4j.impl.StaticLoggerBinder.class in testutils for the
// LogCaptureRule
|| resourcePath.equals("org/slf4j/impl/StaticLoggerBinder.class")
|| resourcePath.equals("org/slf4j/impl/StaticLoggerBinder.class") //
// INFRAUTILS-35: JavaLaunchHelper is both in java and
// libinstrument.dylib (?) on Mac OS X
|| resourcePath.contains("JavaLaunchHelper")
|| resourcePath.contains("JavaLaunchHelper") //
// jakarta.annotation is a big mess... :( E.g.
// jakarta.annotation.Resource (and some others)
// are present both in rt.jar AND jakarta.annotation-api-1.3.2.jar
@@ -150,7 +176,7 @@ public class ClasspathDuplicatesStepDefinitions implements En {
// own JAR for jakarta.annotation
// and have it contain ONLY what is not already in package
// jakarta.annotation in rt.jar.. but for now:
|| resourcePath.equals("jakarta.annotation/Resource$AuthenticationType.class")
|| resourcePath.equals("jakarta.annotation/Resource$AuthenticationType.class") //
// NEUTRON-205: jakarta.inject is a mess :( because of
// jakarta.inject:jakarta.inject (which we widely use in ODL)
// VS. org.glassfish.hk2.external:jakarta.inject (which Glassfish
@@ -163,18 +189,21 @@ public class ClasspathDuplicatesStepDefinitions implements En {
// (2.25.1) has a non-optional Package-Import
// for jakarta.inject, but we made jakarta.inject:jakarta.inject
// <optional>true in odlparent, and don't bundle it.
|| resourcePath.startsWith("jakarta.inject/")
|| resourcePath.startsWith("jakarta.inject/") //
// Java 9 modules
|| resourcePath.endsWith("module-info.class") || resourcePath.contains("findbugs")
|| resourcePath.endsWith("module-info.class") //
|| resourcePath.contains("findbugs") //
// list newly introduced in INFRAUTILS-52, because classgraph
// scans more than JHades did
|| resourcePath.equals("plugin.properties") || resourcePath.equals(".api_description")
|| resourcePath.equals("plugin.properties") //
|| resourcePath.equals(".api_description") //
// errorprone with Java 11 integration leaks to classpath, which
// causes a conflict between
// checkerframework/checker-qual and checkerframework/dataflow
|| resourcePath.startsWith("org/checkerframework/dataflow/qual/")
|| resourcePath.startsWith("org/checkerframework/dataflow/qual/") //
// Pentaho reports harmless duplicates
|| resourcePath.endsWith("overview.html") || resourcePath.endsWith("classic-engine.properties")
|| resourcePath.endsWith("loader.properties");
|| resourcePath.endsWith("overview.html") //
|| resourcePath.endsWith("classic-engine.properties") //
|| resourcePath.endsWith("loader.properties"); //
}
}
+2 -2
View File
@@ -56,6 +56,6 @@ dependencies {
testImplementation 'org.mapstruct:mapstruct'
testAnnotationProcessor 'org.mapstruct:mapstruct-processor'
testImplementation 'com.github.tomakehurst:wiremock-standalone'
testImplementation 'com.google.guava:guava:32.1.3-jre'
testImplementation 'org.wiremock:wiremock-standalone'
testImplementation 'com.google.guava:guava'
}
+3 -2
View File
@@ -24,8 +24,9 @@ dependencies {
testImplementation( files("$rootDir/fineract-provider/build/classes/java/main/"),
project(path: ':fineract-provider', configuration: 'runtimeElements'),
'org.junit.jupiter:junit-jupiter-api',
'org.bouncycastle:bcpkix-jdk15to18',
'org.bouncycastle:bcprov-jdk15to18',
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
)
testImplementation ('io.rest-assured:rest-assured') {
exclude group: 'commons-logging'
+3 -2
View File
@@ -25,8 +25,9 @@ dependencies {
project(path: ':fineract-provider', configuration: 'runtimeElements'),
'org.junit.jupiter:junit-jupiter-api',
'com.icegreen:greenmail-junit5',
'org.bouncycastle:bcpkix-jdk15to18',
'org.bouncycastle:bcprov-jdk15to18',
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
)
testImplementation ('io.rest-assured:rest-assured') {
exclude group: 'commons-logging'