The below issue has been resolved, I have now added the *bold *script from
https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
and now my builds are successful again. I think with this I am proposing a
new approach to such issues. Why not have a dedicated StackOverflow
Collective? I will write another email to raise awareness.

Solution:

// TODO: this is work in progress, please follow FINERACT-1171
> buildscript {
>
>> ext {
>> jacocoVersion = '0.8.12'
>> retrofitVersion = '2.9.0'
>> okhttpVersion = '4.9.3'
>> fineractCustomProjects = []
>> fineractJavaProjects = subprojects.findAll{
>> [
>> 'fineract-core',
>> 'fineract-cob',
>> 'fineract-validation',
>> 'fineract-command',
>> 'fineract-accounting',
>> 'fineract-provider',
>> 'fineract-branch',
>> 'fineract-document',
>> 'fineract-investor',
>> 'fineract-charge',
>> 'fineract-rates',
>> 'fineract-tax',
>> 'fineract-loan',
>> 'fineract-savings',
>> 'fineract-report',
>> 'integration-tests',
>> 'twofactor-tests',
>> 'oauth2-tests',
>> 'fineract-client',
>> 'fineract-avro-schemas',
>> 'fineract-e2e-tests-core',
>> 'fineract-e2e-tests-runner',
>> 'fineract-progressive-loan',
>> 'fineract-progressive-loan-embeddable-schedule-generator'
>> ].contains(it.name)
>> }
>
> fineractPublishProjects = subprojects.findAll{
> [
> 'fineract-avro-schemas',
> 'fineract-client',
> 'fineract-core',
> 'fineract-cob',
> 'fineract-validation',
> 'fineract-command',
> 'fineract-accounting',
> 'fineract-provider',
> 'fineract-investor',
> 'fineract-charge',
> 'fineract-rates',
> 'fineract-tax',
> 'fineract-loan',
> 'fineract-savings',
> 'fineract-report',
> 'fineract-branch',
> 'fineract-document',
> 'fineract-progressive-loan',
> 'fineract-progressive-loan-embeddable-schedule-generator'
> ].contains(it.name)
> }
> npmRepository = 'https://npm.pkg.github.com'
> }
> repositories {
> maven { url 'https://plugins.gradle.org/m2/' }
> }


dependencies {
classpath 'com.bmuschko:gradle-cargo-plugin:2.9.0'
classpath 'org.eclipse.persistence:eclipselink:4.0.6'
classpath 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
classpath 'com.google.cloud.tools:jib-layer-filter-extension-gradle:0.3.0'
classpath 'org.apache.commons:commons-lang3:3.18.0'
classpath 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.22'
classpath 'jakarta.servlet:jakarta.servlet-api:6.1.0'
}
}

plugins {
id 'me.qoomon.git-versioning' version '6.4.4'
id "org.barfuin.gradle.taskinfo" version "2.2.0"
id 'com.adarshr.test-logger' version '4.0.0'
id 'com.diffplug.spotless' version '6.25.0' apply false
id 'org.nosphere.apache.rat' version '0.8.1' apply false
id 'com.github.hierynomus.license' version '0.16.1' apply false
id 'com.github.jk1.dependency-license-report' version '2.9' apply false
id 'org.zeroturnaround.gradle.jrebel' version '1.2.0' apply false
id 'org.springframework.boot' version '3.5.5' apply false
id 'net.ltgt.errorprone' version '4.1.0' apply false
id 'io.swagger.core.v3.swagger-gradle-plugin' version '2.2.23' apply false
id 'com.gorylenko.gradle-git-properties' version '2.4.2' apply false
// can't upgrade to 4.x because of one of these:
// https://github.com/asciidoctor/asciidoctorj-pdf/issues/25
// https://github.com/jruby/jruby/issues/5573
// https://github.com/asciidoctor/asciidoctorj-pdf/issues/16
id 'org.asciidoctor.jvm.convert' version '3.3.2' apply false
id 'org.asciidoctor.jvm.pdf' version '3.3.2' apply false
id 'com.google.cloud.tools.jib' version '3.4.5' apply false
id 'org.sonarqube' version '6.0.1.5171'
id 'com.github.andygoossens.modernizer' version '1.10.0' apply false
// TODO: upgrade to 6.0.4
id 'com.github.spotbugs' version '6.0.26' apply false
id 'se.thinkcode.cucumber-runner' version '0.0.11' apply false
id "com.github.davidmc24.gradle.plugin.avro-base" version "1.9.1" apply
false
id 'org.openapi.generator' version '7.8.0' apply false
id 'com.gradleup.shadow' version '8.3.5' apply false
id 'me.champeau.jmh' version '0.7.1' apply false
}

