5. THE JAVAFX ECOSYSTEM IS COMPRISED OF
OPEN SOURCE AND COMMERCIAL
OFFERINGS.
ALL PROJECTS LISTED IN THIS
PRESENTATION ARE OPEN SOURCE.
WE’LL ONLY COVER LIBRARIES AND
FRAMEWORKS.
THE JAVAFX ECOSYSTEM IS SO BIG YOU
CAN’T COVER IT ALL IN 1 HOUR.
12. JideFX - https://github.com/jidesoft/jidefx-oss
Fields: FormattedTextField, NumericTextField, etc.
Decoration: apply decorators anywhere (like JXLayer).
Validation: custom validators; builds on top of decoration.
Common utilities for animations, tooltips, hints, search, etc.
36. Afterburner.fx - http://afterburner.adam-bien.com/
• High productivity with WYSIWYG editor inclusion
• No boilerplate code
• Highest possible non-intrusion
• No external libraries or dependencies
• Maven 3 build support
37. JacpFX - http://jacpfx.org/
• Spring support
• Maven support
• Workbench and Perspective concepts borrowed from Eclipse
• Messaging
• Light-weight event bus
• View templates
38. JRebirth - http://www.jrebirth.org/
• Simplify Thread Management
• Avoid memory leak
• Maintain a good SoC
• Be the more convenient as possible for developers
• Be lightweight (and modularizable)
• Follow OSS spirit and Java Best Practices
• Maven compatible
• MVC
40. TornadoFX - https://github.com/edvin/tornadofx
• Supports both MVC, MVP and their derivatives
• Dependency injection
• Type safe GUI builders
• Type safe CSS builders
• First class FXML support
• Async task execution
• EventBus with thread targeting
• Hot reload of Views and Stylesheets
• OSGi support
• REST client with automatic JSON conversion
• Zero config, no XML, no annotations
41. Griffon - http://griffon-framework.org/
• Application life cycle
• Configuration
• MVC artifacts
• Localized resources (and injection)
• Loosely coupled actions
• Dependency injection
• Event system
• Centralized error management
• Extension points via plugins
• Maven and Gradle support
42. Basilisk - https://github.com/basilisk-fw/basilisk
• Application life cycle
• Configuration
• MVC artifacts
• Localized resources (and injection)
• Loosely coupled actions
• Dependency injection
• Event system
• Centralized error management
• Extension points via plugins
• Gradle support
• Targets Desktop and Mobile platforms
50. FRAMEWORKS
Many of the listed frameworks offer the following capabilities
implemented in different ways:
application life cycle
localized resources (and injection)
persisted session state
loosely coupled actions
dependency injection
event system
centralized error management
extension points via plugins
51. GOALS OF JSR 377
Target Desktop and Embedded environments
Support several toolkits
Be an standalone JSR, i.e, no need to include it in the JDK
Leverage existing JSRs:
JSR 330 – Dependency Injection
JSR 382 – JavaConfig (?)
52. CORE FEATURES
application life cycle
localized resources (and injection)
configuration (*)
loosely coupled actions
dependency injection
event system
centralized error management
extension points via plugins