-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Hey friends! Thank you for a beautiful community and tool. Sorry I couldn't quite fit this in the prescribed format but hopefully this helps...
I'm writing because it's January and, unfortunately, Java 8 is slated to stop receiving public updates this month (article, roadmap, Oracle blog post) so we're nearing a kind of EOL for Java 8. I'd love to help with the Java 11 migration if that's a thing we want to do and have started preparing a pull request. However, I wanted to first enumerate the (ahem) exciting growth opportunities presented by moving to JDK 11 to see if this resonates with the other developers here. With that, Oracle have been busy...
Changes to the runtime structure
Moving on from Java 8, there were a number of changes in fundamental runtime structures:
- The concept of the JRE independent from the JDK has been removed.
- Due to that unification, many of the system paths have changed.
- Version naming convention has migrated which also changes some directory names.
Changes to the licensing
Java 11's official Oracle JDK release changes licensing. As far I can tell, it's a bit complicated but generally seems to require a commercial license to use Java in "production" settings (helpful walkthrough, entertaining walkthrough, Oracle blog). I think Proceessing intended core to be LGPL so that the resulting builds could be used in a permissive way but, if bundling with the Oracle release, this could be complicated. I know this been a topic of discussion before (#4415) but this may require movement to OpenJDK to continue accomplishing permissive licensing goals.
JavaFx
As discussed here before (#5286), JavaFx has had a number of API modifications and is also being removed from non-commercial JDK release starting with JDK 11. OpenFX is a thing now (it still is official OpenJDK) but the bundling will need to change.
Other Misc Changes
There's a few other bits that I think might require some attention:
- Use of java.ext.dirs is deprecated but now also causes runtime failure (sigh).
- We may need to update the appbundler fork for to get Java 11 support (slightly modified API)
- JDT may also require some updates.
The Upside
Well... silver linings... There's a lot of cool new features in Java 11 and it is LTS...