diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
index b648121f..78c72d19 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/gradle.yml
@@ -31,33 +31,35 @@ jobs:
strategy:
fail-fast: false
matrix:
- jdk-version: [ 21 ]
+ jdk-version: [ 25 ]
os:
- - ubuntu-latest
- - windows-latest
- - macos-13 # Intel OSX
+ - ubuntu-24.04
+ - windows-2025
+ - macos-15-intel # Intel OSX
- macos-14 # ARM64 OSX
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
+ with:
+ persist-credentials: "false"
- name: Set Up JDK ${{ matrix.jdk-version }}
- uses: actions/setup-java@v4
+ uses: actions/setup-java@v5
with:
java-version: ${{ matrix.jdk-version }}
- distribution: 'temurin'
+ distribution: 'zulu'
- name: Setup Gradle
- uses: gradle/actions/setup-gradle@v4
+ uses: gradle/actions/setup-gradle@v5
with:
add-job-summary: 'on-failure'
- name: Gradle Build Jar
- run: ./gradlew clean assemble -Penv=prod-jar
+ run: ./gradlew clean assemble -Penv=release-jar
- name: Upload Jar
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
continue-on-error: true
with:
name: java-${{ matrix.jdk-version }}-${{ runner.os }}-${{ runner.arch }}-jar
@@ -96,33 +98,35 @@ jobs:
strategy:
fail-fast: false
matrix:
- jdk-version: [ 21 ]
+ jdk-version: [ 25 ]
os:
- - ubuntu-latest
- - windows-latest
- - macos-13 # Intel OSX
+ - ubuntu-24.04
+ - windows-2025
+ - macos-15-intel # Intel OSX
- macos-14 # ARM64 OSX
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
+ with:
+ persist-credentials: "false"
- name: Set Up JDK ${{ matrix.jdk-version }}
- uses: actions/setup-java@v4
+ uses: actions/setup-java@v5
with:
java-version: ${{ matrix.jdk-version }}
- distribution: 'temurin'
+ distribution: 'zulu'
- name: Setup Gradle
- uses: gradle/actions/setup-gradle@v4
+ uses: gradle/actions/setup-gradle@v5
with:
add-job-summary: 'on-failure'
- name: Gradle Build JLink Zip
- run: ./gradlew clean jlink -Penv=prod-jlink
+ run: ./gradlew clean jlink -Penv=release-jlink
- name: Upload JLink Zip
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
continue-on-error: true
with:
name: java-${{ matrix.jdk-version }}-${{ runner.os }}-${{ runner.arch }}-jlink-zip
@@ -160,33 +164,35 @@ jobs:
strategy:
fail-fast: false
matrix:
- jdk-version: [ 21 ]
+ jdk-version: [ 25 ]
os:
- - ubuntu-latest
- - windows-latest
- - macos-13 # Intel OSX
+ - ubuntu-24.04
+ - windows-2025
+ - macos-15-intel # Intel OSX
- macos-14 # ARM64 OSX
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
+ with:
+ persist-credentials: "false"
- name: Set Up JDK ${{ matrix.jdk-version }}
- uses: actions/setup-java@v4
+ uses: actions/setup-java@v5
with:
java-version: ${{ matrix.jdk-version }}
- distribution: 'temurin'
+ distribution: 'zulu'
- name: Setup Gradle
- uses: gradle/actions/setup-gradle@v4
+ uses: gradle/actions/setup-gradle@v5
with:
add-job-summary: 'on-failure'
- name: Gradle Build JPackage
- run: ./gradlew clean jpackage -Penv=prod-jlink
+ run: ./gradlew clean jpackage -Penv=release-jlink
- name: Upload JPackage
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
continue-on-error: true
with:
name: java-${{ matrix.jdk-version }}-${{ runner.os }}-${{ runner.arch }}-jpackage
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 567987d5..2edc985c 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -31,22 +31,24 @@ jobs:
strategy:
fail-fast: false
matrix:
- jdk-version: [ 21 ]
+ jdk-version: [ 25 ]
os:
- - ubuntu-latest
- - windows-latest
- - macos-13 # Intel OSX
+ - ubuntu-24.04
+ - windows-2025
+ - macos-15-intel # Intel OSX
- macos-14 # ARM64 OSX
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
+ with:
+ persist-credentials: "false"
- name: Set Up JDK ${{ matrix.jdk-version }}
- uses: actions/setup-java@v4
+ uses: actions/setup-java@v5
with:
java-version: ${{ matrix.jdk-version }}
- distribution: 'temurin'
+ distribution: 'zulu'
- name: Cache Maven repository
uses: actions/cache@v4
@@ -60,7 +62,7 @@ jobs:
run: ./mvnw -V -B -e -ff -ntp clean package -Passembly
- name: Upload Jar
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
continue-on-error: true
with:
name: java-${{ matrix.jdk-version }}-${{ runner.os }}-${{ runner.arch }}-jar
diff --git a/.idea/runConfigurations/trinity__clean_assemble_.xml b/.idea/runConfigurations/trinity__clean_assemble_.xml
index d42dbb94..9b0aa365 100644
--- a/.idea/runConfigurations/trinity__clean_assemble_.xml
+++ b/.idea/runConfigurations/trinity__clean_assemble_.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/.idea/runConfigurations/trinity__clean_jlink_.xml b/.idea/runConfigurations/trinity__clean_jlink_.xml
index 6d639a6b..2a45bbdb 100644
--- a/.idea/runConfigurations/trinity__clean_jlink_.xml
+++ b/.idea/runConfigurations/trinity__clean_jlink_.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/.idea/runConfigurations/trinity__clean_jpackage_.xml b/.idea/runConfigurations/trinity__clean_jpackage_.xml
index ed88d596..ca2d582c 100644
--- a/.idea/runConfigurations/trinity__clean_jpackage_.xml
+++ b/.idea/runConfigurations/trinity__clean_jpackage_.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
index 7967f30d..eebc3c18 100644
Binary files a/.mvn/wrapper/maven-wrapper.jar and b/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
index 7bd60b18..c51c1acb 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -14,7 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-wrapperVersion=3.3.2
+wrapperVersion=3.3.4
distributionType=bin
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.9/apache-maven-3.8.9-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar
diff --git a/build.gradle b/build.gradle
index bb6f31f5..51dfef12 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,11 +2,11 @@ plugins {
id 'java'
id 'idea'
id 'application'
- id 'com.github.ben-manes.versions' version '0.52.0'
+ id 'com.github.ben-manes.versions' version '0.53.0'
id 'net.nemerosa.versioning' version '3.1.0'
id 'org.openjfx.javafxplugin' version '0.1.0'
- id 'org.gradlex.extra-java-module-info' version '1.12'
- id 'org.beryx.jlink' version '3.1.1'
+ id 'org.gradlex.extra-java-module-info' version '1.13.1'
+ id 'org.beryx.jlink' version '3.1.4-rc'
}
ext {
@@ -16,8 +16,8 @@ ext {
moduleName = 'edu.jhuapl.trinity'
mainClassPath = 'edu.jhuapl.trinity.App'
mainClassJarLauncher = 'edu.jhuapl.trinity.TrinityMain'
- isProdJar = findProperty('env') == 'prod-jar'
- isProdJlink = findProperty('env') == 'prod-jlink'
+ isReleaseJar = findProperty('env') == 'release-jar'
+ isReleaseJlink = findProperty('env') == 'release-jlink'
isDevelopment = findProperty('env') == 'dev'
fxVersion = findProperty('javafx.version')
fxStaticVersion = findProperty('javafx.static.version')
@@ -40,41 +40,41 @@ println "OS Detected: ${org.gradle.internal.os.OperatingSystem.current()}"
repositories {
mavenCentral()
- maven { url 'https://jitpack.io' }
+ maven { url = 'https://jitpack.io' }
}
dependencies {
// Excluding openjfx from 3rd party modules.
- implementation(group: 'com.github.birdasaur.litfx', name: 'litfx-controls', version: '0.1.3') {
+ implementation('com.github.birdasaur.litfx:litfx-controls:0.1.3') {
exclude group: 'org.openjfx'
}
- implementation(group: 'org.fxyz3d', name: 'fxyz3d', version: '0.6.0') {
+ implementation('org.fxyz3d:fxyz3d:0.6.0') {
exclude group: 'org.openjfx'
}
- implementation(group: 'eu.hansolo.fx', name: 'charts', version: '21.0.25') {
+ implementation('eu.hansolo.fx:charts:21.0.27') {
exclude group: 'org.openjfx'
exclude group: 'ch.qos.logback'
}
- implementation group: 'com.github.quickhull3d', name: 'quickhull3d', version: '1.0.0'
- implementation group: 'org.apache.commons', name: 'commons-math3', version: '3.6.1'
- implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.18.0'
- implementation group: 'org.zeromq', name: 'jeromq', version: '0.6.0'
- implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.19.1'
- implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.19.1'
- implementation group: 'com.github.sarxos', name: 'webcam-capture', version: '0.3.12'
- implementation group: 'org.jflac', name: 'jflac-codec', version: '1.5.2'
- implementation group: 'com.tambapps.fft4j', name: 'fft4j', version: '2.0'
- implementation group: 'com.github.trinity-xai', name: 'SuperMDS', version: 'v2025.06.29'
- implementation group: 'org.apache.pdfbox', name: 'pdfbox', version: '3.0.5'
+ implementation 'com.github.quickhull3d:quickhull3d:1.0.0'
+ implementation 'org.apache.commons:commons-math3:3.6.1'
+ implementation 'org.apache.commons:commons-lang3:3.19.0'
+ implementation 'org.zeromq:jeromq:0.6.0'
+ implementation 'com.fasterxml.jackson.core:jackson-annotations:2.19.2'
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.19.2'
+ implementation 'com.github.sarxos:webcam-capture:0.3.12'
+ implementation 'org.jflac:jflac-codec:1.5.2'
+ implementation 'com.tambapps.fft4j:fft4j:2.0'
+ implementation 'com.github.trinity-xai:SuperMDS:v2025.06.29'
+ implementation 'org.apache.pdfbox:pdfbox:3.0.6'
// Enforce slf4j-api version across dependencies
- implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.17'
- implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.5.18'
+ implementation 'org.slf4j:slf4j-api:2.0.17'
+ implementation 'ch.qos.logback:logback-classic:1.5.20'
- testImplementation 'org.junit.jupiter:junit-jupiter:5.13.2'
- testImplementation 'org.junit.platform:junit-platform-suite:1.13.2'
- testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.13.2'
+ testImplementation 'org.junit.jupiter:junit-jupiter:5.15.0'
+ testImplementation 'org.junit.platform:junit-platform-suite:1.14.0'
+ testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.14.0'
}
// Make sure every single dependency is modularized.
@@ -173,7 +173,7 @@ idea {
}
tasks.named('wrapper', Wrapper) {
- gradleVersion = '8.14.2'
+ gradleVersion = '9.1.0'
distributionType = Wrapper.DistributionType.BIN
}
@@ -189,10 +189,10 @@ application {
}
java {
-// sourceCompatibility = JavaVersion.VERSION_21 // Use this instead of toolchain.* if you want to manually setup your own JDK
-// targetCompatibility = JavaVersion.VERSION_21 // Use this instead of toolchain.* if you want to manually setup your own JDK
- toolchain.languageVersion = JavaLanguageVersion.of(21)
- toolchain.vendor = JvmVendorSpec.ADOPTIUM
+// sourceCompatibility = JavaVersion.VERSION_25 // Use this instead of toolchain.* if you want to manually setup your own JDK
+// targetCompatibility = JavaVersion.VERSION_25 // Use this instead of toolchain.* if you want to manually setup your own JDK
+ toolchain.languageVersion = JavaLanguageVersion.of(25)
+// toolchain.vendor = JvmVendorSpec.ADOPTIUM
modularity.inferModulePath.set(true)
}
@@ -206,7 +206,10 @@ compileJava {
// List of Prism Settings
// https://github.com/openjdk/jfx/blob/master/modules/javafx.graphics/src/main/java/com/sun/prism/impl/PrismSettings.java
run {
- jvmArgs += ['-Dprism.maxvram=2G', '-Djavafx.animation.fullspeed=true']
+ jvmArgs '-Dprism.maxvram=2G'
+ jvmArgs '-Djavafx.animation.fullspeed=true'
+ jvmArgs '--enable-native-access=javafx.graphics'
+ jvmArgs '--enable-native-access=javafx.media'
}
tasks.named('test', Test) {
@@ -253,7 +256,7 @@ processResources {
// Configure Default Logging Path (only applies when logback is enabled)
def logPath = "${artifactName}.log" // Note: if you update this make sure to verify/update fileNamePattern below as well
// Log to Console.App on OSX
- if (isProdJlink && org.gradle.internal.os.OperatingSystem.current().macOsX) {
+ if (isReleaseJlink && org.gradle.internal.os.OperatingSystem.current().macOsX) {
logPath = '${user.home}/Library/Logs/' + logPath
}
def logbackProps = [
@@ -345,9 +348,9 @@ tasks.register('fxUberJar', Jar) {
}
}
-artifacts {
- archives noFxUberJar
- archives fxUberJar
+assemble {
+ dependsOn(noFxUberJar)
+ dependsOn(fxUberJar)
}
//
@@ -363,11 +366,18 @@ jlink {
options.set(['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'])
imageZip.set(imageZipFile)
launcher {
+ def currentOS = org.gradle.internal.os.OperatingSystem.current()
name = artifactNameUpper
mainClass = mainClassPath
+ noConsole = true // uses javaw instead of java on windows
jvmArgs = ['-Dprism.maxvram=2G', '-Djavafx.animation.fullspeed=true']
jvmArgs += ["-Dlogback.configurationFile={{BIN_DIR}}${fileSep}logback.xml"]
- jvmArgs += ["-Dtrinity.app.dir={{BIN_DIR}}"]
+ if (currentOS.windows) {
+ jvmArgs += ["-Dtrinity.app.dir={{BIN_DIR}}${fileSep}"] // extra fileSep on jlink to ensure .bat file %~dp0 escaping works
+ } else {
+ jvmArgs += ["-Dtrinity.app.dir={{BIN_DIR}}"]
+ }
+ jvmArgs += ['--enable-native-access=javafx.graphics', '--enable-native-access=javafx.media']
//jvmArgs += ["--add-exports external.module.name/external.package.name=$sModuleName", ...]
}
//forceMerge('javafx')
@@ -381,6 +391,7 @@ jlink {
jvmArgs = ['-Dprism.maxvram=2G', '-Djavafx.animation.fullspeed=true']
jvmArgs += ["-Dlogback.configurationFile=\$APPDIR${fileSep}logback.xml"]
jvmArgs += ["-Dtrinity.app.dir=\$APPDIR"]
+ jvmArgs += ['--enable-native-access=javafx.graphics', '--enable-native-access=javafx.media']
jvmArgs += ['--module-path', '.']
if (currentOS.windows) {
skipInstaller = true
diff --git a/gradle.properties b/gradle.properties
index cff2699a..a8867c13 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -8,4 +8,4 @@ org.gradle.java.installations.auto-detect=true
# Project Build Properties
env=dev
-javafx.version=21.0.7
+javafx.version=25.0.1
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 1b33c55b..8bdaf60c 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 ff23a68d..2e111328 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
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.1.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index 23d15a93..adff685a 100755
--- a/gradlew
+++ b/gradlew
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright © 2015-2021 the original authors.
+# Copyright © 2015 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -114,7 +114,6 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -172,7 +171,6 @@ fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
- CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
@@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
- -classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
diff --git a/gradlew.bat b/gradlew.bat
index db3a6ac2..c4bdd3ab 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -70,11 +70,10 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=
@rem Execute Gradle
-"%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" %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/mvnw b/mvnw
index 5e9618ca..1ddd97b9 100755
--- a/mvnw
+++ b/mvnw
@@ -19,7 +19,7 @@
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
-# Apache Maven Wrapper startup batch script, version 3.3.2
+# Apache Maven Wrapper startup batch script, version 3.3.4
#
# Required ENV vars:
# ------------------
@@ -201,6 +201,14 @@ MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
export MAVEN_PROJECTBASEDIR
log "$MAVEN_PROJECTBASEDIR"
+trim() {
+ # MWRAPPER-139:
+ # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
+ # Needed for removing poorly interpreted newline sequences when running in more
+ # exotic environments such as mingw bash on Windows.
+ printf "%s" "${1}" | tr -d '[:space:]'
+}
+
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
@@ -212,15 +220,13 @@ else
log "Couldn't find $wrapperJarPath, downloading it ..."
if [ -n "$MVNW_REPOURL" ]; then
- wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+ wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
else
- wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+ wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
fi
while IFS="=" read -r key value; do
- # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' )
- safeValue=$(echo "$value" | tr -d '\r')
case "$key" in wrapperUrl)
- wrapperUrl="$safeValue"
+ wrapperUrl=$(trim "${value-}")
break
;;
esac
@@ -235,17 +241,17 @@ else
log "Found wget ... using wget"
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
- wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+ wget ${QUIET:+"$QUIET"} "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
else
- wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+ wget ${QUIET:+"$QUIET"} --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
fi
elif command -v curl >/dev/null; then
log "Found curl ... using curl"
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
- curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+ curl ${QUIET:+"$QUIET"} -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
else
- curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+ curl ${QUIET:+"$QUIET"} --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
fi
else
log "Falling back to using Java to download"
@@ -276,7 +282,7 @@ fi
wrapperSha256Sum=""
while IFS="=" read -r key value; do
case "$key" in wrapperSha256Sum)
- wrapperSha256Sum=$value
+ wrapperSha256Sum=$(trim "${value-}")
break
;;
esac
@@ -284,7 +290,7 @@ done <"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
if [ -n "$wrapperSha256Sum" ]; then
wrapperSha256Result=false
if command -v sha256sum >/dev/null; then
- if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c >/dev/null 2>&1; then
+ if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c - >/dev/null 2>&1; then
wrapperSha256Result=true
fi
elif command -v shasum >/dev/null; then
diff --git a/mvnw.cmd b/mvnw.cmd
index 4136715f..8366e217 100644
--- a/mvnw.cmd
+++ b/mvnw.cmd
@@ -18,7 +18,7 @@
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
-@REM Apache Maven Wrapper startup batch script, version 3.3.2
+@REM Apache Maven Wrapper startup batch script, version 3.3.4
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@@ -119,7 +119,7 @@ SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
@@ -133,7 +133,7 @@ if exist %WRAPPER_JAR% (
)
) else (
if not "%MVNW_REPOURL%" == "" (
- SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+ SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
diff --git a/pom.xml b/pom.xml
index 27963446..f1bbde93 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,40 +19,40 @@
${maven.build.timestamp}
UTF-8
UTF-8
- 21
- 21.0.7
- 3.8.8
+ 25
+ 25.0.1
+ 3.9.9
${java.version}
${java.version}
${java.version}
yyyy.MM.dd
- 3.14.0
- 3.5.0
+ 3.14.1
+ 3.6.2
3.7.1
- 3.5.3
+ 3.5.4
4.0.0-M16
0.0.8
- 1.7.1
+ 1.7.3
3.6.1
9.0.2
- 12.1.3
- 5.13.2
- 1.13.2
+ 12.1.8
+ 5.14.0
+ 1.14.0
0.1.3
0.6.0
- 21.0.25
+ 21.0.27
1.0.0
3.6.1
- 3.18.0
+ 3.19.0
0.6.0
- 2.19.1
+ 2.19.2
0.3.12
1.5.2
2.0
v2025.06.29
- 3.0.5
+ 3.0.6
2.0.17
- 1.5.18
+ 1.5.20
edu.jhuapl.trinity.TrinityMain
Trinity
@@ -69,6 +69,10 @@
+
+ central
+ https://repo1.maven.org/maven2/
+
jitpack.io
https://jitpack.io
@@ -123,16 +127,62 @@
com.github.birdasaur.litfx
litfx-controls
${litfx.controls.version}
+
+
+ org.openjfx
+ javafx-controls
+
+
+ org.openjfx
+ javafx-fxml
+
+
org.fxyz3d
fxyz3d
${fxyz3d.version}
+
+
+ org.openjfx
+ javafx-controls
+
+
+ org.openjfx
+ javafx-fxml
+
+
+ org.openjfx
+ javafx-swing
+
+
eu.hansolo.fx
charts
${hansolo.charts.version}
+
+
+ org.openjfx
+ javafx-base
+
+
+ org.openjfx
+ javafx-graphics
+
+
+ org.openjfx
+ javafx-controls
+
+
+ org.openjfx
+ javafx-swing
+
+
+ ch.qos.logback
+ logback-classic
+
+
com.github.quickhull3d
diff --git a/src/main/java/edu/jhuapl/trinity/utils/statistics/DensityCache.java b/src/main/java/edu/jhuapl/trinity/utils/statistics/DensityCache.java
index 7baa6642..bd030686 100644
--- a/src/main/java/edu/jhuapl/trinity/utils/statistics/DensityCache.java
+++ b/src/main/java/edu/jhuapl/trinity/utils/statistics/DensityCache.java
@@ -121,7 +121,7 @@ private DensityCache(int maxEntries, long ttlMillis) {
this.ttlMillis = ttlMillis;
this.map = new LinkedHashMap<>(16, 0.75f, true) {
@Override
- protected boolean removeEldestEntry(Map.Entry eldest) {
+ protected boolean removeEldestEntry(Map.Entry eldest) {
boolean evict = size() > DensityCache.this.maxEntries;
if (evict) evictions++;
return evict;
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 29320693..7028e466 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -19,7 +19,6 @@
requires javafx.graphics;
requires javafx.media;
requires javafx.swing;
- requires jdk.crypto.ec;
requires jdk.httpserver;
requires jflac.codec;
requires lit.litfx.controls;