diff --git a/.AppImage/createAppImage.sh b/.AppImage/createAppImage.sh index c955825..cf4d922 100755 --- a/.AppImage/createAppImage.sh +++ b/.AppImage/createAppImage.sh @@ -1,5 +1,5 @@ #!/bin/sh -wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" +wget "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage" chmod a+x appimagetool-x86_64.AppImage BASEDIR=$(dirname "$0") PARENT_DIR="$(dirname "$BASEDIR")" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2d8d8a4..8e6b4a2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,12 +23,6 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} run: sudo apt-get install -y fuse libfuse2 - - name: Setup JDK 23 - uses: actions/setup-java@v4 - with: - java-version: '23' - distribution: 'temurin' - - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -63,12 +57,6 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} run: sudo apt-get install -y fuse libfuse2 - - name: Setup JDK 23 - uses: actions/setup-java@v4 - with: - java-version: '23' - distribution: 'temurin' - - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4bff1e3..7082df5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,12 +23,6 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} run: sudo apt-get install -y fuse libfuse2 - - name: Setup JDK 23 - uses: actions/setup-java@v4 - with: - java-version: '23' - distribution: 'temurin' - - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 diff --git a/build.gradle b/build.gradle index 889d2a5..6b1a321 100644 --- a/build.gradle +++ b/build.gradle @@ -15,17 +15,20 @@ version '1.5.0' def currentOS = DefaultNativePlatform.currentOperatingSystem java { - targetCompatibility = JavaVersion.VERSION_23 - sourceCompatibility = JavaVersion.VERSION_23 + targetCompatibility = JavaVersion.VERSION_24 + sourceCompatibility = JavaVersion.VERSION_24 } application { mainModule = 'Opal' mainClass = 'com.codedead.opal.OpalApplication' + applicationDefaultJvmArgs = [ + '--enable-native-access', 'javafx.graphics,javafx.media' + ] } javafx { - version = '23.0.1' + version = '24.0.1' configuration = 'implementation' modules = ['javafx.base', 'javafx.controls', 'javafx.fxml', 'javafx.media'] } @@ -106,9 +109,10 @@ tasks.register('AppImage') { from '.AppImage/.AppDir/Opal.png' into layout.buildDirectory.dir("AppImage/Opal.AppDir/usr/lib") } - exec { + def appCreate = providers.exec { commandLine 'sh', "${project.rootDir}/.AppImage/createAppImage.sh", "${project.version.toString()}" } + println(appCreate.standardOutput.asText.get().toString()) delete layout.buildDirectory.dir("AppImage/Opal.AppDir") } } @@ -135,9 +139,9 @@ repositories { dependencies { implementation 'org.apache.logging.log4j:log4j-core:2.24.3' implementation 'io.github.mkpaz:atlantafx-base:2.0.1' - implementation 'com.fasterxml.jackson.core:jackson-databind:2.18.2' - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.4' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.4' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.19.0' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.12.2' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.12.2' } tasks.named('test') { diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties index cb5c20f..de8330e 100644 --- a/gradle/gradle-daemon-jvm.properties +++ b/gradle/gradle-daemon-jvm.properties @@ -1,2 +1,12 @@ #This file is generated by updateDaemonJvm -toolchainVersion=23 +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2cc0e462b4aba5b04eca0c0195de913/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/a5bf7c0ea8df214d631cfabda0bb22a1/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2cc0e462b4aba5b04eca0c0195de913/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a5bf7c0ea8df214d631cfabda0bb22a1/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/2e552f294b8202503b915a2776a20522/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/bafd1c103acb25b7a51b71a030745362/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2cc0e462b4aba5b04eca0c0195de913/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a5bf7c0ea8df214d631cfabda0bb22a1/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/ea8137c0d013bbba75915958eff8424d/redirect +toolchainVendor=AMAZON +toolchainVersion=24 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..1b33c55 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 cea7a79..ca025c8 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.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f3b75f3..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -114,7 +114,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. @@ -205,7 +205,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. @@ -213,7 +213,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 9d21a21..db3a6ac 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/settings.gradle b/settings.gradle index f5e9c25..239e0ba 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,7 @@ -rootProject.name = 'Opal' +buildscript { + rootProject.name = 'Opal' +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.10.0' +} diff --git a/src/main/java/com/codedead/opal/utils/HelpUtils.java b/src/main/java/com/codedead/opal/utils/HelpUtils.java index 1164c36..254f8f5 100644 --- a/src/main/java/com/codedead/opal/utils/HelpUtils.java +++ b/src/main/java/com/codedead/opal/utils/HelpUtils.java @@ -36,7 +36,7 @@ public void openFile(final RunnableFileOpener runnableFileOpener) throws FileNot if (runnableFileOpener == null) throw new NullPointerException("RunnableFileOpener cannot be null!"); - logger.info("Attempting to open file {}", runnableFileOpener.getFileLocation()); + logger.info("Attempting to open file from filesystem {}", runnableFileOpener.getFileLocation()); final Path filePath = Paths.get(runnableFileOpener.getFileLocation()); diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index f2b6ef7..9038567 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,5 +1,4 @@ module Opal { - requires java.base; requires java.net.http; requires javafx.controls; requires javafx.fxml; diff --git a/src/main/resources/translations/OpalApplication_uk_UA.properties b/src/main/resources/translations/OpalApplication_uk_UA.properties index 80db46e..8ed7026 100644 --- a/src/main/resources/translations/OpalApplication_uk_UA.properties +++ b/src/main/resources/translations/OpalApplication_uk_UA.properties @@ -101,3 +101,7 @@ Dolphins=Дельфіни RollerCoaster=Американські гірки LargeCrowd=Великий натовп Search=Пошук +CustomSounds=Користувацькі звуки +AddCustomSound=Додати користувацький звук +OpenCustomSoundError=Не вдалося відкрити користувацький звук! +CustomSound=Користувацький звук