Upgrading from Java 17 to 21 #RoadTo21



Upgrading from Java 17 to 21 #RoadTo21

Upgrading from Java 17 to 21 #RoadTo21

Java 21 is chock-full of great features and if you’re coming all the way from 17, there’s a plethora of additions to use and get used to, but it’s all for naught if you can’t actually update. In this #RoadTo21 episode, we discuss all you need to know to update from Java 17 to 21: API changes that may require you to update your code (like the introduction of sequenced collections or bug fixes in Double/Float::toString and IdentityHashMap), ongoing deprecations (threading, security manager, finalization, and more) and changes in networking (like earlier URL validation and HTTP timeouts), encoding (UTF-8 by default and changes in date/time/unit formatting), the runtime (like removed options class loading), and tooling (like new warnings). We’ll also go beyond the nitty-gritty details and see the bigger picture of how to best prepare and execute your Java and 3rd party updates by talking about inside.java, release notes, Quality Outrach, and much more.

~~~ Chapters & Links ~~~

0:00 Intro
1:40 API changes
sequenced collections: https://inside.java/2023/05/12/quality-heads-up/
XSL transformations: https://www.oracle.com/java/technologies/javase/20-relnote-issues.html#JDK-8290347
Double/Float::toString: https://inside.java/2022/09/23/quality-heads-up/
IdentityHashMap: https://www.oracle.com/java/technologies/javase/20-relnote-issues.html#JDK-8178355
3:44 Ongoing deprecations
Inside Java Newscast: https://www.youtube.com/watch?v=3HnH6G_zcP0
Thread degradation: https://inside.java/2022/11/09/quality-heads-up/
ThreadGroup degradation: https://www.oracle.com/java/technologies/javase/19-relnote-issues.html#JDK-8284161
security manager – Inside Java Newscast #5: https://www.youtube.com/watch?v=HLrptRxncGg&t=199s
security manager – heads-up: https://inside.java/2021/12/06/quality-heads-up/
security manager – JEP 411: https://openjdk.org/jeps/411
finalization – Inside Java NEwscast #15: https://www.youtube.com/watch?v=eDgBnjOid-g
finalization – JEP 421: https://openjdk.org/jeps/421
dynamic agent loading: https://openjdk.org/jeps/451
6:52 The more you know
Inside Java: https://inside.java
Java 20 release notes: https://www.oracle.com/java/technologies/javase/20-relnote-issues.html
8:56 Networking
network interface names: https://inside.java/2023/05/08/quality-heads-up/
URL validation: https://inside.java/2022/11/22/heads-up/
stricter JNDI providers: https://www.oracle.com/java/technologies/javase/19-relnote-issues.html#JDK-8278972
HTTP client timeouts: https://www.oracle.com/java/technologies/javase/20-relnote-issues.html#JDK-8297030, https://www.oracle.com/java/technologies/javase/20-relnote-issues.html#JDK-8288717
10:25 Encoding
UTF-8 encoding – heads-up: https://inside.java/2021/12/10/quality-heads-up/
UTF-8 encoding – article: https://inside.java/2021/10/04/the-default-charset-jep400/
UTF-8 encoding – JEP 400: https://openjdk.java.net/jeps/400
CLDR v42: https://inside.java/2023/03/28/quality-heads-up/
13:52 Quality Outreach
website: https://wiki.openjdk.org/display/quality/Quality+Outreach
on inside.java: https://inside.java/headsup/
16:31 Runtime
biased locking: https://www.oracle.com/java/technologies/javase/18-relnote-issues.html#JDK-8256425
G1 changes: https://www.oracle.com/java/technologies/javase/20-relnote-issues.html#JDK-8137022, https://www.oracle.com/java/technologies/javase/18-relnote-issues.html#JDK-8017163
ClassName/: https://inside.java/2022/02/10/quality-heads-up/
parallel-capable class loaders: https://inside.java/2022/11/14/quality-heads-up/
Metal – heads-up: https://inside.java/2022/04/27/quality-heads-up/
Metal – construction: https://www.youtube.com/watch?v=gPuI_pbCYOI
19:02 JDK Tools
serialization warning: https://bugs.openjdk.org/browse/JDK-8274336
JAR index: https://bugs.openjdk.org/browse/JDK-8302819
jlink –compress: https://bugs.openjdk.org/browse/JDK-8293499
jpackage –app-image: https://github.com/openjdk/jdk19/pull/9
20:31 3rd party updates
21:48 How to update
OpenJDK Archive: https://jdk.java.net/archive/
(Don’t run outdated versions in production!)
23:39 RoadTo21 previews

~~~ ~~~

Tags: #Java21 #Update #Java #OpenJDK #InsideJava

Comments are closed.