Update to java 25

This commit is contained in:
AsamK 2025-12-07 20:24:36 +01:00
parent 82abc20871
commit 32c8d4f801
12 changed files with 199 additions and 270 deletions

View File

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ '21', '25' ]
java: [ '25' ]
steps:
- uses: actions/checkout@v4
@ -58,9 +58,8 @@ jobs:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
distribution: 'graalvm-community'
version: '21.0.2'
java-version: '21'
distribution: 'graalvm'
java-version: '25'
cache: 'gradle'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build with Gradle

View File

@ -24,7 +24,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 21
java-version: 25
- name: Checkout repository
uses: actions/checkout@v4

View File

@ -2,6 +2,8 @@
## [Unreleased]
**Attention**: Now requires Java 25
### Breaking changes
- Remove isRegistered method without parameters from Signal dbus interface, which always returned `true`

View File

@ -1,4 +1,4 @@
FROM docker.io/azul/zulu-openjdk:21-jre-headless
FROM docker.io/azul/zulu-openjdk:25-jre-headless
LABEL org.opencontainers.image.source=https://github.com/AsamK/signal-cli
LABEL org.opencontainers.image.description="signal-cli provides an unofficial commandline, dbus and JSON-RPC interface for the Signal messenger."

View File

@ -23,7 +23,7 @@ Windows. There's also a [docker image and some Linux packages](https://github.co
System requirements:
- at least Java Runtime Environment (JRE) 21
- at least Java Runtime Environment (JRE) 25
- native library: libsignal-client
The native libs are bundled for x86_64 Linux (with recent enough glibc), Windows and MacOS. For other

View File

