diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b5d66d8eea5..103788892f4 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -31,9 +31,9 @@ // Install java. // See https://github.com/devcontainers/features/tree/main/src/java#options for details. "ghcr.io/devcontainers/features/java:1": { - "version": "24.0.2-amzn", + "version": "latest", "installGradle": true, - "gradleVersion": "8.14.3", + "gradleVersion": "latest", "jdkDistro": "Corretto" } } diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index d6886b7b3bd..8b75ab10303 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -193,14 +193,14 @@ jobs: matrix: include: # if you change the os version rename all other occurrences - - os: ubuntu-22.04 - displayName: linux + - os: ubuntu-22.04 # if this is adapted, also the next lines need to be adapted + displayName: linux-amd64 archivePortable: tar -c -C jabgui/build/packages/ubuntu-22.04 JabRef | pigz --rsyncable > jabgui/build/packages/ubuntu-22.04/JabRef-portable_linux.tar.gz && rm -R jabgui/build/packages/ubuntu-22.04/JabRef archivePortableJabKit: tar -c -C jabkit/build/packages/ubuntu-22.04 jabkit | pigz --rsyncable > jabkit/build/packages/ubuntu-22.04/jabkit-portable_linux.tar.gz && rm -R jabkit/build/packages/ubuntu-22.04/jabkit archivePortableJabLS: tar -c -C jabls-cli/build/packages/ubuntu-22.04 jabls | pigz --rsyncable > jabls-cli/build/packages/ubuntu-22.04/jabls-portable_linux.tar.gz && rm -R jabls-cli/build/packages/ubuntu-22.04/jabls suffix: '' archForDebianRepack: '_amd64' - - os: ubuntu-22.04-arm + - os: ubuntu-22.04-arm # if this is adapted, also the next lines need to be adapted displayName: linux-arm archivePortable: tar -c -C jabgui/build/packages/ubuntu-22.04-arm JabRef | pigz --rsyncable > jabgui/build/packages/ubuntu-22.04-arm/JabRef-portable_linux_arm64.tar.gz && rm -R jabgui/build/packages/ubuntu-22.04-arm/JabRef archivePortableJabKit: tar -c -C jabkit/build/packages/ubuntu-22.04-arm jabkit | pigz --rsyncable > jabkit/build/packages/ubuntu-22.04-arm/jabkit-portable_linux_arm64.tar.gz && rm -R jabkit/build/packages/ubuntu-22.04-arm/jabkit @@ -208,25 +208,25 @@ jobs: suffix: '_arm64' archForDebianRepack: '_arm64' - os: windows-latest - displayName: windows + displayName: windows-amd64 archivePortable: 7z a -r jabgui/build/packages/windows-latest/JabRef-portable_windows.zip ./jabgui/build/packages/windows-latest/JabRef && rm -R jabgui/build/packages/windows-latest/JabRef archivePortableJabKit: 7z a -r jabkit/build/packages/windows-latest/jabkit-portable_windows.zip ./jabkit/build/packages/windows-latest/jabkit && rm -R jabkit/build/packages/windows-latest/jabkit archivePortableJabLS: 7z a -r jabls-cli/build/packages/windows-latest/jabls-portable_windows.zip ./jabls-cli/build/packages/windows-latest/jabls && rm -R jabls-cli/build/packages/windows-latest/jabls suffix: '' archForDebianRepack: '' - - os: macos-15-intel # intel image - displayName: macOS - archivePortable: 7z a -r jabgui/build/packages/macos-15-intel/JabRef-portable_macos.zip ./jabgui/build/packages/macos-15-intel/JabRef.app && rm -R jabgui/build/packages/macos-15-intel/JabRef.app - archivePortableJabKit: 7z a -r jabkit/build/packages/macos-15-intel/jabkit-portable_macos.zip ./jabkit/build/packages/macos-15-intel/jabkit.app && rm -R jabkit/build/packages/macos-15-intel/jabkit.app - archivePortableJabLS: 7z a -r jabls-cli/build/packages/macos-15-intel/jabls-portable_macos.zip ./jabls-cli/build/packages/macos-15-intel/jabls.app && rm -R jabls-cli/build/packages/macos-15-intel/jabls.app - suffix: '' + - os: macos-15-intel + displayName: macOS-intel + archivePortable: 7z a -r jabgui/build/packages/macos-15-intel/JabRef-portable_macos-intel.zip ./jabgui/build/packages/macos-15-intel/JabRef.app && rm -R jabgui/build/packages/macos-15-intel/JabRef.app + archivePortableJabKit: 7z a -r jabkit/build/packages/macos-15-intel/jabkit-portable_macos-intel.zip ./jabkit/build/packages/macos-15-intel/jabkit.app && rm -R jabkit/build/packages/macos-15-intel/jabkit.app + archivePortableJabLS: 7z a -r jabls-cli/build/packages/macos-15-intel/jabls-portable_macos-intel.zip ./jabls-cli/build/packages/macos-15-intel/jabls.app && rm -R jabls-cli/build/packages/macos-15-intel/jabls.app + suffix: '_intel' archForDebianRepack: '' - os: macos-15 - displayName: macOS-arm - archivePortable: 7z a -r jabgui/build/packages/macos-15/JabRef-portable_macos-arm.zip ./jabgui/build/packages/macos-15/JabRef.app && rm -R jabgui/build/packages/macos-15/JabRef.app - archivePortableJabKit: 7z a -r jabkit/build/packages/macos-15/jabkit-portable_macos-arm.zip ./jabkit/build/packages/macos-15/jabkit.app && rm -R jabkit/build/packages/macos-15/jabkit.app - archivePortableJabLS: 7z a -r jabls-cli/build/packages/macos-15/jabls-portable_macos-arm.zip ./jabls-cli/build/packages/macos-15/jabls.app && rm -R jabls-cli/build/packages/macos-15/jabls.app - suffix: '_arm64' + displayName: macOS-silicon + archivePortable: 7z a -r jabgui/build/packages/macos-15/JabRef-portable_macos-silicon.zip ./jabgui/build/packages/macos-15/JabRef.app && rm -R jabgui/build/packages/macos-15/JabRef.app + archivePortableJabKit: 7z a -r jabkit/build/packages/macos-15/jabkit-portable_macos-silicon.zip ./jabkit/build/packages/macos-15/jabkit.app && rm -R jabkit/build/packages/macos-15/jabkit.app + archivePortableJabLS: 7z a -r jabls-cli/build/packages/macos-15/jabls-portable_macos-silicon.zip ./jabls-cli/build/packages/macos-15/jabls.app && rm -R jabls-cli/build/packages/macos-15/jabls.app + suffix: '_silicon' archForDebianRepack: '' runs-on: ${{ matrix.os }} outputs: @@ -257,7 +257,7 @@ jobs: - name: Setup JDK uses: actions/setup-java@v5 with: - java-version: '24' + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle @@ -283,7 +283,7 @@ jobs: with: p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }} p12-password: ${{ secrets.OSX_CERT_PWD }} - keychain-password: jabref + keychain-password: tEmPoRaRY-PaeSWD - name: Setup macOS key chain for app id cert if: (startsWith(matrix.os, 'macos')) && (needs.conditions.outputs.secretspresent == 'true') uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d @@ -291,7 +291,7 @@ jobs: p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }} p12-password: ${{ secrets.OSX_CERT_PWD }} create-keychain: false - keychain-password: jabref + keychain-password: tEmPoRaRY-PaeSWD - name: Build runtime image and installer shell: bash run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" :jabgui:jpackage @@ -409,7 +409,7 @@ jobs: name: JabRef-${{ matrix.os }}-tbn path: | jabgui/build/packages/${{ matrix.os }} - jabkit/build/packages/${{ matrix.os }} + jabls-cli/build/packages/${{ matrix.os }} compression-level: 0 # no compression # endregion @@ -485,7 +485,25 @@ jobs: matrix: include: - os: macos-15 - displayName: macOS (ARM64) + displayName: JabGui macOS (ARM64) + path: 'jabgui' + prefix: 'JabRef' + suffix: '_silicon' + - os: macos-15-intel + displayName: JabGui macOS (intel) + path: 'jabgui' + prefix: 'JabRef' + suffix: '_intel' + - os: macos-15 + displayName: jabls macOS (ARM64) + path: 'jabls' + prefix: 'jabls' + suffix: '_silicon' + - os: macos-15-intel + displayName: jabls macOS (intel) + path: 'jabls' + prefix: 'jabls' + suffix: '_intel' runs-on: ${{ matrix.os }} steps: - name: Download from GitHub workflow artifacts store (macOS) @@ -495,21 +513,21 @@ jobs: - name: Notarize dmg shell: bash run: | - cd jabgui + cd ${{ matrix.path }} find . -type f xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" - xcrun notarytool submit build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait - xcrun stapler staple build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg + xcrun notarytool submit build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait + xcrun stapler staple build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg - name: Notarize pkg shell: bash run: | - cd jabgui + cd ${{ matrix.path }} xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" - xcrun notarytool submit build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait - xcrun stapler staple build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg + xcrun notarytool submit build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait + xcrun stapler staple build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg - name: Upload to builds.jabref.org shell: bash run: | echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey chmod 600 sshkey - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui/build/packages/${{ matrix.os }}/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/ + rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' ${{ matrix.path }}/build/packages/${{ matrix.os }}/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/ diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5f710c265f7..afa13ff0cdb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -100,7 +100,7 @@ jobs: - name: Setup JDK uses: actions/setup-java@v5 with: - java-version: '24' + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle diff --git a/.github/workflows/run-openrewrite.yml b/.github/workflows/run-openrewrite.yml index 6ee606c65ab..6536a448ba2 100644 --- a/.github/workflows/run-openrewrite.yml +++ b/.github/workflows/run-openrewrite.yml @@ -33,7 +33,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle diff --git a/.github/workflows/sbom-pr.yml b/.github/workflows/sbom-pr.yml index 2d15fcfa75a..3971248d872 100644 --- a/.github/workflows/sbom-pr.yml +++ b/.github/workflows/sbom-pr.yml @@ -22,7 +22,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: 'corretto' - java-version: '24' + java-version: 25 check-latest: true cache: 'gradle' diff --git a/.github/workflows/tests-code-fetchers.yml b/.github/workflows/tests-code-fetchers.yml index 397d2789a20..744a2376b37 100644 --- a/.github/workflows/tests-code-fetchers.yml +++ b/.github/workflows/tests-code-fetchers.yml @@ -56,7 +56,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle diff --git a/.github/workflows/tests-code.yml b/.github/workflows/tests-code.yml index 25911c63f65..e7fa8fe845f 100644 --- a/.github/workflows/tests-code.yml +++ b/.github/workflows/tests-code.yml @@ -52,7 +52,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Run checkstyle reporter @@ -130,6 +130,8 @@ jobs: modernizer: name: Modernizer runs-on: ubuntu-latest + # Version 1.11.0 does not run on JDK25: "java.lang.reflect.InvocationTargetException" + if: false steps: - name: Checkout source uses: actions/checkout@v6 @@ -139,7 +141,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle @@ -265,7 +267,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle @@ -301,7 +303,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Generate JBang cache key @@ -350,7 +352,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle @@ -400,7 +402,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle @@ -532,7 +534,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Generate JBang cache key @@ -602,7 +604,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' cache: maven check-latest: true @@ -678,7 +680,7 @@ jobs: if: github.ref == 'refs/heads/main' uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle @@ -724,7 +726,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: 24 + java-version: 25 distribution: 'corretto' check-latest: true - name: Setup Gradle diff --git a/.jbang/CheckoutPR.java b/.jbang/CheckoutPR.java index 856fb56e88c..cb22de4fcd3 100755 --- a/.jbang/CheckoutPR.java +++ b/.jbang/CheckoutPR.java @@ -24,7 +24,7 @@ //DEPS org.eclipse.jgit:org.eclipse.jgit.pgm:7.4.0.202509020913-r public class CheckoutPR { - public static void main(String[] args) throws Exception { + static void main(String[] args) throws Exception { GitHub github = new GitHubBuilder().build(); GHRepository repo = github.getRepository("JabRef/jabref"); diff --git a/.jbang/CloneJabRef.java b/.jbang/CloneJabRef.java index 736008e1a0b..d9a379c2508 100755 --- a/.jbang/CloneJabRef.java +++ b/.jbang/CloneJabRef.java @@ -9,7 +9,7 @@ //DEPS org.eclipse.jgit:org.eclipse.jgit.pgm:7.4.0.202509020913-r public class CloneJabRef { - public static void main(String[] args) throws Exception { + static void main(String[] args) throws Exception { Path targetDir; if (args.length == 1) { targetDir = Path.of(args[0]).toAbsolutePath(); diff --git a/.jbang/JabKitLauncher.java b/.jbang/JabKitLauncher.java index bcfb1d9a1c8..d214d0b89b1 100755 --- a/.jbang/JabKitLauncher.java +++ b/.jbang/JabKitLauncher.java @@ -2,7 +2,7 @@ //DESCRIPTION jabkit - mange BibTeX files using JabRef -//JAVA 24 +//JAVA 25 //RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED // raw is for https://github.com/unicode-org/icu/pull/2127 diff --git a/.jbang/JabLsLauncher.java b/.jbang/JabLsLauncher.java index af68b46b170..75fa2a3ecf0 100755 --- a/.jbang/JabLsLauncher.java +++ b/.jbang/JabLsLauncher.java @@ -2,7 +2,7 @@ //DESCRIPTION jabls - start a bibtex languageserver -//JAVA 24 +//JAVA 25 //RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED // raw is for https://github.com/unicode-org/icu/pull/2127 diff --git a/.jbang/JabSrvLauncher.java b/.jbang/JabSrvLauncher.java index a35c96fa8b2..8d7c2c94735 100755 --- a/.jbang/JabSrvLauncher.java +++ b/.jbang/JabSrvLauncher.java @@ -2,7 +2,7 @@ //DESCRIPTION jabsrv - serve BibTeX files using JabRef -//JAVA 24 +//JAVA 25 //RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED // raw is for https://github.com/unicode-org/icu/pull/2127 diff --git a/.moderne/moderne.yml b/.moderne/moderne.yml index 970c3c0479c..7159802fb6f 100644 --- a/.moderne/moderne.yml +++ b/.moderne/moderne.yml @@ -1,3 +1,3 @@ specs: specs.moderne.ai/v1/cli java: - selectedJdk: '24' + selectedJdk: '25' diff --git a/.sdkmanrc b/.sdkmanrc index d5223a11a4a..26ac25ebe80 100644 --- a/.sdkmanrc +++ b/.sdkmanrc @@ -1,2 +1,2 @@ -java=24.0.2-tem +java=25-tem #visualvm=2.1.10 diff --git a/CHANGELOG.md b/CHANGELOG.md index d24f266f783..857bc8c4095 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv - We replaced the standard ComboBox with a SearchableComboBox and added a free text field in custom Entry Types [#14082](https://github.com/JabRef/jabref/issues/14082) - We separated the "Clean up entries" dialog into three tabs for clarity [#13819](https://github.com/JabRef/jabref/issues/13819) - `JabKit`: `--porcelain` does not output any logs to the console anymore. [#14244](https://github.com/JabRef/jabref/pull/14244) +- macOS distributions now take "intel" and "silicon" as suffixes. [#14057](https://github.com/JabRef/jabref/pull/14057) - Ctrl + Shift + L now opens the terminal in the active library directory. [#14130](https://github.com/JabRef/jabref/issues/14130) - After importing, now all imported entries are marked. [#13535](https://github.com/JabRef/jabref/pull/13535) - The URL integrity check now checks the complete URL syntax. [#14370](https://github.com/JabRef/jabref/pull/14370) diff --git a/build-logic/src/main/kotlin/org.jabref.gradle.feature.compile.gradle.kts b/build-logic/src/main/kotlin/org.jabref.gradle.feature.compile.gradle.kts index 090f12509dc..09f112851b8 100644 --- a/build-logic/src/main/kotlin/org.jabref.gradle.feature.compile.gradle.kts +++ b/build-logic/src/main/kotlin/org.jabref.gradle.feature.compile.gradle.kts @@ -9,16 +9,17 @@ java { // - jitpack.yml // - .sdkmanrc // - .devcontainer/devcontainer.json#L34 - there, also check if the gradleVersion matches the one of gradle/wrapper/gradle-wrapper.properties - // - .moderne/moderne.yml // - .github/workflows/binaries*.yml // - .github/workflows/publish.yml // - .github/workflows/tests*.yml // - .github/workflows/update-gradle-wrapper.yml // - .jbang/Jab*.java + // - .moderne/moderne.yml + // - build-support/src/main/java/*.java // - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md // - jablib-examples/jbang/*.java // - jablib-examples/maven3/*/pom.xml - languageVersion = JavaLanguageVersion.of(24) + languageVersion = JavaLanguageVersion.of(25) // See https://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html for a full list // Temurin does not ship jmods, thus we need to use another JDK -- see https://github.com/actions/setup-java/issues/804 // We also need a JDK without JavaFX, because we patch JavaFX due to modularity issues @@ -27,5 +28,5 @@ java { } tasks.withType().configureEach { - options.release = 24 + options.release = 25 } diff --git a/build-support/src/main/java/CitationStyleCatalogGenerator.java b/build-support/src/main/java/CitationStyleCatalogGenerator.java index cdccc34357a..04bd04a9902 100644 --- a/build-support/src/main/java/CitationStyleCatalogGenerator.java +++ b/build-support/src/main/java/CitationStyleCatalogGenerator.java @@ -1,4 +1,4 @@ -//JAVA 24 +//JAVA 25+ //RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED //DEPS org.jspecify:jspecify:1.0.0 @@ -45,7 +45,7 @@ public class CitationStyleCatalogGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(CitationStyleCatalogGenerator.class); - public static void main(String[] args) { + static void main(String[] args) { generateCitationStyleCatalog(); } diff --git a/build-support/src/main/java/JournalListMvGenerator.java b/build-support/src/main/java/JournalListMvGenerator.java index 3d95f3cb7cc..96a17c9543a 100644 --- a/build-support/src/main/java/JournalListMvGenerator.java +++ b/build-support/src/main/java/JournalListMvGenerator.java @@ -1,4 +1,4 @@ -//JAVA 24 +//JAVA 25+ //RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED //DEPS com.h2database:h2:2.4.240 @@ -48,7 +48,7 @@ public class JournalListMvGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(JournalListMvGenerator.class); - public static void main(String[] args) throws IOException { + static void main(String[] args) throws IOException { boolean verbose = (args.length == 1) && ("--verbose".equals(args[0])); Path abbreviationsDirectory = Path.of("jablib", "src", "main", "abbrv.jabref.org", "journals"); diff --git a/build-support/src/main/java/LtwaListMvGenerator.java b/build-support/src/main/java/LtwaListMvGenerator.java index ab7b6897146..9979277b68f 100644 --- a/build-support/src/main/java/LtwaListMvGenerator.java +++ b/build-support/src/main/java/LtwaListMvGenerator.java @@ -1,4 +1,4 @@ -//JAVA 24 +//JAVA 25+ //RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED //DEPS com.h2database:h2:2.4.240 @@ -46,7 +46,7 @@ public class LtwaListMvGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(LtwaListMvGenerator.class); - public static void main(String[] args) { + static void main(String[] args) { try { Path tempCsvFile = Path.of("jablib", "build", "tmp", "ltwa_20210702.csv"); if (!Files.exists(tempCsvFile)) { diff --git a/docs/code-howtos/eventbus.md b/docs/code-howtos/eventbus.md index b6a76fd9b0e..49c2dc3e1df 100644 --- a/docs/code-howtos/eventbus.md +++ b/docs/code-howtos/eventbus.md @@ -49,7 +49,7 @@ import com.google.common.eventbus.EventBus; public class Main { private static EventBus eventBus = new EventBus(); - public static void main(String[] args) { + static void main(String[] args) { Main main = new Main(); Listener listener = new Listener(); eventBus.register(listener); diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md index c83acd5434d..56a4257e143 100644 --- a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md +++ b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md @@ -33,13 +33,13 @@ Go to "File > Project Structure" or press Ctrl+Shift+ ![Open Project Structure](12-02-open-project-settings.png) {% endfigure %} -Click on "Project" on the left side. Then, select **temurin-24** as the project SDK (continue reading if this option is not available). +Click on "Project" on the left side. Then, select **temurin-25** as the project SDK (continue reading if this option is not available). {% figure caption:"Project Structure - Project SDK" %} ![Project Structure - Project SDK](12-03-project-sdk.png) {% endfigure %} -If you do not have the access to this JDK, download it by clicking on "Download JDK..." In the dialog that opens, select version 24, vendor "Eclipse Temurin (AdoptOpenJDK HotSpot)", and click "Download". +If you do not have the access to this JDK, download it by clicking on "Download JDK..." In the dialog that opens, select version 25, vendor "Eclipse Temurin (AdoptOpenJDK HotSpot)", and click "Download". {% figure caption:"Dropdown to select Download JDK" %} ![Dropdown to select Download JDK](12-04-download-jdk.png) diff --git a/jabgui/build.gradle.kts b/jabgui/build.gradle.kts index a10967291cc..8ffe922a234 100644 --- a/jabgui/build.gradle.kts +++ b/jabgui/build.gradle.kts @@ -189,7 +189,7 @@ javaModulePackaging { } targetsWithOs("macos") { options.addAll( - "--icon", "$projectDir/src/main/resources/icons/jabref.icns", + "--icon", "$projectDir/buildres/macos/JabRef.icns", "--mac-package-identifier", "JabRef", "--mac-package-name", "JabRef", "--file-associations", "$projectDir/buildres/macos/bibtexAssociations.properties", @@ -198,7 +198,7 @@ javaModulePackaging { options.addAll( "--mac-sign", "--mac-signing-key-user-name", "JabRef e.V. (6792V39SK3)", - "--mac-package-signing-prefix", "org.jabref", + "--mac-package-signing-prefix", "org.jabref.", ) } targetResources.from(layout.projectDirectory.dir("buildres/macos").asFileTree.matching { diff --git a/jabgui/buildres/macos/Info-lite.plist.template b/jabgui/buildres/macos/Info-lite.plist.template deleted file mode 100644 index 509eb841ef9..00000000000 --- a/jabgui/buildres/macos/Info-lite.plist.template +++ /dev/null @@ -1,39 +0,0 @@ - - - - - LSMinimumSystemVersion - 10.9 - CFBundleDevelopmentRegion - English - CFBundleAllowMixedLocalizations - - CFBundleExecutable - DEPLOY_LAUNCHER_NAME - CFBundleIconFile - DEPLOY_ICON_FILE - CFBundleIdentifier - DEPLOY_BUNDLE_IDENTIFIER - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - DEPLOY_BUNDLE_NAME - CFBundlePackageType - APPL - CFBundleShortVersionString - DEPLOY_BUNDLE_SHORT_VERSION - CFBundleSignature - ???? - - LSApplicationCategoryType - Unknown - CFBundleVersion - DEPLOY_BUNDLE_CFBUNDLE_VERSION - NSHumanReadableCopyright - DEPLOY_BUNDLE_COPYRIGHTDEPLOY_FILE_ASSOCIATIONS - NSHighResolutionCapable - true - NSSupportsAutomaticGraphicsSwitching - - - diff --git a/jabgui/buildres/macos/Info.plist b/jabgui/buildres/macos/Info.plist deleted file mode 100644 index 509eb841ef9..00000000000 --- a/jabgui/buildres/macos/Info.plist +++ /dev/null @@ -1,39 +0,0 @@ - - - - - LSMinimumSystemVersion - 10.9 - CFBundleDevelopmentRegion - English - CFBundleAllowMixedLocalizations - - CFBundleExecutable - DEPLOY_LAUNCHER_NAME - CFBundleIconFile - DEPLOY_ICON_FILE - CFBundleIdentifier - DEPLOY_BUNDLE_IDENTIFIER - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - DEPLOY_BUNDLE_NAME - CFBundlePackageType - APPL - CFBundleShortVersionString - DEPLOY_BUNDLE_SHORT_VERSION - CFBundleSignature - ???? - - LSApplicationCategoryType - Unknown - CFBundleVersion - DEPLOY_BUNDLE_CFBUNDLE_VERSION - NSHumanReadableCopyright - DEPLOY_BUNDLE_COPYRIGHTDEPLOY_FILE_ASSOCIATIONS - NSHighResolutionCapable - true - NSSupportsAutomaticGraphicsSwitching - - - diff --git a/jabgui/buildres/macos/Info.plist.template b/jabgui/buildres/macos/Info.plist.template deleted file mode 100644 index 509eb841ef9..00000000000 --- a/jabgui/buildres/macos/Info.plist.template +++ /dev/null @@ -1,39 +0,0 @@ - - - - - LSMinimumSystemVersion - 10.9 - CFBundleDevelopmentRegion - English - CFBundleAllowMixedLocalizations - - CFBundleExecutable - DEPLOY_LAUNCHER_NAME - CFBundleIconFile - DEPLOY_ICON_FILE - CFBundleIdentifier - DEPLOY_BUNDLE_IDENTIFIER - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - DEPLOY_BUNDLE_NAME - CFBundlePackageType - APPL - CFBundleShortVersionString - DEPLOY_BUNDLE_SHORT_VERSION - CFBundleSignature - ???? - - LSApplicationCategoryType - Unknown - CFBundleVersion - DEPLOY_BUNDLE_CFBUNDLE_VERSION - NSHumanReadableCopyright - DEPLOY_BUNDLE_COPYRIGHTDEPLOY_FILE_ASSOCIATIONS - NSHighResolutionCapable - true - NSSupportsAutomaticGraphicsSwitching - - - diff --git a/jabgui/buildres/macos/Jabref-volume.icns b/jabgui/buildres/macos/JabRef.icns similarity index 100% rename from jabgui/buildres/macos/Jabref-volume.icns rename to jabgui/buildres/macos/JabRef.icns diff --git a/jabgui/buildres/macos/README.md b/jabgui/buildres/macos/README.md index 495b5742d73..e297503263d 100644 --- a/jabgui/buildres/macos/README.md +++ b/jabgui/buildres/macos/README.md @@ -2,8 +2,9 @@ ## Modifying DMG Setup scpt -Rename `JabRef-dmg-setup.scpt script` to `JabRef-dmg-setup.applescript`. -Only modify the `JabRef-dmg-setup.applescript` in the macOS Script Editor. Afterwards copy over the file and rename it to `JabRef-dmg-setup.scpt`. +Rename `JabRef-dmg-setup.scpt` script to `JabRef-dmg-setup.applescript`. +Only modify the `JabRef-dmg-setup.applescript` in the macOS Script Editor. +Afterwards, copy over the file and rename it to `JabRef-dmg-setup.scpt`. Normally the `scpt` file is a binary compiled variant and the `.applescript` the uncompiled format but jpackage expects the sctp in uncompiled format ## Generate iconsets diff --git a/jabgui/buildres/macos/Runtime-Info.plist b/jabgui/buildres/macos/Runtime-Info.plist deleted file mode 100644 index 76fb7eeb134..00000000000 --- a/jabgui/buildres/macos/Runtime-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - libjli.dylib - CFBundleIdentifier - CF_BUNDLE_IDENTIFIER - CFBundleInfoDictionaryVersion - 7.0 - CFBundleName - CF_BUNDLE_NAME - CFBundlePackageType - BNDL - CFBundleShortVersionString - CF_BUNDLE_SHORT_VERSION_STRING - CFBundleSignature - ???? - CFBundleVersion - CF_BUNDLE_VERSION - NSSupportsAutomaticGraphicsSwitching - - - diff --git a/jabgui/buildres/macos/Runtime-Info.plist.template b/jabgui/buildres/macos/Runtime-Info.plist.template deleted file mode 100644 index 76fb7eeb134..00000000000 --- a/jabgui/buildres/macos/Runtime-Info.plist.template +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - libjli.dylib - CFBundleIdentifier - CF_BUNDLE_IDENTIFIER - CFBundleInfoDictionaryVersion - 7.0 - CFBundleName - CF_BUNDLE_NAME - CFBundlePackageType - BNDL - CFBundleShortVersionString - CF_BUNDLE_SHORT_VERSION_STRING - CFBundleSignature - ???? - CFBundleVersion - CF_BUNDLE_VERSION - NSSupportsAutomaticGraphicsSwitching - - - diff --git a/jabgui/buildres/macos/bibtexAssociations.properties b/jabgui/buildres/macos/bibtexAssociations.properties index 9db815dbbb5..a0839863798 100644 --- a/jabgui/buildres/macos/bibtexAssociations.properties +++ b/jabgui/buildres/macos/bibtexAssociations.properties @@ -1,4 +1,3 @@ extension=bib mime-type=text/x-bibtex description=BibTeX File -icon=jabref.icns diff --git a/jabgui/buildres/macos/info-lite.plist b/jabgui/buildres/macos/info-lite.plist deleted file mode 100644 index 509eb841ef9..00000000000 --- a/jabgui/buildres/macos/info-lite.plist +++ /dev/null @@ -1,39 +0,0 @@ - - - - - LSMinimumSystemVersion - 10.9 - CFBundleDevelopmentRegion - English - CFBundleAllowMixedLocalizations - - CFBundleExecutable - DEPLOY_LAUNCHER_NAME - CFBundleIconFile - DEPLOY_ICON_FILE - CFBundleIdentifier - DEPLOY_BUNDLE_IDENTIFIER - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - DEPLOY_BUNDLE_NAME - CFBundlePackageType - APPL - CFBundleShortVersionString - DEPLOY_BUNDLE_SHORT_VERSION - CFBundleSignature - ???? - - LSApplicationCategoryType - Unknown - CFBundleVersion - DEPLOY_BUNDLE_CFBUNDLE_VERSION - NSHumanReadableCopyright - DEPLOY_BUNDLE_COPYRIGHTDEPLOY_FILE_ASSOCIATIONS - NSHighResolutionCapable - true - NSSupportsAutomaticGraphicsSwitching - - - diff --git a/jabgui/buildres/macos/jabref.icns b/jabgui/buildres/macos/jabref.icns deleted file mode 100644 index e231e8d3bad..00000000000 Binary files a/jabgui/buildres/macos/jabref.icns and /dev/null differ diff --git a/jabgui/src/main/java/org/jabref/Launcher.java b/jabgui/src/main/java/org/jabref/Launcher.java index 9ddf2443465..48fd458d757 100644 --- a/jabgui/src/main/java/org/jabref/Launcher.java +++ b/jabgui/src/main/java/org/jabref/Launcher.java @@ -49,7 +49,7 @@ public enum MultipleInstanceAction { FOCUS } - public static void main(String[] args) { + static void main(String[] args) { try { initLogging(args); diff --git a/jabgui/src/main/resources/icons/jabref.icns b/jabgui/src/main/resources/icons/jabref.icns deleted file mode 100644 index e231e8d3bad..00000000000 Binary files a/jabgui/src/main/resources/icons/jabref.icns and /dev/null differ diff --git a/jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java b/jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java index c3a79927cba..ffaf6227125 100644 --- a/jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java +++ b/jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java @@ -15,7 +15,7 @@ */ public class StyleTesterMain extends Application { - public static void main(String[] args) { + static void main(String[] args) { launch(args); } diff --git a/jabkit/src/main/java/org/jabref/toolkit/JabKitLauncher.java b/jabkit/src/main/java/org/jabref/toolkit/JabKitLauncher.java index 59c4b3c9a97..bd8ef3197db 100644 --- a/jabkit/src/main/java/org/jabref/toolkit/JabKitLauncher.java +++ b/jabkit/src/main/java/org/jabref/toolkit/JabKitLauncher.java @@ -60,6 +60,8 @@ public class JabKitLauncher { /// Note: To test with gradle, use jabkit -> Tasks -> application -> run /// Use `--args="..."` as parameters to "Run" + /// + /// @implNote method needs to be public, because JabKitLauncher calls it. public static void main(String[] args) { initLogging(args); diff --git a/jablib/src/jmh/java/org/jabref/benchmarks/Benchmarks.java b/jablib/src/jmh/java/org/jabref/benchmarks/Benchmarks.java index db3c8e0f30a..208a2f6ba4b 100644 --- a/jablib/src/jmh/java/org/jabref/benchmarks/Benchmarks.java +++ b/jablib/src/jmh/java/org/jabref/benchmarks/Benchmarks.java @@ -145,7 +145,7 @@ public boolean keywordGroupContains() { return group.containsAll(database.getEntries()); } - public static void main(String[] args) throws IOException { + static void main(String[] args) throws IOException { Main.main(args); } } diff --git a/jabls-cli/src/main/java/org/jabref/languageserver/cli/ServerCli.java b/jabls-cli/src/main/java/org/jabref/languageserver/cli/ServerCli.java index b1a7515d3db..b06c33ce082 100644 --- a/jabls-cli/src/main/java/org/jabref/languageserver/cli/ServerCli.java +++ b/jabls-cli/src/main/java/org/jabref/languageserver/cli/ServerCli.java @@ -19,6 +19,7 @@ public class ServerCli implements Callable { @CommandLine.Option(names = {"-p", "--port"}, description = "the port") private Integer port = 2087; + /// @implNote method needs to be public, because JabLsLauncher calls it. public static void main(final String[] args) throws InterruptedException { SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); diff --git a/jabsrv-cli/src/main/java/org/jabref/http/server/cli/ServerCli.java b/jabsrv-cli/src/main/java/org/jabref/http/server/cli/ServerCli.java index c43fb4fa8ff..694ba787e41 100644 --- a/jabsrv-cli/src/main/java/org/jabref/http/server/cli/ServerCli.java +++ b/jabsrv-cli/src/main/java/org/jabref/http/server/cli/ServerCli.java @@ -35,6 +35,8 @@ public class ServerCli implements Callable { /** * Starts an http server serving the last files opened in JabRef
* More files can be provided as args. + * + * @implNote method needs to be public, because JabServLauncher calls it. */ public static void main(final String[] args) throws InterruptedException { SLF4JBridgeHandler.removeHandlersForRootLogger(); diff --git a/jitpack.yml b/jitpack.yml index f42f228e421..ebdbf20b9ae 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,5 +1,5 @@ jdk: - - openjdk24 + - openjdk25 install: - ./gradlew :versions:publishToMavenLocal - ./gradlew :jablib:publishToMavenLocal diff --git a/versions/build.gradle.kts b/versions/build.gradle.kts index 57224be8ad3..f6ce30aa75b 100644 --- a/versions/build.gradle.kts +++ b/versions/build.gradle.kts @@ -14,6 +14,7 @@ val arch = DefaultNativePlatform.getCurrentArchitecture() val javafx = if (os.isLinux && arch.name.equals("aarch64", ignoreCase = true)) "25" else "25.0.1" val lucene = "10.3.2" + val pdfbox = "3.0.6" dependencies {