apply from:
"${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.release.gradle"

description = '''\
Run as:
gradle clean bootRun'''

version = '0.0.0-SNAPSHOT'

gitVersioning.apply {
refs {
considerTagsOnBranches = true
describeTagPattern = '.*(\\d+\\.\\d+\\.\\d+).*'
describeTagFirstParent = false

branch("release\\/\\d+\\.\\d+\\.\\d+") {
version =
'${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
}
branch("maintenance\\/\\d+\\.\\d+") {
version =
'${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
}
tag("(\\d+\\.\\d+\\.\\d+)") {
version =
'${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
}
}
rev {
version =
'${describe.tag.version.major}.${describe.tag.version.minor.next}.0-SNAPSHOT'
}
}

ext['groovy.version'] = '4.0.17'
ext['swaggerFile'] =
"$rootDir/fineract-provider/build/resources/main/static/fineract.json".toString()

// Apply static weaving configuration to all subprojects
subprojects { subproject ->
apply from: rootProject.file('static-weaving.gradle')
}

allprojects {
group = 'org.apache.fineract'

repositories {
mavenCentral()
}

configurations {
implementation {
exclude group: 'commons-logging', module: 'commons-logging'
}

api {
canBeResolved = true
}
}

apply plugin: 'com.adarshr.test-logger'
apply plugin: 'com.diffplug.spotless'
apply plugin: 'com.github.hierynomus.license'
apply plugin: 'net.ltgt.errorprone'

tasks.withType(JavaCompile).configureEach {
options.errorprone {
disableWarningsInGeneratedCode = true
disable(
"CanIgnoreReturnValueSuggester",
"SameNameButDifferent", // Until errorprone recognizes Lombok
"MultiVariableDeclaration", // Until errorprone recognizes Lombok
"UnnecessaryDefaultInEnumSwitch", // FINERACT-1911
"AssertEqualsArgumentOrderChecker",
"RemoveUnusedImports" // For generated code
)
error(
"DefaultCharset",
"StringSplitter",
"MutablePublicArray",
"EqualsGetClass",
"FutureReturnValueIgnored"
)
}
}

apply plugin: 'org.nosphere.apache.rat'
apply plugin: 'com.github.jk1.dependency-license-report'

// Configuration for the sonarqube plugin is now in GitHub Actions

// Configuration for the spotless plugin
// https://github.com/diffplug/spotless/tree/main/plugin-gradle
spotless {
format 'misc', {
target '**/*.md', '**/*.properties', '**/.gitignore',
'**/.openapi-generator-ignore', '**/*.yml', '**/*.xml', '**/**.json',
'**/*.sql'
targetExclude '**/build/**', '**/bin/**', '**/.settings/**', '**/.idea/**',
'**/.gradle/**', '**/gradlew.bat', '**/licenses/**', '**/banner.txt',
'.vscode/**', '.profileconfig.json'
indentWithSpaces(4)
endWithNewline()
trimTrailingWhitespace()
}

groovyGradle {
target '*.gradle', '**/*.gradle'
targetExclude '**/build/**', '/**/build.gradle' // TODO: temporary disabled
on build.gradle until someone fix this issue:
https://github.com/diffplug/spotless/issues/1807
greclipse()
indentWithSpaces(4)
endWithNewline()
trimTrailingWhitespace()
}

lineEndings 'UNIX'
}

// Configuration for Gradle license plug-in
// https://github.com/hierynomus/license-gradle-plugin
license {
header rootProject.file("$rootDir/APACHE_LICENSETEXT.md")
excludes([
"**/gradlew*",
"**/git.properties",
"**/*.html",
"**/templates/**",
"**/features/**",
"**/results/**",
"**/package-info.java",
"**/keystore.jks",
"**/legacy-docs/**",
"**/banner.txt",
"**/build.gradle.mustache",
"**/pom.mustache",
"**/avro/**/*.java",
"**/org/apache/fineract/client/**/*.java"
])
strictCheck true
}

licenseReport {
outputDir = "$projectDir/licenses"
}

// Configuration for Apache Release Audit Tool task
// https://github.com/eskatos/creadur-rat-gradle
rat {
verbose = false
reportDir = file("$buildDir/reports/rat")
excludes = [
'**/src/main/templates/**/*.mustache',
'**/.dockerignore',
'**/*.launch',
'**/licenses/**',
'**/*.md',
'**/*.adoc',
'**/*.puml',
'**/*.github/**',
'**/MANIFEST.MF',
'**/spring.factories',
'**/org.springframework.boot.autoconfigure.AutoConfiguration.imports',
'**/*.json',
'**/*.json.template',
'**/*.txt',
'**/*.log',
'**/fineractdev-eclipse-preferences.epf',
'**/features/**',
'**/templates/**',
'**/results/**',
'**/.classpath',
'**/.project',
'**/.idea/**',
'**/*.ipr',
'**/*.iws',
'**/.settings/**',
'**/bin/**',
'**/.git/**',
'**/.gitignore',
'**/.openapi-generator-ignore',
'**/.gitkeep',
'**/*.iml',
'**/config/swagger/templates/**',
// Notice files
'**/NOTICE_RELEASE',
'**/NOTICE_SOURCE',
// gradle
'**/.gradle/**',
'**/gradlew',
'**/gradlew.bat',
'**/gradle/wrapper/gradle-wrapper.properties',
'**/caches/**',
'**/daemon/**',
'**/native/**',
'**/wrapper/**',
'**/build/**',
// Api Docs
'**/legacy-docs/*.*',
'**/docs/system-architecture/.htaccess',
'**/docs/system-architecture/404.html',
'**/docs/system-architecture/index.html',
'**/docs/system-architecture/**/*.xml',
'**/bootstrap-3.0.0/assets/application.js',
'**/system-architecture/js/plugins.js',
// Apache License
'**/bootstrap-3.0.0/assets/less.js',
'**/css/bootstrap-3.0.0/**/*.*',
// Public Domain See http://www.JSON.org/js.html
'**/bootstrap-3.0.0/assets/json2.js.htm',
// MIT License
'**/modernizr-2.6.2.min.js',
'**/css/normalize.css',
'**/assets/filesaver.js',
'**/css/fonts/glyphicons-halflings-regular.svg',
'**/assets/jszip.js',
'**/assets/jquery.js',
'**/legacy-docs/jquery-1.7.min.js',
'**/css/toc-0.1.2/**/*.*',
'**/docs/system-architecture/css/main.css',
'**/system-architecture/js/vendor/jquery-1.9.1.min.js',
'**/system-architecture/js/vendor/toc-0.1.2/jquery.toc.min.js',
'**/assets/respond.min.js',
'**/assets/html5shiv.js',
// BSD License
'**/assets/uglify.js',
// Ignore out folder
'**/out/**',
// Git build info
"**/git.properties",
".mailmap",
'**/images/diag-*.svg',
'**/*.avsc',
"**/generated/**/*MapperImpl.java",
'**/META-INF/fineract-test.config',
// Apache-specific GitHub metadata settings file
'/.asf.yaml',
'**/*.sh'
]
}
}

