Hi all,
ControlsFX has been a victim of its own success. This is a good thing,
but also a time and API destroying thing.
In short, and in case you missed the long-winded discussion over on Jira
[1], the ControlsFX dialogs have been accepted and promoted up to be
part of OpenJFX, starting in the next feature release (JavaFX 8u40).
However, the API that is in ControlsFX is very, very, very different
than the API that is going to be in JavaFX 8u40. For the last few months
all I have been doing is working on dialogs for JavaFX 8u40.
This leaves us in something of a conundrum - we've architected our own
demise. We have a few options, all of which result in users of the
ControlsFX dialogs API eventually being forced off it in favour of the
official API. Even though there are more features in ControlsFX dialogs,
we feel it is important that we do not duplicate functionality. For this
reason, Eugene and I have developed the following plan:
1) We have created a (currently private) repo that contains a fork of
the OpenJFX dialogs API and implementation.
2) From this repo we will be doing builds and pushing the resulting jar
to Maven Central. This build will be necessarily licensed under the
GPLv2 + classpath exception license, as it is taken from OpenJDK (even
if it originally originated from us, this is the best option legally, I
would think, especially as we want to continue to refresh the dialogs
code occasionally from upstream where the ownership swings more into
Oracle's favour).
3) ControlsFX will be adapted to have a dependency on this library for
all releases until we baseline on JavaFX 8u40. Once we baseline on 8u40
this jar will no longer be necessary and we will drop the dependency.
4) The existing dialogs API in ControlsFX will be deprecated but not
removed. This API will be removed when we baseline on JavaFX 8u40. If
you use ControlsFX dialogs, please take the time to transition away from
the old API as soon as possible. If there are things you could once do
that now you can't, please file bugs, although note that we will not be
bringing back all functionality (e.g. I'm sorry to say I won't be
bringing back lightweight dialogs unless someone hands over a big bag of
money).
5) We will use the new openjfx-dialogs.jar to build out a new set of
pre-built dialogs (e.g. font chooser, progress, command link, exception,
etc). This new API will follow the API of the OpenJFX dialogs API, so it
will be different.
So, that's the plan. I hope people can appreciate we're doing our best
to ease the transition, even though it is more work for us. I was quite
happy to make you all go cold turkey and strip out our old dialogs from
the next release, so you should all thank Eugene for caring about you :-)
[1]
javafx-jira.kenai.com/browse/RT-12643
--
-- Jonathan