FX Experience Has Gone Read-Only

I've been maintaining FX Experience for a really long time now, and I love hearing from people who enjoy my weekly links roundup. One thing I've noticed recently is that maintaining two sites (FX Experience and JonathanGiles.net) takes more time than ideal, and splits the audience up. Therefore, FX Experience will become read-only for new blog posts, but weekly posts will continue to be published on JonathanGiles.net. If you follow @FXExperience on Twitter, I suggest you also follow @JonathanGiles. This is not the end - just a consolidation of my online presence to make my life a little easier!

In conjunction with the JavaFX 2.0.3 release there is some more documentation that has been authored recently. New documents include concurrency and SWT APIs, and there have also been updates to FXML, JavaFX events and TreeView documents.

Yesterday our SQE (Software Quality Engineering) team pushed our JavaFX functional test suite, JemmyFX to OpenJFX! They also pushed some tests for Ensemble, our samples application. JemmyFX is based on Jemmy, a visual testing framework for Java used in NetBeans for many years. JemmyFX contains extensions which make it possible to write visual tests for JavaFX. Although JemmyFX is in the openjfx repo, you can download it and use it for writing visual tests for your own JavaFX applications.

For those folks who have been looking at contributing code to JavaFX, this is great news, because it means you can accelerate adoption of your specific features by also writing the tests necessary to ensure correctness, either as JUnit tests or now as functional tests using Jemmy. All you guys working on DatePicker, I’m looking at you 😉

We’ve just recently announced the release of the “javafx-ui-common” project into OpenJFX. The name may be a little underwhelming, but the content is absolutely core to JavaFX. For most developers interested in contributing to JavaFX and in understanding how the system works, javafx-ui-common and javafx-ui-controls will be the two most important projects, both of which are now open source, and are part of the “JavaFX Public API” shown in the diagram. For developers interested in porting JavaFX to other platforms or improving the graphics performance — well we will be open sourcing Prism and Glass in the next few months :-).

Since javafx-ui-common is such a foundational part of the JavaFX platform, I thought I should give a short tour of what is in there, including the (gasp!) non-public portions. As always, non-public API (or rather, unsupported API, meaning anything that is not in the javafx namespace such as com.sun.*) cannot be depended on from release to release. But for those of you wondering how things work, there is some very important stuff buried in the unsupported packages, and for those of you wanting to actually hack on OpenJFX, this will be of even greater interest. If you haven’t yet, you might want to brush up on the overall architecture with this article.

In fact, our tour will begin in the unsupported package, with the Toolkit class, which you see as the second layer in the above diagram. This article is of interest to anybody wanting to work on JavaFX itself.

I’m very pleased to blog about the availability of more JavaFX source code being out in the wild. We’ve just put out the ‘javafx-ui-common’ project, which contains the vast majority of the JavaFX scenegraph API. You can check the code out from OpenJFX – it is in the rt repository. You can learn more about the javafx-ui-common project in a post by Richard Bair.