In early August I upgraded the build and deployment environments of most of my WO apps from JDK 24 to JDK 25 (release candidate). Happily, I didn't experience anything problematic or unexpected so when JDK 25 was actually released last week, I finished the job and updated the customer deployments I control as well. So; everything up and running on JDK 25, including JavaMonitor and wotaskd from wonder-slim-deployment.
This comes with the traditional warning that my setup differs from that of most WO users. Of the 12 apps upgraded, only one uses EOF and the original Project Wonder, the rest use wonder-slim and Cayenne, so YMMV depending on which WO/Wonder frameworks/features you use.
WO (NSTimeZone) references the class sun.security.action.GetPropertyAction which was removed in JDK 24, meaning a plain WO/Wonder app will fail to start on JDK 24 and later.
I added a fix for this in wonder-slim by putting in a "replacement" class. Works fine and shouldn't interfere with functionality since GetPropertyAction doesn't really do anything anymore, with Java's Security Manager now more or less removed/disabled. If you have an application you'd like to upgrade and aren't using wonder-slim, you can drop that replacement class into your project and it should run fine. That's what I did with my one remaining Project Wonder/EOF project.
There are a number of great reasons to keep your Java installation up to date — that I won't go into. Plenty of folks out there talking about Java in general. But the main reason for my own early adoption was I'd already started using Compact Object Headers as a preview feature in JDK 24. Since that was finalized and released in JDK 25, I felt it was worth the experiment.
Although I haven't done any formal benchmarking suitable for publishing, Compact Object Headers resulted in reduced memory use and well perceivable performance improvements in my apps, so I can recommend trying it out if performance is something you care about. Just add -XX:+UseCompactObjectHeaders to your application's arguments and you're good to go.
Although my apps are now built and run on JDK 25 I still target and do development on JDK 21, mostly because I can't live without DCEVM, now released as a part of the Jetbrains Runtime. Now eagerly waiting for JetBrains to release a JDK 25 runtime so I can upgrade my development environment as well.
| 🦡 vermilingua | Support -launch.* runtime arguments in launch script | Mar 28 |
| 🦡 vermilingua | Add launch. prefix for build properties with deprecation warnings for… | Mar 28 |
| 🦡 vermilingua | Standardize config key naming across build.properties and config.txt | Mar 28 |
| 🦡 vermilingua | Rename ng package to vermilingua | Mar 28 |
| 🚀 ng-objects | Update vermilingua v1.0.5 -> v1.0.6 | Mar 28 |
| 🦡 vermilingua | Support environment based properties/build-time build.properties | Mar 28 |
| 🦡 vermilingua | Up dev version to 1.1.0 | Mar 28 |
| 🦡 vermilingua | Cleanup in construction of dependency list | Mar 28 |
| 🦡 vermilingua | OCD-style error message/comment/syntax cleanup | Mar 28 |
| 🦡 vermilingua | Nicer construction of requiredBuildProperties() | Mar 28 |