A high-level view of the changes in each Supernaut.FX release.
Released: not yet
Released: 2022-01-04
-
app.supernaut
module is now JDK 8-compatible (but still hasmodule-info.class
in root) -
All 3 modules now have module version info
-
Use Badass JAR Plugin to make
app.supernaut
JDK 8-compatible. -
Gradle 7.3.3
-
Micronaut Test (Spock) 3.0.5
-
GitLab CI build now uses
openjdk-17-jdk
-
Travis CI build removed
-
Remove vestigial (and problematic) references to Github Maven repos in
publishing
block inmaven-publish.gradle
-
Sample Apps are now version 1.4.0 and will henceforth be
1.0
plus the Supernaut.FX version.
Released: 2021-10-27
-
Remove deprecated
FxForegroundApp
-
Naming changes to use "app delegate" more consistently (shouldn’t affect most apps)
-
Move FXML-related classes to
.fxml
sub-packages (shouldn’t affect most apps) -
MicronautFxLauncher.initializeBeanContext()
for better extensibility if you need to subclass
Released: 2021-10-13
-
Replace
FxForegroundApp
withApplicationDelegate
-
FxForegroundApp
is deprecated (it extendsApplicationDelegate
for compatibility) -
FxLauncher
no longer extendsLauncher
-
ApplicationDelegate
/FxForegroundApp
no longer extendsForegroundApp
-
The deprecated
SupernautView
,SupernautMainView
, andFxMainView
abstraction interfaces have been removed. Just useStage
. -
The deprecated
OpenJfxApplicationAware
has been removed. If you need yourApplication
instance overrideApplication#setApplication
or add anApplication
parameter to your constructor and it will be injected there. -
Upgrade to Micronaut 3.1.0 might require some tweaks to your build files. See the samples.
Released: 2021-10-07
-
The
SupernautView
,SupernautMainView
, andFxMainView
abstraction interfaces are deprecated (and will be removed in the next release.) Just useStage
directly. This abstraction added complexity without any value. I think Supernaut.FX should focus on implementing dependency injection for JavaFX applications as simply as possible. -
OpenJfxApplicationAware
is also deprecated. If you need anApplication
add it to your constructor and it will be injected there.
-
Remove Gradle
api
andmodule-info.java
dependency onjakarta.inject(-api)
-
Apps using
jakarta.inject-api
may need to add it to their Maven/Gradle build configuration
-
Use jakarta.inject-api 2.0.1.RC1 (now with
module-info.java
) in sample/test apps
-
GitHub Actions: Use Temurin distro of JDK 17
-
Use built-in Gradle module support for compiling all 3 modules (a.s.fx.micronaut was still using the Java Modularity plugin and the three apps continue to use it)
-
Badass JLink Plugin 2.24.2
-
Byte Buddy 1.11.15 (used by Spock)
-
Objenesis 3.2 (used by Spock)
Released: 2021-09-16
-
The Maven artifact filenames have changed:
-
supernaut-0.1.3.jar
→app.supernaut-0.2.0.jar
-
supernaut-fx-0.1.3.jar
→app.supernaut.fx-0.2.0.jar
-
supernaut-fx-micronaut-0.1.3.jar
→app.supernaut.fx.micronaut-0.2.0.jar
-
-
The upgrade to SLF4J 2.0.0-alpha5 may require changes to your build configuration. (You should be able to override the transitive dependency and force the usage of the SLF4J 1.7.x if you really need to.) Since building fully-modular apps is a major goal of this framework, we decided to upgrade to SLF4J 2.0.0 even though it is technically still "alpha".
This release of Supernaut.FX is compatible with JavaFX 17. We recommend using JavaFX 17.0.0.1 or later in your projects.
-
JavaFX 17.0.0.1
-
Micronaut 2.5.13
-
SLF4J 2.0.0-alpha5 (True modular version with module-info.java)
Released: 2021.05.11
Released: 2021.03.17
-
Move Graal native-image reflection configuration resources to
app.supernaut/<artifact>/reflect-config.json
. -
Remove unneeded/redundant lines in
reflect-config.json
files.
Released: 2021.02.07
-
Add support for GraalVM native image
-
Provide non-modular ServiceLoader support for
MicronautFXLauncher
-
README.adoc updated
-
Sample Gradle application in standalone project/repository.
-
Sample Maven application in standalone project/repository.
-
Use
languageVersion = JavaLanguageVersion.of
inbuild.gradle
and use JDK 16 toolchain for build/test -
Github Actions: Build with JDK 16 (but run Gradle with JDK 15)
-
Travis CI: Update Linux distro to
focal
(Ubuntu 20.04 LTS) -
Gradle 6.8
-
Badass JLink Plugin 2.23.3
-
Spock 2.0-M4-groovy-3.0
-
Micronaut Test Spock micronaut-test-spock 2.3.2
-
Groovy 3.0.7
Released: 2020.10.21
-
Remove dependency on JavaFX :mac JARs from POMs. (JavaFX Gradle Plugin does this unintentionally)
-
Remove dependency on
javax.inject
-
Upgrade to Micronaut 2.1.2
-
Remove dependency on JavaFX :mac JARs from POMs. (JavaFX Gradle Plugin does this unintentionally)
-
Change
api
dependency frommicronaut-inject-java
tomicronaut-inject
(reduces transitive dependencies)
-
Finer-grained dependencies in apps (see 3723c13)
-
Upgrade to BadAss JLink Plugin 2.22.1
Released: 2020.10.14
-
Classes are refactored into three JMS modules (3 JARs):
-
app.supernaut
(was packageorg.consensusj.supernaut
) -
app.supernaut.fx
(was packageorg.consensusj.supernautfx
) -
app.supernaut.fx.micronaut
(was packageorg.consensusj.supernautfx.micronaut
)
-
-
Use
ServiceLoader
forFxLauncher
so most apps won’t need compile-time dependency onapp.supernaut.fx.micronaut
-
Additional class renaming and refactoring to make things more consistent
-
Launch methods take application
Class
objects (which were previously passed in Launcher constructors)
-
Gradle 6.6.1
-
Use Gradle
compileJava.options.release
feature
-
-
Gradle Enterprise Plugin 3.4
-
OpenJFX Gradle Plugin 0.0.9
-
Badass JLink Plugin 2.21.1
-
Groovy 3.0.6
-
Gradle
:run
task not working for sample apps, see Issue #6
There will be no 0.0.8 release. (That version was "used up" while learning that Github Packages does not support SNAPSHOT releases.)
Released: 2020.06.28
-
Begin separating classes into what will become three modules:
-
app.supernaut
(currentlyorg.consensusj.supernaut
) -
app.supernaut.fx
(currentlyorg.consensusj.supernautfx
) -
app.supernaut.fx.micronaut
(currentlyorg.consensusj.supernautfx.micronaut
)
-
-
Interfaces in
org.consensusj.supernaut
create minimal abstraction layer above JavaFX -
Dual-thread startup with
ForegroundApp
/FxForegroundApp
andBackgroundApp
-
AppFactory
interface to create absraction layer for DI implementations -
Upgrade to JavaFX 14.0.1
-
Upgrade to Micronaut 1.3.6
-
Use Gradle
java-library
plugin to generatepom.xml
with transitive dependencies onjavax.inject
andmicronaut-inject-java
-
Upgrade to Gradle 6.3
-
Build with Badass JLink Plugin 2.20.0
-
Build fixes to support building with JDK 15 EA version of
jpackage
-
Remove explicit dependencies now that
supernautfx
module is usingjava-library
correctly
Released: 2020.03.04
-
Upgrade to Micronaut 1.3.2
-
Upgrade to Gradle 6.2.1
-
Disable Gradle dependency verification (for now)
-
Add
BrowserService
interface to abstractHostServices
-
Add
JavaFXBrowserService
as default implementation usingHostServices
-
register
Application
,BrowserService
, andHostServices
in the app context -
Create overrideable
initApplicationContext()
method
Released: 2020.02.17
-
Many dependency upgrades
-
Micronaut 1.3.1
-
Gradle 6.2
-
Groovy 3.0.1/Spock 2.0-M2 for testing
-
-
Build is compatible with
jpackage
from JDK EA 34 and later -
Gradle build cleanup
-
Support for Gradle dependency verification via
toVerify
configuration andverification-metadata.xml
-
Add macOS resources and signing support to macOS jpackage build