// NOTE: dynamically load all custom modules
file("${rootDir}/custom").eachDir { companyDir ->
if('build' != companyDir.name && 'docker' != companyDir.name) {
file("${rootDir}/custom/${companyDir.name}").eachDir { categoryDir ->
if('build' != categoryDir.name) {
file("${rootDir}/custom/${companyDir.name}/${categoryDir.name}").eachDir {
moduleDir ->
if('build' != moduleDir.name) {
project.fineractJavaProjects.add(project(":custom:${companyDir.name}:${categoryDir.name}:${moduleDir.name}"))
project.fineractCustomProjects.add(project(":custom:${companyDir.name}:${categoryDir.name}:${moduleDir.name}"))
}
}
}
}
}
}

configure(project.fineractJavaProjects) {
// NOTE: order matters!

apply plugin: 'java'
apply plugin: 'idea'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
withSourcesJar()
withJavadocJar()
}

// Add performance optimizations
configurations.all {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
cacheDynamicVersionsFor 0, 'seconds'
}
}

tasks.withType(JavaCompile).configureEach {
options.incremental = true
options.fork = true
outputs.cacheIf { true }
options.compilerArgs << '-parameters'
options.encoding = 'UTF-8'
options.compilerArgs << '-Xlint:unchecked'
options.compilerArgs << '-Xlint:deprecation'
if (project.hasProperty('warnings') && project.warnings.contains('fail')) {
options.compilerArgs << '-Werror'
}
if (project.hasProperty('warnings') && project.warnings.contains('none')) {
options.compilerArgs << '-nowarn'
}
if (project.plugins.hasPlugin('org.springframework.boot')) {
options.generatedSourceOutputDirectory =
file("$buildDir/generated/sources/annotationProcessor/java/main")
}
options.generatedSourceOutputDirectory =
file("$buildDir/generated/sources/annotationProcessor/java/main")
}

