ControlsFX for Java 9

848 views
Skip to first unread message

Anirvan Sarkar

unread,
Jan 21, 2016, 11:03:26 AM1/21/16
to ControlsFX
Hi,

I was wondering if we should create a new branch for ControlsFX which targets Java 9?
Also for now should we target it to build with Jigsaw JDK or non-Jigsaw one or should we keep separate branches for both ?

I am willing to start the porting work required (with the help of the community :-) ) if we decide to create a Java 9 branch.

Regards,
Anirvan

Dirk Lemmermann

unread,
Jan 22, 2016, 9:23:10 AM1/22/16
to ControlsFX
Does the current controlsfx release not work with the current Java 9 builds? We should only branch if it doesn't. Otherwise I think this would be too early.

Anirvan Sarkar

unread,
Jan 27, 2016, 8:51:49 AM1/27/16
to ControlsFX
Hi Dirk,

The current ControlsFX release does not work with current Java 9 builds.
Many controls fail to load due to java.lang.NoClassDefFoundError for the classes in com.sun.javafx.scene.control.skin.* and com.sun.javafx.css.convertors.* package.
They have been moved to javafx.scene.control.skin.* and javafx.css.convertors.* packages respectively as per JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization [1].

If we don't want to have separate ControlsFX jar files(separate branches) for JavaFX 8 and JavaFX 9, then other option is to use reflection to load these classes. We could first look for the classes in the public packages (for e.g. javafx.scene.control.skin.*), if it is not present then we could load it from the internal packages (com.sun.javafx.scene.control.skin.*).

So what do you think we should prefer? Separate jars for JavaFX 8 and 9 or single jar but use reflection?

[1] http://openjdk.java.net/jeps/253

Dirk Lemmermann

unread,
Jan 27, 2016, 8:55:22 AM1/27/16
to ControlsFX
Are these classes used in a lot of places? If not then I would prefer reflection because Java 9 is still a long time away and maintaining two branches would be quite an effort and a possible cause for further issues.

Dirk

Anirvan Sarkar

unread,
Jan 29, 2016, 6:06:37 AM1/29/16
to ControlsFX, Jonathan Giles
Grepping for com.sun.javafx gave the following files:

controlsfx/src/main/java/impl/org/controlsfx/behavior/RangeSliderBehavior.java
controlsfx/src/main/java/impl/org/controlsfx/behavior/RatingBehavior.java
controlsfx/src/main/java/impl/org/controlsfx/behavior/SnapshotViewBehavior.java
controlsfx/src/main/java/impl/org/controlsfx/skin/AutoCompletePopup.java
controlsfx/src/main/java/impl/org/controlsfx/skin/BreadCrumbBarSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/CheckComboBoxSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/CustomTextFieldSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/GridCellSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/GridRowSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/GridViewSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/HyperlinkLabelSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/InfoOverlaySkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/NotificationPaneSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/PropertySheetSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/RangeSliderSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/RatingSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/SegmentedButtonSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/SnapshotViewSkin.java
controlsfx/src/main/java/impl/org/controlsfx/skin/ToggleSwitchSkin.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/CellViewSkin.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/GridRowSkin.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/GridViewBehavior.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/GridViewSkin.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/GridVirtualFlow.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/HorizontalHeader.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/HorizontalHeaderColumn.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/HorizontalPicker.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/SelectedCellsMapTemp.java
controlsfx/src/main/java/impl/org/controlsfx/spreadsheet/TableViewSpanSelectionModel.java
controlsfx/src/main/java/impl/org/controlsfx/table/FilterPanel.java
controlsfx/src/main/java/impl/org/controlsfx/version/VersionChecker.java
controlsfx/src/main/java/org/controlsfx/control/BreadCrumbBar.java
controlsfx/src/main/java/org/controlsfx/control/CheckBitSetModelBase.java
controlsfx/src/main/java/org/controlsfx/control/HyperlinkLabel.java
controlsfx/src/main/java/org/controlsfx/control/PlusMinusSlider.java
controlsfx/src/main/java/org/controlsfx/control/RangeSlider.java
controlsfx/src/main/java/org/controlsfx/control/spreadsheet/GridBase.java
controlsfx/src/main/java/org/controlsfx/control/spreadsheet/SpreadsheetCellBase.java
controlsfx/src/main/java/org/controlsfx/control/spreadsheet/SpreadsheetView.java
controlsfx/src/main/java/org/controlsfx/control/table/model/TableModelTableView.java
controlsfx/src/main/java/org/controlsfx/control/table/TableViewUtils.java
controlsfx/src/main/java/org/controlsfx/control/textfield/AutoCompletionBinding.java
controlsfx/src/main/java/org/controlsfx/glyphfont/GlyphFont.java
controlsfx/src/main/java/org/controlsfx/tools/SVGLoader.java

