diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
index bebd794e..2d7f8e48 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/gradle.yml
@@ -22,10 +22,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- - name: Set up JDK 24
+ - name: Set up JDK 25
uses: actions/setup-java@v3
with:
- java-version: '24'
+ java-version: '25'
distribution: 'liberica'
java-package: 'jdk+fx'
- name: Build with Gradle
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 55c0e163..f3a238a5 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -15,10 +15,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- - name: Set up JDK 24
+ - name: Set up JDK 25
uses: actions/setup-java@v3
with:
- java-version: '24'
+ java-version: '25'
distribution: 'liberica'
java-package: 'jdk+fx'
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2afb0fc0..9bc3b3c6 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index b176f509..ace1faf3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -47,12 +47,12 @@ plugins {
id 'application'
id 'java'
id 'idea'
- id 'org.beryx.runtime' version '1.12.7'
+ id 'org.beryx.runtime' version '2.0.1'
}
repositories {
mavenCentral()
- maven { url "https://jitpack.io" }
+ maven { url = "https://jitpack.io" }
}
//Version is defined in gradle.properties so that we can CLI override it for nightly builds.
@@ -61,7 +61,7 @@ version = project.findProperty('projectVersion')
//Java 24 is required for this version of the Project Panama preview/incubator feature
java {
toolchain {
- languageVersion = JavaLanguageVersion.of(24)
+ languageVersion = JavaLanguageVersion.of(25)
}
}
@@ -77,10 +77,10 @@ test {
dependencies {
// JUnit Tests
- testImplementation(platform("org.junit:junit-bom:5.13.1"))
- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.13.1'
- testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.13.1")
- testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.13.1")
+ testImplementation(platform("org.junit:junit-bom:6.0.1"))
+ testImplementation 'org.junit.jupiter:junit-jupiter-api:6.0.1'
+ testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:6.0.1")
+ testRuntimeOnly("org.junit.vintage:junit-vintage-engine:6.0.1")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
//Jitpack imports
@@ -89,29 +89,29 @@ dependencies {
implementation 'com.github.nwaldispuehl:java-lame:v3.98.4'
//mavenCentral/jcenter imports
- implementation 'ch.qos.logback:logback-classic:1.5.18'
- implementation 'ch.qos.logback:logback-core:1.5.18'
- implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.19.1'
- implementation 'com.fazecast:jSerialComm:2.9.3'
+ implementation 'ch.qos.logback:logback-classic:1.5.21'
+ implementation 'ch.qos.logback:logback-core:1.5.21'
+ implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.20.1'
+ implementation 'com.fazecast:jSerialComm:2.11.4'
implementation 'com.github.jiconfont:jiconfont-font_awesome:4.7.0.1'
implementation 'com.github.jiconfont:jiconfont-javafx:1.0.0'
implementation 'com.github.jiconfont:jiconfont-swing:1.0.1'
implementation 'com.github.wendykierp:JTransforms:3.1'
- implementation 'com.google.code.gson:gson:2.13.1'
- implementation 'com.google.guava:guava:33.4.8-jre'
+ implementation 'com.google.code.gson:gson:2.13.2'
+ implementation 'com.google.guava:guava:33.5.0-jre'
implementation 'com.jidesoft:jide-oss:3.6.18'
implementation 'com.miglayout:miglayout-swing:11.4.2'
implementation 'com.mpatric:mp3agic:0.9.1'
- implementation 'commons-io:commons-io:2.19.0'
+ implementation 'commons-io:commons-io:2.21.0'
implementation 'eu.hansolo:charts:1.0.5'
implementation 'io.github.dsheirer:radio-reference-api:18.0.0'
implementation 'io.github.dsheirer:usb4java-native-libraries:1.3.1' //OSX & Windows aarch64 native libs
implementation 'javax.usb:usb-api:1.0.2'
implementation 'net.coderazzi:tablefilter-swing:5.5.4'
- implementation 'org.apache.commons:commons-compress:1.27.1'
- implementation 'org.apache.commons:commons-lang3:3.18.0'
+ implementation 'org.apache.commons:commons-compress:1.28.0'
+ implementation 'org.apache.commons:commons-lang3:3.19.0'
implementation 'org.apache.commons:commons-math3:3.6.1'
- implementation 'org.apache.commons:commons-csv:1.14.0'
+ implementation 'org.apache.commons:commons-csv:1.14.1'
implementation 'org.apache.mina:mina-core:2.2.4'
implementation 'org.apache.mina:mina-http:2.2.4'
implementation 'org.controlsfx:controlsfx:11.2.2'
@@ -144,6 +144,7 @@ def jvmArgsWindows =
'--enable-native-access=ALL-UNNAMED', //Suppress unsafe warnings for FFM API Foreign Memory calls
'--enable-native-access=javafx.graphics', //JDK24 - suppress restricted java.lang.System calls
'--sun-misc-unsafe-memory-access=allow', //JDK24 - suppress sun.misc.Unsafe::allocateMemory warning
+ '-XX:+UseCompactObjectHeaders', //JDK25 - use compact object headers
'-Djava.library.path=c:\\Program Files\\SDRplay\\API\\x64'] //SDRPlay API library path
/**
@@ -154,11 +155,12 @@ def jvmArgsLinux =
'--add-modules=jdk.incubator.vector', //Needed while Project Panama API is still in incubator
'--enable-preview', //Project Panama Vector & Foreign Function APIs remain in incubator
'--sun-misc-unsafe-memory-access=allow', //JDK24 - suppress sun.misc.Unsafe::allocateMemory warning
+ '-XX:+UseCompactObjectHeaders', //JDK25 - use compact object headers
'--enable-native-access=javafx.graphics', //JDK24 - suppress restricted java.lang.System calls
'--enable-native-access=ALL-UNNAMED'] //SDRPlay API library path
application {
- mainClassName = "io.github.dsheirer.gui.SDRTrunk"
+ mainClass = "io.github.dsheirer.gui.SDRTrunk"
if(os.isWindows()) {
applicationDefaultJvmArgs = jvmArgsWindows
@@ -217,17 +219,17 @@ String targetWindowsAarch64 = 'windows-aarch64-v' + version
* author's development environment, but can be changed to your environment if you want to use this build pattern.
*/
String jdk_base = '/home/denny/java_jdks/'
-String jdk_linux_aarch64 = jdk_base + 'linux-arm64/jdk-22.0.2-full'
-String jdk_linux_x86_64 = jdk_base + 'linux-x64/jdk-22.0.2-full'
-String jdk_osx_x86_64 = jdk_base + 'osx-x64/jdk-22.0.2-full.jdk'
-String jdk_osx_aarch64 = jdk_base + 'osx-arm64/jdk-22.0.2-full.jdk'
-String jdk_windows_x86_64 = jdk_base + 'windows-x64/jdk-22.0.2-full'
-String jdk_windows_aarch64 = jdk_base + 'windows-arm64/jdk-22.0.2-full'
+String jdk_linux_aarch64 = jdk_base + 'linux-arm64/jdk-25.0.1-full'
+String jdk_linux_x86_64 = jdk_base + 'linux-x64/jdk-25.0.1-full'
+String jdk_osx_x86_64 = jdk_base + 'osx-x64/jdk-25.0.1-full.jdk'
+String jdk_osx_aarch64 = jdk_base + 'osx-arm64/jdk-25.0.1-full.jdk'
+String jdk_windows_x86_64 = jdk_base + 'windows-x64/jdk-25.0.1-full'
+String jdk_windows_aarch64 = jdk_base + 'windows-arm64/jdk-25.0.1-full'
/**
* Download URLs to download the JDK as part of the gradle build packaging process
*/
-def jdk_download_base = "https://download.bell-sw.com/java/24.0.1+11/bellsoft-jdk24.0.1+11-"
+def jdk_download_base = "https://download.bell-sw.com/java/25.0.1+11/bellsoft-jdk25.0.1+11-"
def jdk_download_suffix = "-full.tar.gz"
def jdk_download_linux_aarch64 = jdk_download_base + "linux-aarch64" + jdk_download_suffix
def jdk_download_linux_x86_64 = jdk_download_base + "linux-amd64" + jdk_download_suffix
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index a4b76b95..1b33c55b 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 33910546..423d21c0 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -19,7 +19,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index 5727a0a8..d26729f3 100755
--- a/gradlew
+++ b/gradlew
@@ -87,8 +87,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
-APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
-' "$PWD" ) || exit
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -116,7 +115,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -207,7 +206,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
-# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
@@ -215,7 +214,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/gradlew.bat b/gradlew.bat
index 9b42019c..5eed7ee8 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -70,11 +70,11 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+set CLASSPATH=
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/src/main/java/io/github/dsheirer/source/tuner/manager/ChannelSourceManager.java b/src/main/java/io/github/dsheirer/source/tuner/manager/ChannelSourceManager.java
index 30711485..13e1fa3d 100644
--- a/src/main/java/io/github/dsheirer/source/tuner/manager/ChannelSourceManager.java
+++ b/src/main/java/io/github/dsheirer/source/tuner/manager/ChannelSourceManager.java
@@ -95,7 +95,6 @@ public abstract class ChannelSourceManager implements ISourceEventProcessor
*/
public void addSourceEventListener(Listener listener)
{
- System.out.println("ChannelSourceManager regisering: " + listener.getClass());
mSourceEventBroadcaster.addListener(listener);
}