apply plugin: 'eclipse'
apply plugin: 'checkstyle'
apply plugin: 'jacoco'
apply plugin: 'com.github.spotbugs'
apply plugin: 'com.github.andygoossens.modernizer'
apply from:
"${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle"

group = 'org.apache.fineract'

configurations.named('spotbugs').configure {
resolutionStrategy.eachDependency {
if (it.requested.group == 'org.ow2.asm') {
it.useVersion '9.5'
it.because "Asm 9.5 is required for JDK 21 support"
}
}
}

configurations {
api.setCanBeResolved(true)
}
tasks.withType(Copy) {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks.withType(JavaCompile) {
options.compilerArgs += [
"-Xlint:cast",
"-Xlint:auxiliaryclass",
"-Xlint:dep-ann",
"-Xlint:divzero",
"-Xlint:empty",
"-Xlint:exports",
"-Xlint:fallthrough",
"-Xlint:finally",
"-Xlint:module",
"-Xlint:opens",
"-Xlint:options",
"-Xlint:overloads",
"-Xlint:overrides",
"-Xlint:path",
"-Xlint:processing",
"-Xlint:removal",
"-Xlint:requires-automatic",
"-Xlint:requires-transitive-automatic",
"-Xlint:try",
"-Xlint:varargs",
"-Xlint:preview",
"-Xlint:static",
// -Werror needs to be disabled because EclipseLink's static weaving
doesn't generate warning-free code
// and during an IntelliJ recompilation, it fails
//"-Werror",
"-Xmaxwarns",
"1500",
"-Xmaxerrs",
"1500"
]
// TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X")

options.deprecation = true
}

check {
dependsOn(rat, licenseMain, licenseTest)
}

dependencies {
spotbugsPlugins 'jp.skypencil.findbugs.slf4j:bug-pattern:1.5.0@jar'
}

// Configuration for the spotless plugin
// https://github.com/diffplug/spotless/tree/main/plugin-gradle
spotless {
java {
targetExclude '**/build/**', '**/bin/**', '**/out/**'
importOrder() //sort imports alphabetically
removeUnusedImports()
eclipse().configFile "$rootDir/config/fineractdev-formatter.xml"
endWithNewline()
trimTrailingWhitespace()

// Enforce style modifier order
custom 'Modifier ordering', {
def modifierRanking = [
public : 1,
protected : 2,
private : 3,
abstract : 4,
default : 5,
static : 6,
final : 7,
transient : 8,
volatile : 9,
synchronized: 10,
native : 11,
strictfp : 12]
// Find any instance of multiple modifiers. Lead with a non-word character
to avoid
// accidental matching against for instance, "an alternative default value"
it.replaceAll(/\W(?:public |protected |private |abstract |default |static
|final |transient |volatile |synchronized |native |strictfp ){2,}/, {
// Do not replace the leading non-word character. Identify the modifiers
it.replaceAll(/(?:public |protected |private |abstract |default |static
|final |transient |volatile |synchronized |native |strictfp ){2,}/, {
// Sort the modifiers according to the ranking above
it.split().sort({ modifierRanking[it] }).join(' ') + ' '
}
)
}
)
}
}

lineEndings 'UNIX'
}

// If we are running Gradle within Eclipse to enhance classes,
// set the classes directory to point to Eclipse's default build directory
if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
sourceSets.main.java.outputDir = file("$projectDir/bin/main")
}

// Configuration for the Checkstyle plugin
// https://docs.gradle.org/current/userguide/checkstyle_plugin.html
dependencies {
checkstyle 'com.puppycrawl.tools:checkstyle:11.0.0'
checkstyle 'com.github.sevntu-checkstyle:sevntu-checks:1.44.1'
}

// Configuration for JaCoCo code coverage task
// https://www.eclemma.org/jacoco/
jacoco {
toolVersion = jacocoVersion
reportsDirectory = file("$buildDir/reports/jacoco")
}

