From 4cc673ad8a5dd69b37e7c5f9984518bd824cf2c8 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Thu, 6 Jun 2024 22:24:16 -0600 Subject: [PATCH 1/5] FINERACT-2094 Upgrade to JDK 21 LTS --- .github/workflows/build-docker-mariadb.yml | 4 ++-- .github/workflows/build-docker-postgresql.yml | 4 ++-- .github/workflows/build-documentation.yml | 4 ++-- .github/workflows/build-mariadb.yml | 4 ++-- .github/workflows/build-mysql.yml | 4 ++-- .github/workflows/build-postgresql.yml | 4 ++-- .github/workflows/build-tests.yml | 4 ++-- .github/workflows/publish-dockerhub.yml | 4 ++-- .github/workflows/smoke-activemq.yml | 4 ++-- .github/workflows/smoke-kafka.yml | 4 ++-- .github/workflows/sonarqube.yml | 4 ++-- .gitpod.yml | 2 +- README.md | 6 +++--- custom/docker/build.gradle | 2 +- fineract-provider/build.gradle | 2 +- 15 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build-docker-mariadb.yml b/.github/workflows/build-docker-mariadb.yml index bda8b058506..e92f9ca8623 100644 --- a/.github/workflows/build-docker-mariadb.yml +++ b/.github/workflows/build-docker-mariadb.yml @@ -15,10 +15,10 @@ jobs: - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - name: Build the image diff --git a/.github/workflows/build-docker-postgresql.yml b/.github/workflows/build-docker-postgresql.yml index c09a03fbb23..1e89f5dc5ce 100644 --- a/.github/workflows/build-docker-postgresql.yml +++ b/.github/workflows/build-docker-postgresql.yml @@ -15,10 +15,10 @@ jobs: - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - name: Build the image diff --git a/.github/workflows/build-documentation.yml b/.github/workflows/build-documentation.yml index 26db75e2d74..a4a81fe7c95 100644 --- a/.github/workflows/build-documentation.yml +++ b/.github/workflows/build-documentation.yml @@ -14,10 +14,10 @@ jobs: uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 diff --git a/.github/workflows/build-mariadb.yml b/.github/workflows/build-mariadb.yml index 8e499ec4ad9..6b3d7f93d42 100644 --- a/.github/workflows/build-mariadb.yml +++ b/.github/workflows/build-mariadb.yml @@ -33,10 +33,10 @@ jobs: uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 diff --git a/.github/workflows/build-mysql.yml b/.github/workflows/build-mysql.yml index 0d692087d86..207b40bada4 100644 --- a/.github/workflows/build-mysql.yml +++ b/.github/workflows/build-mysql.yml @@ -33,10 +33,10 @@ jobs: uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 diff --git a/.github/workflows/build-postgresql.yml b/.github/workflows/build-postgresql.yml index a8ae8c0daa0..3075fb38eda 100644 --- a/.github/workflows/build-postgresql.yml +++ b/.github/workflows/build-postgresql.yml @@ -34,10 +34,10 @@ jobs: uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 diff --git a/.github/workflows/build-tests.yml b/.github/workflows/build-tests.yml index 3c567d26b25..1f1f1580748 100644 --- a/.github/workflows/build-tests.yml +++ b/.github/workflows/build-tests.yml @@ -15,10 +15,10 @@ jobs: - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - name: Build the image diff --git a/.github/workflows/publish-dockerhub.yml b/.github/workflows/publish-dockerhub.yml index 2bfa0a7437f..7d22c7a0cd6 100644 --- a/.github/workflows/publish-dockerhub.yml +++ b/.github/workflows/publish-dockerhub.yml @@ -21,10 +21,10 @@ jobs: uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - name: Extract branch name diff --git a/.github/workflows/smoke-activemq.yml b/.github/workflows/smoke-activemq.yml index dcfc5ac00be..677e09e1a7f 100644 --- a/.github/workflows/smoke-activemq.yml +++ b/.github/workflows/smoke-activemq.yml @@ -15,10 +15,10 @@ jobs: - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - name: Build the image diff --git a/.github/workflows/smoke-kafka.yml b/.github/workflows/smoke-kafka.yml index 85b875d5230..f8185210756 100644 --- a/.github/workflows/smoke-kafka.yml +++ b/.github/workflows/smoke-kafka.yml @@ -15,10 +15,10 @@ jobs: - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - name: Build the image diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 9612c696c52..14d9aa64c1c 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -23,10 +23,10 @@ jobs: uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 with: - java-version: '17' + java-version: '21' distribution: 'zulu' cache: gradle - name: Validate Gradle wrapper diff --git a/.gitpod.yml b/.gitpod.yml index 085a7b4ecb9..c7cacea5405 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -40,4 +40,4 @@ tasks: ./gradlew createDB -PdbName=fineract_tenants ./gradlew createDB -PdbName=fineract_default ./gradlew build -x test - init: sdk default java 17.0.4.fx-zulu + init: sdk default jdk 21.0.3+9 diff --git a/README.md b/README.md index 68991bcb83e..3e66ae56949 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ 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) +* `Java >= 21` (Azul Zulu JVM is tested by our CI on GitHub Actions) * MariaDB `11.2` You can run the required version of the database server in a container, instead of having to install it, like this: @@ -34,7 +34,7 @@ and stop and destroy it like this:
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.
-Tomcat v9 is only required if you wish to deploy the Fineract WAR to a separate external servlet container. Note that you do not require to install Tomcat to develop Fineract, or to run it in production if you use the self-contained JAR, which transparently embeds a servlet container using Spring Boot. (Until FINERACT-730, Tomcat 7/8 were also supported, but now Tomcat 9 is required.) +Tomcat v10 is only required if you wish to deploy the Fineract WAR to a separate external servlet container. Note that you do not require to install Tomcat to develop Fineract, or to run it in production if you use the self-contained JAR, which transparently embeds a servlet container using Spring Boot. (Until FINERACT-730, Tomcat 7/8 were also supported, but now Tomcat 10 is required.)
IMPORTANT: If you use MySQL or MariaDB ============ @@ -135,7 +135,7 @@ FINERACT_SECURITY_2FA_ENABLED=true ============ 1. Clone the repository or download and extract the archive file to your local directory. 2. Run `./gradlew :fineract-war:clean :fineract-war:war` to build a traditional WAR file which will be created at `fineract-war/build/libs` directory. -3. Deploy this WAR to your Tomcat v9 Servlet Container. +3. Deploy this WAR to your Tomcat v10 Servlet Container. We recommend using the JAR instead of the WAR file deployment, because it's much easier. diff --git a/custom/docker/build.gradle b/custom/docker/build.gradle index 28b9415f366..15aab0f9981 100644 --- a/custom/docker/build.gradle +++ b/custom/docker/build.gradle @@ -24,7 +24,7 @@ apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencie jib { from { - image = 'azul/zulu-openjdk-alpine:17' + image = 'azul/zulu-openjdk-alpine:21' platforms { platform { architecture = System.getProperty("os.arch").equals("aarch64")?"arm64":"amd64" diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index e982db6ea18..d2f24538f9d 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -243,7 +243,7 @@ bootJar { jib { from { - image = 'azul/zulu-openjdk-alpine:17' + image = 'azul/zulu-openjdk-alpine:21' platforms { platform { architecture = System.getProperty("os.arch").equals("aarch64")?"arm64":"amd64" From 335355e965f3c5712a78e4dfe3f0b65ec421241c Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Thu, 6 Jun 2024 23:43:11 -0600 Subject: [PATCH 2/5] FINERACT-2094 Upgrade to JDK 21 LTS --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e7aecfce213..be7d2c945d9 100644 --- a/build.gradle +++ b/build.gradle @@ -73,7 +73,7 @@ buildscript { dependencies { classpath 'com.bmuschko:gradle-cargo-plugin:2.9.0' - classpath 'org.eclipse.persistence:eclipselink:4.0.0' + classpath 'org.eclipse.persistence:eclipselink:4.0.3' 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.14.0' From ec18d4511ed214c9df2735b1f1789bda1dfdb161 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Fri, 7 Jun 2024 00:20:22 -0600 Subject: [PATCH 3/5] FINERACT-2094 Upgrade to JDK 21 LTS --- .../src/main/groovy/org.apache.fineract.dependencies.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle index b52caf82beb..2a54f14013e 100644 --- a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle +++ b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle @@ -34,7 +34,7 @@ dependencyManagement { mavenBom 'com.fasterxml.jackson:jackson-bom:2.16.1' mavenBom 'io.cucumber:cucumber-bom:7.15.0' mavenBom 'io.netty:netty-bom:4.1.106.Final' - mavenBom 'org.mockito:mockito-bom:5.10.0' + mavenBom 'org.mockito:mockito-bom:5.12.0' mavenBom 'software.amazon.awssdk:bom:2.23.18' mavenBom 'io.github.resilience4j:resilience4j-bom:2.2.0' } From 4506186ba8b059227ca07342abc3848fb1080e10 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Fri, 7 Jun 2024 00:49:25 -0600 Subject: [PATCH 4/5] FINERACT-2094 Upgrade to JDK 21 LTS --- build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index be7d2c945d9..592be4ebd2e 100644 --- a/build.gradle +++ b/build.gradle @@ -19,10 +19,10 @@ // TODO: this is work in progress, please follow FINERACT-1171 buildscript { ext { - jacocoVersion = '0.8.11' - retrofitVersion = '2.9.0' - okhttpVersion = '4.9.3' - oltuVersion = '1.0.1' + jacocoVersion = '0.8.12' + retrofitVersion = '2.11.0' + okhttpVersion = '4.12.0' + oltuVersion = '1.0.2' fineractCustomProjects = [] fineractJavaProjects = subprojects.findAll{ [ From d3bfd2e75c9e61d11fafdb758465ee697323d226 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Fri, 7 Jun 2024 01:03:58 -0600 Subject: [PATCH 5/5] FINERACT-2094 Upgrade to JDK 21 LTS --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 592be4ebd2e..6614ebbc88d 100644 --- a/build.gradle +++ b/build.gradle @@ -20,8 +20,8 @@ buildscript { ext { jacocoVersion = '0.8.12' - retrofitVersion = '2.11.0' - okhttpVersion = '4.12.0' + retrofitVersion = '2.9.0' + okhttpVersion = '4.9.3' oltuVersion = '1.0.2' fineractCustomProjects = [] fineractJavaProjects = subprojects.findAll{