diff --git a/.github/workflows/build-mariadb.yml b/.github/workflows/build-mariadb.yml
index ba49cd44c..d274278e9 100644
--- a/.github/workflows/build-mariadb.yml
+++ b/.github/workflows/build-mariadb.yml
@@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-24.04
services:
mariad:
- image: mariadb:11.5
+ image: mariadb:11.5.2
ports:
- 3306:3306
env:
diff --git a/.github/workflows/build-postgresql.yml b/.github/workflows/build-postgresql.yml
index f08874483..297461de9 100644
--- a/.github/workflows/build-postgresql.yml
+++ b/.github/workflows/build-postgresql.yml
@@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-24.04
services:
postgresql:
- image: postgres:17.2
+ image: postgres:17.4
ports:
- 5432:5432
env:
diff --git a/README.md b/README.md
index 68c5d0c13..a3f209681 100644
--- a/README.md
+++ b/README.md
@@ -26,15 +26,15 @@ If you are interested in contributing to this project, but perhaps don't quite k
REQUIREMENTS
============
* `Java >= 17` (Azul Zulu JVM is tested by our CI on GitHub Actions)
-* MariaDB `11.4`
+* MariaDB `11.5.2`
You can run the required version of the database server in a container, instead of having to install it, like this:
- docker run --name mariadb-11.4 -p 3306:3306 -e MARIADB_ROOT_PASSWORD=mysql -d mariadb:11.4
+ docker run --name mariadb-11.5 -p 3306:3306 -e MARIADB_ROOT_PASSWORD=mysql -d mariadb:11.5.2
and stop and destroy it like this:
- docker rm -f mariadb-11.4
+ docker rm -f mariadb-11.5
Beware that this database container database keeps its state inside the container and not on the host filesystem. It is lost when you destroy (rm) this container. This is typically fine for development. See [Caveats: Where to Store Data on the database container documentation](https://hub.docker.com/_/mariadb) re. how to make it persistent instead of ephemeral.
@@ -79,11 +79,9 @@ Run the following commands:
============
1. Clone the repository or download and extract the archive file to your local directory.
2. Run `./gradlew clean bootJar` to build a modern cloud native fully self contained JAR file which will be created at `fineract-provider/build/libs` directory.
-3. As we are not allowed to include a JDBC driver in the built JAR, download a JDBC driver of your choice. For example: `wget https://downloads.mariadb.com/Connectors/java/connector-java-3.3.2/mariadb-java-client-3.3.2.jar`
+3. As we are not allowed to include a JDBC driver in the built JAR, download a JDBC driver of your choice. For example: `wget https://dlm.mariadb.com/4174416/Connectors/java/connector-java-3.5.2/mariadb-java-client-3.5.2.jar`
4. Start the jar and pass the directory where you have downloaded the JDBC driver as loader.path, for example: `java -Dloader.path=. -jar fineract-provider/build/libs/fineract-provider.jar` (does not require external Tomcat)
-NOTE: we cannot upgrade to version 3.0.x of the MariaDB driver just yet; have to wait until 3.0.4 is out for a bug fix.
-
The tenants database connection details are configured [via environment variables (as with Docker container)](#instructions-to-run-using-docker-and-docker-compose), e.g. like this:
export FINERACT_HIKARI_PASSWORD=verysecret
diff --git a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle
index e5502b6ef..df74d06c0 100644
--- a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle
+++ b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle
@@ -44,8 +44,8 @@ dependencyManagement {
// We do not use :+ to get the latest available version available on Maven Central, as that could suddenly break things.
// We use the Renovate Bot to automatically propose Pull Requests (PRs) when upgrades for all of these versions are available.
- dependency 'ch.qos.logback:logback-core:1.5.12'
- dependency 'ch.qos.logback:logback-classic:1.5.12'
+ dependency 'ch.qos.logback:logback-core:1.5.17'
+ dependency 'ch.qos.logback:logback-classic:1.5.17'
dependency 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
dependency 'ch.qos.logback.contrib:logback-jackson:0.1.5'
dependency 'org.codehaus.janino:janino:3.1.12'
@@ -169,7 +169,7 @@ dependencyManagement {
exclude 'io.swagger.core.v3:swagger-core'
}
- dependency 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.21.0'
+ dependency 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.23.1'
dependency ('org.apache.activemq:activemq-client:6.1.3') {
exclude 'javax.annotation:javax.annotation-api'
@@ -227,12 +227,12 @@ dependencyManagement {
dependency "org.apache.avro:avro:1.12.0"
- dependency ('org.mariadb.jdbc:mariadb-java-client:3.5.0') {
+ dependency ('org.mariadb.jdbc:mariadb-java-client:3.5.2') {
exclude 'org.slf4j:jcl-over-slf4j'
exclude 'org.slf4j:slf4j-api'
}
- dependency 'org.postgresql:postgresql:42.7.4'
+ dependency 'org.postgresql:postgresql:42.7.5'
dependency 'org.assertj:assertj-core:3.26.3'
diff --git a/fineract-e2e-tests-core/build.gradle b/fineract-e2e-tests-core/build.gradle
index b5d1e35bd..bd7fa5d41 100644
--- a/fineract-e2e-tests-core/build.gradle
+++ b/fineract-e2e-tests-core/build.gradle
@@ -76,7 +76,7 @@ dependencies {
testImplementation 'io.cucumber:cucumber-junit:7.20.1'
testImplementation 'io.cucumber:cucumber-spring:7.20.1'
- testImplementation 'io.qameta.allure:allure-cucumber7-jvm:2.29.0'
+ testImplementation 'io.qameta.allure:allure-cucumber7-jvm:2.29.1'
testImplementation 'org.assertj:assertj-core:3.26.3'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.3'
@@ -85,10 +85,10 @@ dependencies {
testCompileOnly 'org.projectlombok:lombok:1.18.36'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.36'
- testImplementation "ch.qos.logback:logback-core:1.5.12"
- testImplementation "ch.qos.logback:logback-classic:1.5.12"
+ testImplementation "ch.qos.logback:logback-core:1.5.17"
+ testImplementation "ch.qos.logback:logback-classic:1.5.17"
- testImplementation 'org.apache.activemq:activemq-client:6.1.4'
+ testImplementation 'org.apache.activemq:activemq-client:6.1.6'
testImplementation "org.apache.avro:avro:1.12.0"
testImplementation "org.awaitility:awaitility:4.2.2"
testImplementation 'io.github.classgraph:classgraph:4.8.179'
diff --git a/fineract-e2e-tests-runner/build.gradle b/fineract-e2e-tests-runner/build.gradle
index d8da80085..5af11a095 100644
--- a/fineract-e2e-tests-runner/build.gradle
+++ b/fineract-e2e-tests-runner/build.gradle
@@ -48,7 +48,7 @@ dependencies {
testImplementation 'io.cucumber:cucumber-junit:7.20.1'
testImplementation 'io.cucumber:cucumber-spring:7.20.1'
- testImplementation 'io.qameta.allure:allure-cucumber7-jvm:2.29.0'
+ testImplementation 'io.qameta.allure:allure-cucumber7-jvm:2.29.1'
testImplementation 'org.assertj:assertj-core:3.26.3'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.3'
@@ -57,10 +57,10 @@ dependencies {
testCompileOnly 'org.projectlombok:lombok:1.18.36'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.36'
- testImplementation "ch.qos.logback:logback-core:1.5.12"
- testImplementation "ch.qos.logback:logback-classic:1.5.12"
+ testImplementation "ch.qos.logback:logback-core:1.5.17"
+ testImplementation "ch.qos.logback:logback-classic:1.5.17"
- testImplementation 'org.apache.activemq:activemq-client:6.1.4'
+ testImplementation 'org.apache.activemq:activemq-client:6.1.6'
testImplementation "org.apache.avro:avro:1.12.0"
testImplementation "org.awaitility:awaitility:4.2.2"
testImplementation 'io.github.classgraph:classgraph:4.8.179'
diff --git a/integration-tests/dependencies.gradle b/integration-tests/dependencies.gradle
index 7d2b7bd86..9052d32c8 100644
--- a/integration-tests/dependencies.gradle
+++ b/integration-tests/dependencies.gradle
@@ -20,7 +20,7 @@ dependencies {
// testCompile dependencies are ONLY used in src/test, not src/main.
// Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
//
- tomcat 'org.apache.tomcat:tomcat:10.1.33@zip'
+ tomcat 'org.apache.tomcat:tomcat:10.1.39@zip'
testImplementation( files("$rootDir/fineract-provider/build/classes/java/main/"),
project(path: ':fineract-core', configuration: 'runtimeElements'),
project(path: ':fineract-accounting', configuration: 'runtimeElements'),
diff --git a/oauth2-tests/dependencies.gradle b/oauth2-tests/dependencies.gradle
index 022d9d526..d52f85381 100644
--- a/oauth2-tests/dependencies.gradle
+++ b/oauth2-tests/dependencies.gradle
@@ -20,7 +20,7 @@ dependencies {
// testCompile dependencies are ONLY used in src/test, not src/main.
// Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
//
- tomcat 'org.apache.tomcat:tomcat:10.1.33@zip'
+ tomcat 'org.apache.tomcat:tomcat:10.1.39@zip'
testImplementation( files("$rootDir/fineract-provider/build/classes/java/main/"),
project(path: ':fineract-provider', configuration: 'runtimeElements'),
'org.junit.jupiter:junit-jupiter-api',
diff --git a/twofactor-tests/dependencies.gradle b/twofactor-tests/dependencies.gradle
index 3272600cc..14a2e25f0 100644
--- a/twofactor-tests/dependencies.gradle
+++ b/twofactor-tests/dependencies.gradle
@@ -20,7 +20,7 @@ dependencies {
// testCompile dependencies are ONLY used in src/test, not src/main.
// Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
//
- tomcat 'org.apache.tomcat:tomcat:10.1.33@zip'
+ tomcat 'org.apache.tomcat:tomcat:10.1.39@zip'
testImplementation( files("$rootDir/fineract-provider/build/classes/java/main/"),
project(path: ':fineract-provider', configuration: 'runtimeElements'),
'org.junit.jupiter:junit-jupiter-api',