@ -12,8 +12,8 @@ allprojects {
}
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.VERSION_25
targetCompatibility = JavaVersion.VERSION_25
if (!JavaVersion.current().isCompatibleWith(targetCompatibility)) {
toolchain {
@ -39,7 +39,7 @@ graalvmNative {
if (System.getenv("GRAALVM_HOME") == null) {
toolchainDetection.set(true)
javaLauncher.set(javaToolchains.launcherFor {
languageVersion.set(JavaLanguageVersion.of(21))
languageVersion.set(JavaLanguageVersion.of(25))
})
} else {
toolchainDetection.set(false)

View File

@ -7,11 +7,11 @@ plugins {
}
tasks.named<KotlinCompilationTask<KotlinJvmCompilerOptions>>("compileKotlin").configure {
compilerOptions.jvmTarget.set(JvmTarget.JVM_17)
compilerOptions.jvmTarget.set(JvmTarget.JVM_24)
}
java {
targetCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_24
}
repositories {

View File

@ -1,26 +1 @@
[
{
"interfaces":["java.sql.Connection"]
},
{
"interfaces":["org.asamk.Signal"]
},
{
"interfaces":["org.asamk.Signal$Configuration"]
},
{
"interfaces":["org.asamk.Signal$Device"]
},
{
"interfaces":["org.asamk.Signal$Group"]
},
{
"interfaces":["org.asamk.Signal$Identity"]
},
{
"interfaces":["org.asamk.SignalControl"]
},
{
"interfaces":["org.freedesktop.dbus.interfaces.DBus"]
}
]
[{"interfaces":["java.sql.Connection"]},{"interfaces":["org.asamk.Signal"]},{"interfaces":["org.asamk.Signal$Configuration"]},{"interfaces":["org.asamk.Signal$Device"]},{"interfaces":["org.asamk.Signal$Group"]},{"interfaces":["org.asamk.Signal$Identity"]},{"interfaces":["org.asamk.SignalControl"]},{"interfaces":["org.freedesktop.dbus.interfaces.DBus"]}]

View File

@ -307,6 +307,14 @@
"name": "getCredentials",
"parameterTypes": []
},
{
"name": "getCredentialsProvider",
"parameterTypes": []
},
{
"name": "getCredentialsProviderClassName",
"parameterTypes": []
},
{
"name": "getDataSource",
"parameterTypes": []
@ -495,6 +503,18 @@
"com.zaxxer.hikari.util.Credentials"
]
},
{
"name": "setCredentialsProvider",
"parameterTypes": [
"com.zaxxer.hikari.HikariCredentialsProvider"
]
},
{
"name": "setCredentialsProviderClassName",
"parameterTypes": [
"java.lang.String"
]
},
{
"name": "setDataSource",
"parameterTypes": [
@ -811,7 +831,13 @@
{
"type": "java.lang.Enum",
"allDeclaredMethods": true,
"jniAccessible": true
"jniAccessible": true,
"methods": [
{
"name": "ordinal",
"parameterTypes": []
}
]
},
{
"type": "java.lang.Float",
@ -931,6 +957,10 @@
{
"name": "getStackTrace",
"parameterTypes": []
},
{
"name": "isVirtual",
"parameterTypes": []
}
]
},
@ -1879,6 +1909,10 @@
"type": "org.asamk.signal.Main",
"jniAccessible": true,
"methods": [
{
"name": "<init>",
"parameterTypes": []
},
{
"name": "main",
"parameterTypes": [
@ -4516,6 +4550,33 @@
}
]
},
{
"type": "org.bouncycastle.jcajce.provider.kdf.HKDF$Mappings",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "org.bouncycastle.jcajce.provider.kdf.PBEPBKDF2$Mappings",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "org.bouncycastle.jcajce.provider.kdf.SCRYPT$Mappings",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings",
"methods": [
@ -4708,6 +4769,15 @@
}
]
},
{
"type": "org.bouncycastle.jcajce.provider.symmetric.HKDF$Mappings",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"type": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings",
"methods": [
@ -5146,6 +5216,50 @@
}
]
},
{
"type": "org.signal.core.models.ServiceId",
"allDeclaredFields": true,
"methods": [
{
"name": "<init>",
"parameterTypes": [
"org.signal.libsignal.protocol.ServiceId"
]
},
{
"name": "equals",
"parameterTypes": [
"java.lang.Object"
]
},
{
"name": "hashCode",
"parameterTypes": []
},
{
"name": "logString",
"parameterTypes": []
},
{
"name": "toByteArray",
"parameterTypes": []
},
{
"name": "toByteString",
"parameterTypes": []
},
{
"name": "toProtocolAddress",
"parameterTypes": [
"int"
]
},
{
"name": "toString",
"parameterTypes": []
}
]
},
{
"type": "org.signal.libsignal.internal.CompletableFuture",
"jniAccessible": true,
@ -5214,6 +5328,12 @@
"type": "org.signal.libsignal.net.ChatConnection$ListenerBridge",
"jniAccessible": true,
"methods": [
{
"name": "connectionInterrupted",
"parameterTypes": [
"java.lang.Throwable"
]
},
{
"name": "onConnectionInterrupted",
"parameterTypes": [
@ -5237,6 +5357,24 @@
"parameterTypes": [
"java.lang.String[]"
]
},
{
"name": "receivedAlerts",
"parameterTypes": [
"java.lang.String[]"
]
},
{
"name": "receivedIncomingMessage",
"parameterTypes": [
"byte[]",
"long",
"long"
]
},
{
"name": "receivedQueueEmpty",
"parameterTypes": []
}
]
},
@ -5279,6 +5417,18 @@
}
]
},
{
"type": "org.signal.libsignal.net.ChatServiceInactiveException",
"jniAccessible": true,
"methods": [
{
"name": "<init>",
"parameterTypes": [
"java.lang.String"
]
}
]
},
{
"type": "org.signal.libsignal.net.DeviceDeregisteredException",
"jniAccessible": true,
@ -5315,6 +5465,18 @@
}
]
},
{
"type": "org.signal.libsignal.net.TransportFailureException",
"jniAccessible": true,
"methods": [
{
"name": "<init>",
"parameterTypes": [
"java.lang.String"
]
}
]
},
{
"type": "org.signal.libsignal.net.internal.BridgeChatListener",
"jniAccessible": true
@ -6831,6 +6993,22 @@
}
]
},
{
"type": "org.whispersystems.signalservice.api.link.SetDeviceNameRequest",
"allDeclaredFields": true,
"methods": [
{
"name": "<init>",
"parameterTypes": [
"java.lang.String"
]
},
{
"name": "getDeviceName",
"parameterTypes": []
}
]
},
{
"type": "org.whispersystems.signalservice.api.messages.calls.HangupMessage",
"allDeclaredFields": true,
@ -6894,7 +7072,7 @@
"allDeclaredFields": true
},
{
"type": "org.signal.core.models.ServiceId",
"type": "org.whispersystems.signalservice.api.push.ServiceId",
"allDeclaredFields": true,
"methods": [
{
@ -9234,4 +9412,4 @@
}
}
]
}
}

File diff suppressed because one or more lines are too long

View File

@ -4,8 +4,8 @@ plugins {
}
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.VERSION_25
targetCompatibility = JavaVersion.VERSION_25
if (!JavaVersion.current().isCompatibleWith(targetCompatibility)) {
toolchain {

View File

@ -32,7 +32,7 @@ fi
run() {
# To update graalvm config, set GRAALVM_HOME, e.g:
# export GRAALVM_HOME=/usr/lib/jvm/java-21-graalvm
# export GRAALVM_HOME=/usr/lib/jvm/java-25-graalvm
if [ ! -z "$GRAALVM_HOME" ]; then
export JAVA_HOME=$GRAALVM_HOME
export SIGNAL_CLI_OPTS="-agentlib:native-image-agent=config-merge-dir=graalvm-config-dir-${SIGNAL_CLI_AGENT_ID}/"