jacocoTestReport {
reports {
html.required = true
xml.required = true
html.outputLocation = layout.buildDirectory.dir('code-coverage')
}
}

// Configuration for the errorprone plugin
// https://github.com/tbroyer/gradle-errorprone-plugin
dependencies {
errorprone "com.google.errorprone:error_prone_core:2.35.1"
}

tasks.withType(JavaCompile).configureEach {
options.errorprone {
enabled = project.gradle.startParameter.taskNames.contains('build') ||
project.gradle.startParameter.taskNames.contains('check')
if (project.path == ':fineract-client') {
excludedPaths = '.*/build/generated/java/src/main/java/.*'
}
disable(
// TODO Remove disabled checks from this list, by fixing remaining usages
"UnusedVariable",
"TypeParameterUnusedInFormals",
"EmptyBlockTag",
"MissingSummary",
"InvalidParam",
"ReturnFromVoid",
"AlmostJavadoc",
"InvalidBlockTag",
"JavaUtilDate", // TODO FINERACT-1298
"ReturnValueIgnored",
"DirectInvocationOnMock",
"CanIgnoreReturnValueSuggester",
"SameNameButDifferent", // Until errorprone recognizes Lombok
"MultiVariableDeclaration", // Until errorprone recognizes Lombok
"UnnecessaryDefaultInEnumSwitch" // FINERACT-1911
)
error(
"DefaultCharset",
"RemoveUnusedImports",
"WaitNotInLoop",
"ThreeLetterTimeZoneID",
"VariableNameSameAsType",
"UnnecessaryParentheses",
"MultipleTopLevelClasses",
"MixedMutabilityReturnType",
"AssertEqualsArgumentOrderChecker",
"EmptySetMultibindingContributions",
"BigDecimalEquals",
"MixedArrayDimensions",
"PackageLocation",
"UseBinds",
"BadImport",
"IntLongMath",
"FloatCast",
"ReachabilityFenceUsage",
"StreamResourceLeak",
"TruthIncompatibleType",
"ByteBufferBackingArray",
"OrphanedFormatString",
"CatchAndPrintStackTrace",
"ObjectToString",
"StringSplitter",
"AssertThrowsMultipleStatements",
"BoxedPrimitiveConstructor",
"EmptyCatch",
"BoxedPrimitiveEquality",
"SynchronizeOnNonFinalField",
"WildcardImport",
"FutureReturnValueIgnored",
"PrivateConstructorForNoninstantiableModule",
"ClassCanBeStatic",
"ClassNewInstance",
"UnnecessaryStaticImport",
"UnsafeFinalization",
"JavaTimeDefaultTimeZone",
"JodaPlusMinusLong",
"SwitchDefault",
"VarTypeName",
"ArgumentSelectionDefectChecker",
"CompareToZero",
"InjectOnConstructorOfAbstractClass",
"ImmutableEnumChecker",
"NarrowingCompoundAssignment",
"MissingCasesInEnumSwitch",
"ReferenceEquality",
"UndefinedEquals",
"UnescapedEntity",
"ModifyCollectionInEnhancedForLoop",
"NonCanonicalType",
"InvalidInlineTag",
"MutablePublicArray",
"StaticAssignmentInConstructor",
"ProtectedMembersInFinalClass",
"OperatorPrecedence",
"EqualsGetClass",
"EqualsUnsafeCast",
"DoubleBraceInitialization",
"UnusedNestedClass",
"UnusedMethod",
"ModifiedButNotUsed",
"InconsistentCapitalization",
"MissingOverride",
// TODO enable these remaining checks (one by one)
// "InvalidBlockTag",
// "InconsistentOverloads",
// "MethodCanBeStatic",
// "Var",
// "ConstantField",
// "UnnecessaryDefaultInEnumSwitch",
// "FieldCanBeFinal"
)
}
}

check {
dependsOn(rat, licenseMain, licenseTest)
}

dependencies {
implementation (
'ch.qos.logback:logback-core',
'org.slf4j:slf4j-api',
'org.slf4j:log4j-over-slf4j',
'org.slf4j:jul-to-slf4j',
)
implementation ("ch.qos.logback:logback-classic") {
exclude(module: "slf4j-api")
}

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

testImplementation(
// 'org.mockito:mockito-core',
'org.mockito:mockito-junit-jupiter',
'org.junit.jupiter:junit-jupiter-api',
'org.junit.jupiter:junit-jupiter-engine',
'org.junit.jupiter:junit-jupiter-params',
'org.junit.platform:junit-platform-suite', // required to be able to run
tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
'org.awaitility:awaitility',
)

testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}

