Skip to content
This repository has been archived by the owner on Sep 21, 2021. It is now read-only.

JavaFX will be removed from JDK as of Java 11 #109

Closed
mocobeta opened this issue Jul 18, 2018 · 16 comments
Closed

JavaFX will be removed from JDK as of Java 11 #109

mocobeta opened this issue Jul 18, 2018 · 16 comments

Comments

@mocobeta
Copy link
Collaborator

mocobeta commented Jul 18, 2018

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.
@MaximKulikov
Copy link

OpenJFX planning to release together with java 11, it should be possible to download it as dependency like all rest libraries.

@mocobeta
Copy link
Collaborator Author

mocobeta commented Jul 19, 2018

@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.)

@mocobeta
Copy link
Collaborator Author

Just a reminder: This issue makes it possible to include JavaFX as pom dependencies.
javafxports/openjdk-jfx#52

@ShaneCurcuru
Copy link

@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.

@mocobeta
Copy link
Collaborator Author

@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!

@DmitryKey
Copy link
Owner

@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.

@ShaneCurcuru
Copy link

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.

@DmitryKey
Copy link
Owner

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

@DmitryKey
Copy link
Owner

@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".

@mocobeta
Copy link
Collaborator Author

mocobeta commented Aug 2, 2018

@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 mocobeta closed this as completed Aug 2, 2018
@mocobeta mocobeta reopened this Aug 2, 2018
@DmitryKey
Copy link
Owner

@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.

@mocobeta
Copy link
Collaborator Author

mocobeta commented Aug 8, 2018

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.

@DmitryKey
Copy link
Owner

DmitryKey commented Aug 12, 2018

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.

@mocobeta
Copy link
Collaborator Author

mocobeta commented Sep 30, 2018

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.

@mocobeta
Copy link
Collaborator Author

mocobeta commented Oct 3, 2018

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

@mocobeta
Copy link
Collaborator Author

mocobeta commented Oct 13, 2018

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!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants