Skip to content

Commit

Permalink
Migrate to Java 21 (#258)
Browse files Browse the repository at this point in the history
* Migrate to Java 21

* Update build.gradle and graalvm workflow
  • Loading branch information
ravinperera00 authored Jan 22, 2025
1 parent 45ea500 commit c5b8624
Show file tree
Hide file tree
Showing 14 changed files with 49 additions and 95 deletions.
63 changes: 7 additions & 56 deletions .github/workflows/build-with-bal-test-graalvm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,64 +5,15 @@ on:
- cron: "30 18 * * *"
workflow_dispatch:
pull_request:
types: [opened, synchronize, labeled]
types: [ opened, synchronize, labeled ]

concurrency:
group: graalvm-check
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'Skip GraalVM Check')

steps:
- name: Checkout the Repository
uses: actions/checkout@v3

- name: Set Up Ballerina
uses: ballerina-platform/setup-ballerina@v1.1.0
with:
version: latest

- name: Set up GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: "17"
distribution: "graalvm-community"
set-java-home: true
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Check GraalVM installation
run: |
echo "GRAALVM_HOME: ${{ env.GRAALVM_HOME }}"
echo "JAVA_HOME: ${{ env.JAVA_HOME }}"
native-image --version
- name: Set ENV Variables
run: |
echo -e '${{ toJson(secrets) }}' | jq -r 'to_entries[] | .key + "=" + .value' >> $GITHUB_ENV
- name: Build Package
run: ./gradlew build
env:
packageUser: ${{ github.actor }}
packagePAT: ${{ secrets.GITHUB_TOKEN }}

- name: Remove Target Directory
run: sudo rm -rf ballerina/target

- name: Start MongoDB Server
run: |
cd ballerina/tests/resources/docker
docker compose up -d
- name: Test with GraalVM
run: |
cd ballerina
bal test --graalvm
- name: Stop MongoDB Server
run: |
cd ballerina/tests/resources/docker
docker compose down
call_stdlib_workflow:
name: Run StdLib Workflow
if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }}
uses: ballerina-platform/ballerina-library/.github/workflows/build-with-bal-test-graalvm-connector-template.yml@main
secrets: inherit
4 changes: 2 additions & 2 deletions .github/workflows/trivy-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ jobs:
if: github.repository_owner == 'ballerina-platform'
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 17.0.7
java-version: 21.0.3

- name: Build with Gradle
env:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ The **Issues** and **Projects** tabs are disabled for this repository as this is

### Setting up the prerequisites

1. Download and install Java SE Development Kit (JDK) version 17. You can download it from either of the following sources:
1. Download and install Java SE Development Kit (JDK) version 21. You can download it from either of the following sources:

