Releases: AdamBien/afterburner.fx
Releases · AdamBien/afterburner.fx
The Branch Terminator
This release comes with only a single major feature:
- Pluggable Injector
However an extensible DI makes 80% of the current pull requests and branches obsolete. Now you can replace the built-in injection with whatever framework you like.
convenience
Afterburner.fx 1.6.3 introduces the following features:
- fxml files are loaded as camel and lower case
- Resources (css) can be case-insensitive
- FXML uses ExecutorService instead of Executor -> more power to FXMLView subclasses
- FXMLView inherits from StackPane (needed for custom components in Java FX Scene Builder)
- getViewAsync refactored -> view initialization is performed asynchronously
- Threads needed for asynchronous loading are
afterburner.fx-
(easier to profile in e.g. jvisualvm) - Exception reporter added for asynchronous view creation
Mobile Burner
Mobile Edition
Kill The Bug
- Community ideas incorporated
- Bug "Per view DI model/service conflict #44" fixed
Demons And Fixes
- Asynchronous loading uses demon threads.
- Per-view DI does not interfere with Model and Service injection any more.
Lazy initialization, Asynchronous loading and per-view-instance injection
- Views and presenters are instantiated lazily
- The construction of the view can be initiated synchronously or asynchronously.
- An "injection context" can be passed to a FXMLView's constructor and is going to be used for injection into presenter.
Java 8, Custom Properties and Instance Suppliers
afterburner.fx was rewritten internally to use Java 8.
- Afterburner 1.5.1 uses Java 8 and will not run on Java 7 any more.
- Properties are no more limited to files and System.getProperties. You can provide your own function to provide you own configuration.
- Injector (prior name InjectionProvider) can use an external InstanceSupplier function which is going to be used to fetch models and services. You can "inject" you own instances and bypass the conventional mechanism
- Internal cache uses weak references. This prevents "memory leaks" -> no more referenced models and services are going to be GCed automatically.