Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
c8ab7ce
Update to JDK25
koppor Sep 29, 2025
9afbfe1
No more icon
koppor Sep 29, 2025
e6ec58d
Merge remote-tracking branch 'origin/main' into jdk25
koppor Sep 29, 2025
eeb401d
Try other icon file names
koppor Sep 29, 2025
5ee1ebf
Merge remote-tracking branch 'origin/main' into jdk25
koppor Sep 29, 2025
a0a1fb9
Lowercase
koppor Sep 29, 2025
d061dee
Merge remote-tracking branch 'origin/main' into jdk25
koppor Sep 29, 2025
e19eeea
Remove *** from build output
koppor Sep 29, 2025
4888971
Try to fix *.icns
koppor Sep 30, 2025
f714d92
Maybe all lowercase works
koppor Sep 30, 2025
d7f5171
Try to include more files
koppor Sep 30, 2025
e3554f2
Try JavaApp.icns
koppor Sep 30, 2025
4558156
Try two times JabRef.icns
koppor Sep 30, 2025
1234af3
Revert last changes
koppor Sep 30, 2025
8dd46b1
Relative path for jabref.icns
koppor Sep 30, 2025
84a9a01
Icon comes from other ways
koppor Sep 30, 2025
5daa552
Fix path to .icns
koppor Sep 30, 2025
49e6dae
Add missing dot
koppor Sep 30, 2025
03437b2
Disable modernizer
koppor Sep 30, 2025
7d3fd7a
No more JabKit (jbang works fine)
koppor Sep 30, 2025
20aa273
Try to fix icons
koppor Oct 1, 2025
b254b9a
Update JBang
koppor Oct 1, 2025
768bce0
Update JBang scripts
koppor Oct 1, 2025
9910ffe
Revert "Try to fix icons"
koppor Oct 1, 2025
2f73f53
Fix casing of JabRef.icns
koppor Oct 1, 2025
292adc2
Merge branch 'main' into jdk25
koppor Oct 1, 2025
e1de30a
Merge branch 'main' into jdk25
koppor Oct 1, 2025
50c9471
Merge remote-tracking branch 'upstream/main' into jdk25
Siedlerchr Oct 1, 2025
886c48b
Try to fix notarization
koppor Oct 1, 2025
9ec90b0
Fix notarization
koppor Oct 2, 2025
053582a
Remove default Rutnime-Info.plist* files
koppor Oct 2, 2025
2072159
Remove Info.plist*
koppor Oct 2, 2025
d392eaa
Remove Info-lite.plist*
koppor Oct 2, 2025
31221f5
Linebreak in README.md
koppor Oct 2, 2025
871bbca
Remove "public" for Java25 main methods
koppor Oct 2, 2025
7d68cf8
Really remove public for JDK25 main methods
koppor Oct 2, 2025
457f529
Fix "public"
koppor Oct 2, 2025
5ffaed3
Merge branch 'main' into jdk25
Siedlerchr Oct 6, 2025
2ac94d3
Let's try with JDK26 on macOS
koppor Oct 8, 2025
6311de6
Switch from mise to ASDF
koppor Oct 8, 2025
60d4d3b
Fix syntax
koppor Oct 8, 2025
53f82cd
Try Oracle action
koppor Oct 8, 2025
248c4ed
Fix path
koppor Oct 8, 2025
397edc8
Try 26-ea instead of 26
koppor Oct 8, 2025
8217617
Remove debug output
koppor Oct 8, 2025
5e3de9f
Revert "Try 26-ea instead of 26"
koppor Oct 8, 2025
e1901cf
Switch JDK
koppor Oct 8, 2025
bfd528f
Try to add jdk.jsonobject
koppor Oct 8, 2025
1b97662
Add JavaFX JMODs
koppor Oct 9, 2025
97548e0
Update runners for notarization
koppor Oct 9, 2025
e6e1fb4
Merge remote-tracking branch 'origin/main' into jdk25
koppor Oct 9, 2025
5a153b5
Fix labels
koppor Oct 9, 2025
c9e20d2
Try to remove empty jdk.jsobject dependency
koppor Oct 9, 2025
010a2fe
Merge remote-tracking branch 'origin/main' into just-jdk25
koppor Oct 9, 2025
5aa18fa
Try other syntax
koppor Oct 9, 2025
4d83916
Revert "Try other syntax"
koppor Oct 9, 2025
4727d32
Remove wrong jmod adding statement
koppor Oct 9, 2025
0b79f2d
Try workaround for missing jdk.jsobject
koppor Oct 9, 2025
e4edcca
Revert "Try workaround for missing jdk.jsobject"
koppor Oct 10, 2025
3c8a712
Revert "Remove wrong jmod adding statement"
koppor Oct 10, 2025
7312c4a
Revert "Try to remove empty jdk.jsobject dependency"
koppor Oct 10, 2025
afec0a9
Try other workaround
koppor Oct 10, 2025
5bd3939
Fix automatic module
koppor Oct 10, 2025
fb31aae
Enable crash output on console
koppor Oct 10, 2025
32c68dc
Merge branch 'main' into jdk25
koppor Oct 10, 2025
e98ff24
Try to remove empty jdk.jsobject dependency
koppor Oct 9, 2025
4747554
Revert "Fix automatic module"
koppor Oct 10, 2025
0b76341
Revert "Enable crash output on console"
koppor Oct 10, 2025
997484c
Add to modulepath only
koppor Oct 10, 2025
21e2b56
Enable eaJdkBuild for all
koppor Oct 10, 2025
b886b1e
Fix Groovy vs. Kotlin
koppor Oct 10, 2025
417cc44
Fix unzip
koppor Oct 10, 2025
c82e420
Fix sed command
koppor Oct 10, 2025
bef7f3f
Try to parameterize ea build
koppor Oct 10, 2025
42fc331
Merge remote-tracking branch 'origin/main' into jdk25
koppor Oct 10, 2025
262941e
Revert "Try to parameterize ea build"
koppor Oct 10, 2025
9d281b2
Try to add eaJdk parameter (again)
koppor Oct 10, 2025
04f973c
Refine icons
koppor Oct 10, 2025
eeba5b9
Creating GITHUB_STEP_SUMMARY
koppor Oct 10, 2025
23e0c60
Fix \
koppor Oct 10, 2025
fefafd8
Extract jdk.jsobject.jmod only
koppor Oct 10, 2025
4e4c8dc
Try / on Windows
koppor Oct 10, 2025
bf5719b
Keep directory struture
koppor Oct 10, 2025
1f810ef
Merge remote-tracking branch 'origin/main' into jdk25
koppor Oct 11, 2025
8b6885a
Merge remote-tracking branch 'origin/main' into just-jdk25
koppor Oct 11, 2025
03fe025
Merge branch 'just-jdk25' into jdk25
koppor Oct 11, 2025
6675f8e
Add hint on javafx update
koppor Oct 13, 2025
a347b2f
Merge branch 'main' into just-jdk25
koppor Oct 22, 2025
634b4ac
Switch to Temurin in IntelliJ
koppor Oct 22, 2025
c13ee69
Merge branch 'just-jdk25' into jdk25
koppor Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
Expand Down
127 changes: 79 additions & 48 deletions .github/workflows/binaries.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-openrewrite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sbom-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: actions/setup-java@v5
with:
distribution: 'corretto'
java-version: '24'
java-version: 25
check-latest: true
cache: 'gradle'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests-code-fetchers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
24 changes: 13 additions & 11 deletions .github/workflows/tests-code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -92,7 +92,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
Expand Down Expand Up @@ -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@v5
Expand All @@ -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
Expand Down Expand Up @@ -257,7 +259,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
Expand Down Expand Up @@ -293,7 +295,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
Expand Down Expand Up @@ -342,7 +344,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
Expand Down Expand Up @@ -392,7 +394,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
Expand Down Expand Up @@ -441,7 +443,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
Expand Down Expand Up @@ -485,7 +487,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
Expand Down Expand Up @@ -562,7 +564,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
Expand Down Expand Up @@ -608,7 +610,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
Expand Down
2 changes: 1 addition & 1 deletion .jbang/CheckoutPR.java
Original file line number Diff line number Diff line change
Expand Up @@ -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");

Expand Down
2 changes: 1 addition & 1 deletion .jbang/CloneJabRef.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions .jbang/JabKitLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

//DESCRIPTION jabkit - mange BibTeX files using JabRef

//JAVA 24
//JAVA 25
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//SOURCES ../jabkit/src/main/java/org/jabref/cli/converter/CygWinPathConverter.java
Expand Down Expand Up @@ -41,7 +41,7 @@

/// This class is required for [jbang](https://www.jbang.dev/)
public class JabKitLauncher {
public static void main(String[] args) {
static void main(String[] args) {
org.jabref.JabKit.main(args);
}
}
4 changes: 2 additions & 2 deletions .jbang/JabLsLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

//DESCRIPTION jabls - start a bibtex languageserver

//JAVA 24
//JAVA 25
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//SOURCES ../jabls-cli/src/main/java/org/jabref/languageserver/cli/ServerCli.java
Expand Down Expand Up @@ -53,7 +53,7 @@

/// This class is required for [jbang](https://www.jbang.dev/)
public class JabLsLauncher {
public static void main(String[] args) throws Exception {
static void main(String[] args) throws Exception {
org.jabref.languageserver.cli.ServerCli.main(args);
}
}
4 changes: 2 additions & 2 deletions .jbang/JabSrvLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

//DESCRIPTION jabsrv - serve BibTeX files using JabRef

//JAVA 24
//JAVA 25
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//SOURCES ../jabsrv-cli/src/main/java/org/jabref/http/server/cli/ServerCli.java
Expand Down Expand Up @@ -91,7 +91,7 @@

/// This class is required for [jbang](https://www.jbang.dev/)
public class JabSrvLauncher {
public static void main(String[] args) throws Exception {
static void main(String[] args) throws Exception {
org.jabref.http.server.cli.ServerCli.main(args);
}
}
2 changes: 1 addition & 1 deletion .moderne/moderne.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
specs: specs.moderne.ai/v1/cli
java:
selectedJdk: '24'
selectedJdk: '25'
2 changes: 1 addition & 1 deletion .sdkmanrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
java=24.0.2-amzn
java=25-tem
#visualvm=2.1.10
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jvmDependencyConflicts.patch {
addTargetPlatformVariant("mac", OperatingSystemFamily.MACOS, MachineArchitecture.X86_64)
addTargetPlatformVariant("mac-aarch64", OperatingSystemFamily.MACOS, MachineArchitecture.ARM64)
addTargetPlatformVariant("win", OperatingSystemFamily.WINDOWS, MachineArchitecture.X86_64)
// Since JDK26 delivered as JMOD
removeDependency("org.openjfx:jdk-jsobject")
}
}
// Source: https://github.com/jjohannes/java-module-system/blob/be19f6c088dca511b6d9a7487dacf0b715dbadc1/gradle/plugins/src/main/kotlin/metadata-patch.gradle.kts#L9
Expand Down Expand Up @@ -558,8 +560,6 @@ extraJavaModuleInfo {
requiresTransitive("jdk.unsupported")
}

module("org.openjfx:jdk-jsobject", "jdk.jsobjectEmpty") {}

module("org.controlsfx:controlsfx", "org.controlsfx.controls") {
patchRealModule()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ java {
// - build.gradle -> jacoco -> toolVersion (because JaCoCo does not support newest JDK out of the box. Check versions at https://www.jacoco.org/jacoco/trunk/doc/changes.html)
// - jitpack.yml
// - .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
// - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md
// - .jbang/Jab*.java
// - .moderne/moderne.yml
// - .sdkmanrc
languageVersion = JavaLanguageVersion.of(24)
// - build-support/src/main/java/*.java
// - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md
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
Expand All @@ -24,5 +25,5 @@ java {
}

tasks.withType<JavaCompile>().configureEach {
options.release = 24
options.release = 25
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//JAVA 24
//JAVA 25+
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//DEPS com.fasterxml.jackson.core:jackson-databind:2.17.1
Expand Down Expand Up @@ -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();
}

Expand Down
4 changes: 2 additions & 2 deletions build-support/src/main/java/JournalListMvGenerator.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//JAVA 24
//JAVA 25+
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//DEPS com.h2database:h2:2.2.224
Expand Down Expand Up @@ -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");
Expand Down
4 changes: 2 additions & 2 deletions build-support/src/main/java/LtwaListMvGenerator.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//JAVA 24
//JAVA 25+
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//DEPS com.h2database:h2:2.2.224
Expand Down Expand Up @@ -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)) {
Expand Down
2 changes: 1 addition & 1 deletion docs/code-howtos/eventbus.md
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ Go to "File > Project Structure" or press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>
![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)
Expand Down
Loading
Loading