Title: Do we need Java 11 migration? · Issue #5750 · processing/processing · GitHub
Open Graph Title: Do we need Java 11 migration? · Issue #5750 · processing/processing
X Title: Do we need Java 11 migration? · Issue #5750 · processing/processing
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 publi...
Open Graph 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, ...
X 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, unf...
Opengraph URL: https://github.com/processing/processing/issues/5750
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Do we need Java 11 migration?","articleBody":"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...\r\n\r\nI'm writing because it's January and, unfortunately, Java 8 is slated to stop receiving public updates this month ([article](https://www.infoworld.com/article/3269332/java/oracle-sets-date-for-end-of-java-8-updates.html), [roadmap](https://www.oracle.com/technetwork/java/java-se-support-roadmap.html), [Oracle blog post](https://blogs.oracle.com/java-platform-group/end-of-public-updates-is-a-process%2c-not-an-event)) 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...\r\n\r\n\u003cbr\u003e\r\n\r\n**Changes to the runtime structure**\r\nMoving on from Java 8, there were a number of changes in fundamental runtime structures:\r\n\r\n - [The concept of the JRE independent from the JDK has been removed](https://stackoverflow.com/questions/52584888/how-to-use-jdk-without-jre-in-java-11).\r\n - Due to that unification, [many of the system paths have changed](https://www.oracle.com/technetwork/java/javase/9-relnote-issues-3704069.html#JDK-8049367).\r\n- [Version naming convention has migrated](https://openjdk.java.net/jeps/223) which also changes some directory names.\r\n\r\n\u003cbr\u003e\r\n\r\n**Changes to the licensing**\r\nJava 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](https://blog.jetbrains.com/idea/2018/09/using-java-11-in-production-important-things-to-know/), [entertaining walkthrough](https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-11-trap.html), [Oracle blog](https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later)). I think Proceessing intended core to be LGPL so that [the resulting builds could be used in a permissive way](https://github.com/processing/processing/wiki/FAQ) 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.\r\n\r\n\u003cbr\u003e\r\n\r\n**JavaFx**\r\nAs 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](https://blogs.oracle.com/java-platform-group/the-future-of-javafx-and-other-java-client-roadmap-updates). [OpenFX is a thing now](https://openjfx.io) (it still is [official OpenJDK](https://wiki.openjdk.java.net/display/OpenJFX/Main)) but the bundling will need to change.\r\n\r\n\u003cbr\u003e\r\n\r\n**Other Misc Changes**\r\nThere's a few other bits that I think might require some attention:\r\n\r\n- Use of java.ext.dirs is deprecated [but now also causes runtime failure](https://docs.oracle.com/javase/10/migrate/toc.htm#JSMIG-GUID-2C896CA8-927C-4381-A737-B1D81D964B7B) (sigh).\r\n- We may need to update [the appbundler fork](https://bitbucket.org/infinitekind/appbundler) for to get Java 11 support (slightly modified API)\r\n- JDT may also require some updates.\r\n\r\n\u003cbr\u003e\r\n\r\n**The Upside**\r\nWell... silver linings... There's a lot of [cool new features in Java 11](http://openjdk.java.net/projects/jdk/11/) and it is LTS...","author":{"url":"https://github.com/sampottinger","@type":"Person","name":"sampottinger"},"datePublished":"2019-01-12T17:09:37.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":7},"url":"https://github.com/5750/processing/issues/5750"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:53f14ca4-683a-adbd-64b3-9377f34033b9 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E8C0:3A955:53AA68:752F7E:6970AAEE |
| html-safe-nonce | 96ef21d60144ef0b2bd86ceef10d376d4886e78c3f04a24cc4ef2d39740d4cda |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFOEMwOjNBOTU1OjUzQUE2ODo3NTJGN0U6Njk3MEFBRUUiLCJ2aXNpdG9yX2lkIjoiMjkwNDk2Mzk4MDY3NTAzMzgzOCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 067c845a5fd745380e818c1e5a37bac440999a87d43c4f90f41196e10c05d071 |
| hovercard-subject-tag | issue:398572079 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/processing/processing/5750/issue_layout |
| twitter:image | https://opengraph.githubassets.com/68a3195b00e2a82d27564deb575eb4769e35321e716bfb54199a3112511ebb22/processing/processing/issues/5750 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/68a3195b00e2a82d27564deb575eb4769e35321e716bfb54199a3112511ebb22/processing/processing/issues/5750 |
| og:image:alt | 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, ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | sampottinger |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5246860f280a060af866c1c633f74a6720ad2dd5d576534e4c5e462496b693ae |
| turbo-cache-control | no-preview |
| go-import | github.com/processing/processing git https://github.com/processing/processing.git |
| octolytics-dimension-user_id | 1617169 |
| octolytics-dimension-user_login | processing |
| octolytics-dimension-repository_id | 7807399 |
| octolytics-dimension-repository_nwo | processing/processing |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 7807399 |
| octolytics-dimension-repository_network_root_nwo | processing/processing |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7d29ab0ba8deb7bbecf06b664759d4e847623783 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width