* [Oracle JDK](https://www.oracle.com/java/technologies/downloads/)
* [OpenJDK](https://adoptium.net/)
Expand Down
24 changes: 12 additions & 12 deletions ballerina/Ballerina.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
distribution = "2201.7.0"
distribution = "2201.11.0-20241218-101200-109f6cc7"
org = "ballerinax"
name = "mongodb"
version = "5.0.1"
Expand All @@ -9,29 +9,29 @@ keywords = ["IT Operations/Databases", "Cost/Freemium"]
icon = "icon.png"
repository = "https://github.com/ballerina-platform/module-ballerinax-mongodb"

[platform.java17]
[platform.java21]
graalvmCompatible = true

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "io.ballerina.lib"
artifactId = "mongodb-native"
version = "5.0.1-SNAPSHOT"
path = "../native/build/libs/mongodb-native-5.0.1-SNAPSHOT.jar"

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "org.mongodb"
artifactId = "mongodb-driver-sync"
version = "4.11.1"
path = "./lib/mongodb-driver-sync-4.11.1.jar"
version = "5.1.0"
path = "./lib/mongodb-driver-sync-5.1.0.jar"

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "org.mongodb"
artifactId = "mongodb-driver-core"
version = "4.11.1"
path = "./lib/mongodb-driver-core-4.11.1.jar"
version = "5.1.0"
path = "./lib/mongodb-driver-core-5.1.0.jar"

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "org.mongodb"
artifactId = "bson"
version = "4.11.1"
path = "./lib/bson-4.11.1.jar"
version = "5.1.0"
path = "./lib/bson-5.1.0.jar"
8 changes: 4 additions & 4 deletions ballerina/Dependencies.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

[ballerina]
dependencies-toml-version = "2"
distribution-version = "2201.8.0"
distribution-version = "2201.11.0-20241218-101200-109f6cc7"

[[package]]
org = "ballerina"
name = "crypto"
version = "2.6.2"
version = "2.8.0"
dependencies = [
{org = "ballerina", name = "jballerina.java"},
{org = "ballerina", name = "time"}
Expand All @@ -22,7 +22,7 @@ modules = [
[[package]]
org = "ballerina"
name = "io"
version = "1.6.0"
version = "1.7.0"
dependencies = [
{org = "ballerina", name = "jballerina.java"},
{org = "ballerina", name = "lang.value"}
Expand Down Expand Up @@ -70,7 +70,7 @@ modules = [
[[package]]
org = "ballerina"
name = "observe"
version = "1.2.2"
version = "1.4.0"
dependencies = [
{org = "ballerina", name = "jballerina.java"}
]
Expand Down
2 changes: 1 addition & 1 deletion ballerina/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ ballerina {
module = packageName
testCoverageParam = "--code-coverage --coverage-format=xml"
isConnector = true
platform = "java17"
platform = "java21"
}

configurations {
Expand Down
12 changes: 6 additions & 6 deletions build-config/resources/Ballerina.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
distribution = "2201.7.0"
distribution = "2201.11.0-20241218-101200-109f6cc7"
org = "ballerinax"
name = "mongodb"
version = "@toml.version@"
Expand All @@ -9,28 +9,28 @@ keywords = ["IT Operations/Databases", "Cost/Freemium"]
icon = "icon.png"
repository = "https://github.com/ballerina-platform/module-ballerinax-mongodb"

[platform.java17]
[platform.java21]
graalvmCompatible = true

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "io.ballerina.lib"
artifactId = "mongodb-native"
version = "@project.version@"
path = "../native/build/libs/mongodb-native-@project.version@.jar"

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "org.mongodb"
artifactId = "mongodb-driver-sync"
version = "@mongodb.driver.version@"
path = "./lib/mongodb-driver-sync-@mongodb.driver.version@.jar"

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "org.mongodb"
artifactId = "mongodb-driver-core"
version = "@mongodb.driver.version@"
path = "./lib/mongodb-driver-core-@mongodb.driver.version@.jar"

[[platform.java17.dependency]]
[[platform.java21.dependency]]
groupId = "org.mongodb"
artifactId = "bson"
version = "@mongodb.driver.version@"
Expand Down
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
org.gradle.caching=true
group=io.ballerina.lib
version=5.0.1-SNAPSHOT
ballerinaLangVersion=2201.8.6
ballerinaLangVersion=2201.11.0-20241218-101200-109f6cc7

checkstylePluginVersion=10.12.0
spotbugsPluginVersion=5.0.14
spotbugsPluginVersion=6.0.18
shadowJarPluginVersion=8.1.1
downloadPluginVersion=5.4.0
releasePluginVersion=2.8.0
ballerinaGradlePluginVersion=2.2.3
ballerinaGradlePluginVersion=2.2.6
jacocoVersion=0.8.10

slf4jVersion=1.7.21
mongoDriverVersion=4.11.1
mongoDriverVersion=5.1.0
7 changes: 5 additions & 2 deletions native/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,11 @@ test {
}

spotbugsMain {
effort = "max"
reportLevel = "low"
def classLoader = plugins["com.github.spotbugs"].class.classLoader
def SpotBugsConfidence = classLoader.findLoadedClass("com.github.spotbugs.snom.Confidence")
def SpotBugsEffort = classLoader.findLoadedClass("com.github.spotbugs.snom.Effort")
effort = SpotBugsEffort.MAX
reportLevel = SpotBugsConfidence.LOW
reportsDir = file("$project.buildDir/reports/spotbugs")
def excludeFile = file("${rootDir}/build-config/spotbugs-exclude.xml")
if (excludeFile.exists()) {
Expand Down
4 changes: 2 additions & 2 deletions native/src/main/java/io/ballerina/lib/mongodb/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoIterable;
import io.ballerina.runtime.api.PredefinedTypes;
import io.ballerina.runtime.api.TypeTags;
import io.ballerina.runtime.api.creators.TypeCreator;
import io.ballerina.runtime.api.creators.ValueCreator;
import io.ballerina.runtime.api.types.PredefinedTypes;
import io.ballerina.runtime.api.types.TypeTags;
import io.ballerina.runtime.api.utils.StringUtils;
import io.ballerina.runtime.api.values.BArray;
import io.ballerina.runtime.api.values.BError;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@
import com.mongodb.client.model.UpdateOptions;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import io.ballerina.runtime.api.PredefinedTypes;
import io.ballerina.runtime.api.creators.TypeCreator;
import io.ballerina.runtime.api.creators.ValueCreator;
import io.ballerina.runtime.api.types.PredefinedTypes;
import io.ballerina.runtime.api.types.RecordType;
import io.ballerina.runtime.api.types.StreamType;
import io.ballerina.runtime.api.types.Type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import io.ballerina.runtime.api.PredefinedTypes;
import io.ballerina.runtime.api.creators.TypeCreator;
import io.ballerina.runtime.api.creators.ValueCreator;
import io.ballerina.runtime.api.types.PredefinedTypes;
import io.ballerina.runtime.api.utils.StringUtils;
import io.ballerina.runtime.api.values.BArray;
import io.ballerina.runtime.api.values.BError;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
package io.ballerina.lib.mongodb;

import com.mongodb.client.MongoCursor;
import io.ballerina.runtime.api.PredefinedTypes;
import io.ballerina.runtime.api.creators.ErrorCreator;
import io.ballerina.runtime.api.creators.TypeCreator;
import io.ballerina.runtime.api.creators.ValueCreator;
import io.ballerina.runtime.api.types.PredefinedTypes;
import io.ballerina.runtime.api.types.Type;
import io.ballerina.runtime.api.types.UnionType;
import io.ballerina.runtime.api.values.BError;
Expand Down
4 changes: 2 additions & 2 deletions native/src/main/java/io/ballerina/lib/mongodb/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@
import com.mongodb.MongoCommandException;
import com.mongodb.MongoException;
import com.mongodb.client.MongoCursor;
import io.ballerina.runtime.api.PredefinedTypes;
import io.ballerina.runtime.api.TypeTags;
import io.ballerina.runtime.api.creators.ErrorCreator;
import io.ballerina.runtime.api.creators.TypeCreator;
import io.ballerina.runtime.api.creators.ValueCreator;
import io.ballerina.runtime.api.types.ArrayType;
import io.ballerina.runtime.api.types.Field;
import io.ballerina.runtime.api.types.PredefinedTypes;
import io.ballerina.runtime.api.types.RecordType;
import io.ballerina.runtime.api.types.StreamType;
import io.ballerina.runtime.api.types.Type;
import io.ballerina.runtime.api.types.TypeTags;
import io.ballerina.runtime.api.types.UnionType;
import io.ballerina.runtime.api.utils.StringUtils;
import io.ballerina.runtime.api.utils.TypeUtils;
Expand Down

0 comments on commit c5b8624

Please sign in to comment.