test {
useJUnitPlatform()

if (project.hasProperty('excludeTests')) {
filter {
excludeTestsMatching project.property('excludeTests')
}
}
}

testlogger {
logLevel 'quiet'
}

// Configuration for spotbugs plugin
// https://github.com/spotbugs/spotbugs-gradle-plugin

// To generate an HTML report instead of XML
spotbugs {
// reportLevel = 'high'
// reportLevel = com.github.spotbugs.snom.Confidence.DEFAULT
showProgress = false
excludeFilter = file("$rootDir/config/spotbugs/exclude.xml")
}
// https://github.com/spotbugs/spotbugs-gradle-plugin/issues/242
spotbugsMain {
reports {
html {
enabled = true
stylesheet = 'fancy-hist.xsl'
}
}
}
spotbugsTest {
reports {
html {
enabled = true
stylesheet = 'fancy-hist.xsl'
}
}
}

// Configuration for
https://github.com/andygoossens/gradle-modernizer-plugin
modernizer {
includeTestClasses = true
failOnViolations = true
violationLogLevel="error"
javaVersion = project.targetCompatibility
ignoreGeneratedClasses = true
// Rules can be found here:
https://github.com/gaul/modernizer-maven-plugin/blob/master/modernizer-maven-plugin/src/main/resources/modernizer.xml
exclusions = [
'java/util/Optional.get:()Ljava/lang/Object;' // Disable forcing the usage
of Optional.orElseThrow(java.util.function.Supplier<? extends X>)
]
}

tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.encoding = 'UTF-8'
// Ignore any errors during javadoc generation
failOnError = false
}
}

configure(project.fineractCustomProjects) {
compileJava {
dependsOn = []
}





*configurations {mockitoAgent {transitive = false}}*

dependencies {
implementation (
'org.springframework:spring-context',
'ch.qos.logback:logback-core',
'org.slf4j:slf4j-api',
'org.slf4j:log4j-over-slf4j',
'org.slf4j:jul-to-slf4j',
)
implementation ("ch.qos.logback:logback-classic") {
exclude(module: "slf4j-api")
}

compileOnly('org.projectlombok:lombok')
annotationProcessor('org.projectlombok:lombok')
annotationProcessor('org.mapstruct:mapstruct-processor')
annotationProcessor('org.springframework.boot:spring-boot-autoconfigure-processor')
annotationProcessor('org.springframework.boot:spring-boot-configuration-processor')

testImplementation ('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'com.jayway.jsonpath', module: 'json-path'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
exclude group: 'jakarta.activation'
exclude group: 'javax.activation'
exclude group: 'org.skyscreamer'
}
testImplementation( 'org.mockito:mockito-core',
'org.mockito:mockito-inline',
'org.mockito:mockito-junit-jupiter',
'org.junit.jupiter:junit-jupiter-api',
'org.junit.jupiter:junit-jupiter-engine',
'org.junit.platform:junit-platform-suite', // required to be able to run
tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
'org.awaitility:awaitility',
'io.github.classgraph:classgraph',
'io.cucumber:cucumber-core',
'io.cucumber:cucumber-java:7.20.1',
'io.cucumber:cucumber-java8:7.20.1',
'io.cucumber:cucumber-junit-platform-engine:7.20.1',
'io.cucumber:cucumber-spring:7.20.1',
)





*mockitoAgent "org.mockito:mockito-core"tasks.withType(Test).configureEach
{jvmArgs += "-javaagent:${configurations.mockitoAgent.singleFile}"}*

testCompileOnly('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
testAnnotationProcessor('org.mapstruct:mapstruct-processor')
testAnnotationProcessor('org.springframework.boot:spring-boot-autoconfigure-processor')
testAnnotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
}
}

configure(project.fineractPublishProjects) {
apply plugin: 'maven-publish'

if (!project.hasProperty('noSign')) {
apply plugin: 'signing'
}

publishing {
publications {
mavenJava(MavenPublication) {
groupId 'org.apache.fineract'
artifactId project.name
version "${project.version}-SNAPSHOT"

from components.java

versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}

pom {
name = "Fineract: ${project.name}"
description = 'A secure, multi-tenanted microfinance platform'
url = 'https://fineract.apache.org'
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.html'
}
}
scm {
connection = 'scm:git:https://github.com/apache/fineract.git'
developerConnection = 'scm:git:git://github.com:apache/fineract.git'
url = 'https://fineract.apache.org/'
}
}
}
}

repositories {
def releaseUrl = '
https://repository.apache.org/content/repositories/releases'
def stagingUrl = '
https://repository.apache.org/content/repositories/snapshots'

maven {
name 'apache'
url hasProperty('fineract.release.version') ? releaseUrl : stagingUrl
credentials {
username "${findProperty('fineract.config.username')}"
password "${findProperty('fineract.config.password')}"
}
}
}
}

if (!project.hasProperty('noSign')) {
signing {
sign publishing.publications.mavenJava
}
}
}

task printSourceSetInformation() {
doLast{
sourceSets.each { srcSet ->
println "["+srcSet.name+"]"
print "-->Source directories: "+srcSet.allJava.srcDirs+"\n"
print "-->Output directories: "+srcSet.output.classesDirs.files+"\n"
print "-->Compile classpath:\n"
srcSet.compileClasspath.files.each {
print " "+it.path+"\n"
}
println ""
}
}
}



On Fri, Sep 19, 2025 at 7:17 AM Kapil Panchal <
kapil.panchal.developm...@gmail.com> wrote:

> At first I thought this is the source of error:
>
> "Mockito is currently self-attaching to enable the inline-mock-maker. This
>> will no longer work in future releases of the JDK. Please add Mockito as an
>> agent to your build as described in Mockito's documentation:
>> https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
>> Incorrect number of arguments: 2"
>
>
> so referring to this documentation
> https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
>
>
> The same can be achieved using *Groovy DSL*:
>
>
>  configurations {
>      mockitoAgent
>  }
>  dependencies {
>      testImplementation(libs.mockito)
>      mockitoAgent(libs.mockito) {
>          transitive = false
>      }
>  }
>  tasks {
>      test {
>          jvmArgs += "-javaagent:${configurations.mockitoAgent.asPath}"
>      }
>  }
>
> I added this to the build.gradle, but the error still persists.
>
> I am now trying to using this command "./gradlew
> :fineract-provider:cucumber --debug" explore the source of error,
>
> Sept 18, 2025 8:24:51 AM io.cucumber.core.runtime.Runtime runFeatures
> SEVERE: Exception while executing pickle
> java.util.concurrent.ExecutionException: java.lang.IllegalStateException:
> Failed to load ApplicationContext for
> [WebMergedContextConfiguration@219de215 testClass =
> org.apache.fineract.TestSuite, locations = [], classes = [
> org.apache.fineract.TestConfiguration], contextInitializerClasses = [],
> activeProfiles = [], propertySourceDescriptors =
> [PropertySourceDescriptor[locations=[classpath:application-test.properties],
> ignoreResourceNotFound=false, name=null, propertySourceFactory=null,
> encoding=null]], propertySourceProperties = [], contextCustomizers = [
> org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory
> $OnFailureConditionReportContextCustomizer@5d28ac23,
> org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory
> $DisableObservabilityContextCustomizer@1f,
> org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer
> @0,
> org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@6e681c3b,
> org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer
> @c4fac3a,
> org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory
> $DuplicateJsonObjectContextCustomizer@5ae3f536,
> org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0,
> org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory
> $DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@2d44025b,
>
> org.springframework.test.context.web.socket.MockServerContainerContextCustomizer@4ab8c3c0,
> org.springframework.test.context.support.DynamicPropertiesContextCustomizer
> @0], resourceBasePath = "src/main/webapp", contextLoader =
> org.springframework.test.context.web.WebDelegatingSmartContextLoader,
> parent = null]
>
>
> *"Maybe try the extra clean-up procedures?"*
>
>
> I restarted the computer, also cleaned the cache of the IDE to see whether
> this error comes from the IDE or from the application itself, I also
> checked whether it comes from the network (It is downloading all the
> necessary dependencies)? For now it seems that it comes from the
> application, or some configuration?
>
>
>
> On Thu, Sep 18, 2025 at 11:06 PM Adam Monsen <amon...@mifos.org> wrote:
>
>> I can't repro.
>>
>> Have you tried anything else? The errors look similar to last time.
>>
>> Maybe try the extra clean-up procedures?
>>
>

Reply via email to