JavaFX will be removed from JDK as of Java 11
mocobeta opened this issue · 16 comments
As of Java 11, next LTS release, JavaFX is decoupled from JDK.
https://www.infoworld.com/article/3261066/java/javafx-will-be-removed-from-the-java-jdk.html
While it should still be possible to run Luke by installing JavaFX, that will be bothersome for many users.
We had better to look for Swing based alternatives or consider going back to Apache Pivot.
(Or can we bundle javafx runtime with Luke distribution?)
https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html
Some information from Oracle White Paper: "Java Client Roadmap Update "
https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf
- Oracle will continue to support JavaFX new fixes for Java SE 8 until 2022.
- Having open sourced JavaFX and related tools, Oracle is working with interested
third parties to make it easier to build and maintain JavaFX as a separately
distributable open-source module. - Oracle will continue developing Swing and AWT in Java SE 8 and Java SE 11 (18.9 LTS).
This means they will be supported by Oracle through at least 2026.
OpenJFX planning to release together with java 11, it should be possible to download it as dependency like all rest libraries.
@MaximKulikov Thanks to letting me know, I will research OpenJFX project. Seems there are concerns about licensing issues that should be cleared. OpenJFX is licensed under GPL, this is not compatible with ALv2 (but I am not an expert.)
Just a reminder: This issue makes it possible to include JavaFX as pom dependencies.
javafxports/openjdk-jfx#52
@DmitryKan asked on twitter so... I'd give some advice, but I'm not sure what the specific question is. In terms of license compatibility for your own projects, I can't help (I'm not your lawyer). 😇
If you want to someday submit your project or code to an Apache project, then you need to be ready to follow the ASF's licensing policy - start here and read the next few FAQ entries:
https://www.apache.org/legal/resolved.html#category-a
If you have more questions, ask on the publicly-archived legal-discuss@apache.org list - or, if you have worked with the Lucene project before, ask on their dev@ list for help.
https://www.apache.org/foundation/mailinglists.html#foundation-legal
Note: having a very specific question is important.
In general, relying on common build or related tools - even GPL - is fine for building an Apache project. But the intent of the ASF's own licensing policy is that all software code the ASF releases is essentially under the Apache license, or other licenses that are no more restrictive than Apache-2.0.
@ShaneCurcuru Thank you kindly for advise and pointers. I examined licensing policy page, and consulted to Lucene project committers. We would ask questions through proper channels provided by ASF. Your comments are very helpful for us!
@ShaneCurcuru thanks a lot for your quick reply! Apologies for not being specific on twitter: social media effect at play :) As a context, @mocobeta has sent a pull request to Apache Lucene and our target here is to abide by ALv2.
Great, glad to help! Licensing is tricky, because it depends on what your goals are - and which lawyers you ask for advice when it comes to details. Also, the ASF has specific goals for our own software that are separate from our license, so it's a slightly different question if you just want to use Apache-2.0, or if you want to come to the Apache Incubator.
Thanks @ShaneCurcuru
I think at this point it is important to first sort out the issue related to the fact that JavaFX will no longer be part of JDK starting Java 11. After having that sorted, we probably can consider either contributing back to Lucene (in case of pull request review success) or establishing a separate project (makes me dizzy to think how much work is required to do that!)
Great discussion has been ongoing on the jira with @mocobeta : https://issues.apache.org/jira/browse/LUCENE-2562?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel&focusedCommentId=16550243#comment-16550243
And now there is a LEGAL ticket filed by Steve Rowe: https://issues.apache.org/jira/browse/LEGAL-396
@mocobeta not directly related to this ticket, but wanted to throw an idea of electronjs: https://electronjs.org/
Especially if considering to make Luke part of for instance Solr. It will have a downside of integrating with Solr specifically too deep, but will offer a desktop application "for free".
@DmitryKey Thanks your suggestion, electron is attractive for the cross platform application (I've never used it so far.) I think it's a viable option for this project... but when it comes to making Luke as a module of Apache Lucene, the discussion would not be so trivial.
Electron essentially introduces all of web goodies and baddies into the app. I do not mean it may be banned, it's just an open question.
@mocobeta totally agree. When I met folks from Apache back in 2015, they were supportive of making Luke as a standalone project. We can keep this option open too.
Update: I've started creating another UI that is based on Swing, one by one. As I checked Swing documentation, fortunately the most of JavaFX components can be re-implemented by corresponding Swing ones. I think we can release Swing version at next Lucene update.
sounds good @mocobeta. As Oracle's roadmap says (https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf):
Oracle will continue developing Swing and AWT in Java SE 8 and Java SE 11 (18.9 LTS).
This means they will be supported by Oracle through at least 2026.
Update:
I have pushed luke-swing
branch:
https://github.com/DmitryKey/luke/tree/luke-swing
This branch is totally licensed under ALv2 and requires only JDK. (These are the most important goals for this project. 🥇 )
All features of current JavaFX version was already re-implemented on top of Swing. However, a lot works for look & feel adjastments and color schema settings are still TBD.
I will start to work for creating the 7.5.0 release, this should include the JavaFX edition and the Swing one, next week. Also, we should make sure that it works well with JDK 11 and JavaFX 11.
I have published the first release of Swing edition Luke. It works with JDK 8/9/10/11.
https://github.com/DmitryKey/luke/releases/tag/luke-swing-7.5.0
Main branch is now running Swing Luke with unit testing on Travis CI.
The backup branch for JavaFX Luke is here: https://github.com/DmitryKey/luke/tree/luke-javafx
As of the next release, 7.6.0 or 8.0.0 (it depends on Lucene project,) we will release Swing Luke only and stop maintaining JavaFX branch.
So, this issue can be closed.
Thank you all for your comments and advice!