These are 44 classes. If there are no objections then I can start to make it work for Java 9 using reflection.

CC'ing Jonathan for his final word.

Jonathan Giles

unread,
Jan 31, 2016, 2:53:56 PM1/31/16
to Anirvan Sarkar, ControlsFX
I'm OK with a ControlsFX 9 branch being started up. I would find it very informative in regards to my work on JEP 253. I am happy to release 9.x.y releases in conjunction with 8.x.y releases (although it does result in more work). In this case, all work should go into the main branch, with the 9 branch only containing the bare minimum changes to ensure that the code works under 9.
-- Jonathan

Anirvan Sarkar

unread,
Feb 1, 2016, 4:06:05 AM2/1/16
to Jonathan Giles, ControlsFX
OK. So I will create a new branch named 9.0.0 and start working on it.
--
Anirvan

Jonathan Giles

unread,
Feb 10, 2016, 4:01:53 AM2/10/16
to ControlsFX, jona...@jonathangiles.net
Once it is ready for building let me know and I will update my build server to create controlsfx 9 snapshots.

-- Jonathan

Jonathan Giles

unread,
Feb 10, 2016, 4:14:57 AM2/10/16
to ControlsFX, jona...@jonathangiles.net
Cancel that, I just updated my build server to have a JDK 9 install and am now set up to do daily builds of ControlsFX 9. It fails at present (as expected), but it will publish snapshots as soon as everything builds, so be certain to update the properties files so that the version number is accurate.

-- Jonathan

Anirvan Sarkar

unread,
Feb 23, 2016, 1:40:11 AM2/23/16
to ControlsFX, jona...@jonathangiles.net

fast...@swingempire.de

unread,
Mar 11, 2016, 8:16:15 AM3/11/16
to ControlsFX, jona...@jonathangiles.net


On Tuesday, February 23, 2016 at 7:40:11 AM UTC+1, Anirvan Sarkar wrote:
 
As you probably noticed by now, reflection alone doesn't help: many of the methods that are needed by xxSkin subclasses - particularly in the VirtualFlow/-ContainerBase realm - changed scope from protected to package-private. The other way round: the requirements of GridViewSkin/-VirtualFlow might serve as a blue-print as to which methods _must_ be moved into protected scope again.

Cheers
Jeanette

Dirk Lemmermann

unread,
Dec 1, 2016, 5:09:14 AM12/1/16
to ControlsFX
Where are we on this topic? I started work on making FlexGanttFX and CalendarFX run on Java 9 and currently the ControlsFX dependency is a showstopper. Looks like most of the work was already done, but there is no build and no snapshots. Can anyone clarify?


Am Donnerstag, 21. Januar 2016 17:03:26 UTC+1 schrieb Anirvan Sarkar:

Christopher Merrill

unread,
Jan 17, 2017, 7:11:43 PM1/17/17
to ControlsFX
In case you are not aware, JEP 238 adds support for multi-release JARs. So you can build a single JAR for ControlsFX that would be compatible with Java 8 and Java 9. You would, of course, need to compile different branches separately and combine them into the jar. I'm guessing there are no build tools yet to help with this. But thought I'd mention that the capability is there.

http://openjdk.java.net/jeps/238

The status says it is complete.

Chris

m...@jugs.org

unread,
May 8, 2017, 1:51:52 PM5/8/17
to ControlsFX
Hi,
are there any news on this issue? ControlsFX is becoming a real show-stopper for JavaFX9 porting efforts.
Michael

Jonathan Giles

unread,
May 9, 2017, 7:19:52 PM5/9/17
to control...@googlegroups.com
As far as I know there is no one putting time into ensuring JDK 9
support. I am sure it will come eventually though :-)

-- Jonathan
> --
> You received this message because you are subscribed to the Google
> Groups "ControlsFX" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to controlsfx-de...@googlegroups.com
> <mailto:controlsfx-de...@googlegroups.com>.
> To post to this group, send email to control...@googlegroups.com
> <mailto:control...@googlegroups.com>.
> Visit this group at https://groups.google.com/group/controlsfx-dev.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/controlsfx-dev/e96bb909-eb4f-4a7f-96ab-3eb087836b15%40googlegroups.com
> <https://groups.google.com/d/msgid/controlsfx-dev/e96bb909-eb4f-4a7f-96ab-3eb087836b15%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages