Skip to content

Latest commit

 

History

History
387 lines (249 loc) · 11.1 KB

CHANGELOG.adoc

File metadata and controls

387 lines (249 loc) · 11.1 KB

Supernaut.FX Changes

A high-level view of the changes in each Supernaut.FX release.

v0.4.1-SNAPSHOT

Released: not yet

Dependency Upgrades

  • JavaFX 17.0.7

  • Micronaut 3.4.4

  • SLF4J 2.0.9

Build

  • Upgrade to Gradle 8.4

  • Upgrade to Spock 2.3-groovy-4.0

  • Run Spock with Groovy 4.0.15

  • Upgrade to JavaFX Plugin 0.0.13

  • Upgrade to Badass JLink Plugin 2.25.0

  • Upgrade BadAss Jar Plugin to 2.0.0 (used for base app.supernaut module)

  • Upgrade to Asciidoctor Gradle Plugin 4.0.0

v0.4.0

Released: 2022-01-04

Improvements

  • app.supernaut module is now JDK 8-compatible (but still has module-info.class in root)

  • All 3 modules now have module version info

Dependency Upgrades

  • Micronaut 3.2.4

Build

  • 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 in maven-publish.gradle

  • Sample Apps are now version 1.4.0 and will henceforth be 1.0 plus the Supernaut.FX version.

v0.3.1

Released: 2021-10-27

New functionality

  • New FxLauncher.find() method to find the default FxLauncher

Breaking Changes

  • 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

Dependency Upgrades

  • JavaFX 17.0.1

  • Micronaut 3.1.1

  • Jakarta Inject 2.0.1 (in sample apps)

Build

  • Gradle build file cleanup

    • Use Gradle "constraint"

    • Sample app dependencies are better modeled/documented

v0.3.0

Released: 2021-10-13

API Improvements

  • Replace FxForegroundApp with ApplicationDelegate

  • FxForegroundApp is deprecated (it extends ApplicationDelegate for compatibility)

  • FxLauncher no longer extends Launcher

  • ApplicationDelegate/FxForegroundApp no longer extends ForegroundApp

Breaking Changes

  • The deprecated SupernautView, SupernautMainView, and FxMainView abstraction interfaces have been removed. Just use Stage.

  • The deprecated OpenJfxApplicationAware has been removed. If you need your Application instance override Application#setApplication or add an Application 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.

Dependency Upgrades

  • Upgrade to Micronaut 3.1.0

v0.2.1

Released: 2021-10-07

Deprecations

  • The SupernautView, SupernautMainView, and FxMainView abstraction interfaces are deprecated (and will be removed in the next release.) Just use Stage 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 an Application add it to your constructor and it will be injected there.

Module changes

  • Remove opens app.supernaut.fx.micronaut (nothing should have been using this)

Breaking Changes

  • Remove Gradle api and module-info.java dependency on jakarta.inject(-api)

  • Apps using jakarta.inject-api may need to add it to their Maven/Gradle build configuration

Dependency Upgrades

  • Use jakarta.inject-api 2.0.1.RC1 (now with module-info.java) in sample/test apps

Build

  • 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)

v0.2.0

Released: 2021-09-16

Breaking Changes

  • The Maven artifact filenames have changed:

    • supernaut-0.1.3.jarapp.supernaut-0.2.0.jar

    • supernaut-fx-0.1.3.jarapp.supernaut.fx-0.2.0.jar

    • supernaut-fx-micronaut-0.1.3.jarapp.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".

JavaFX 17

This release of Supernaut.FX is compatible with JavaFX 17. We recommend using JavaFX 17.0.0.1 or later in your projects.

Dependency Upgrades

  • JavaFX 17.0.0.1

  • Micronaut 2.5.13

  • SLF4J 2.0.0-alpha5 (True modular version with module-info.java)

Build

  • Use JDK 17

  • Gradle 7.2

  • Badass JLink Plugin 2.24.1

  • JavaFX Gradle Plugin 0.0.10

  • Java Modularity Gradle Plugin 1.8.10

  • Gradle License Plugin 0.16.1

  • Groovy 3.0.9

  • Spock 2.0

  • Micronaut Test Spock 2.3.7

v0.1.3

Released: 2021.05.11

Dependency Upgrades

  • Micronaut 2.5.1

  • Groovy 3.0.8

Build

  • Use JDK 16

  • Gradle 7.0

  • Specify "" as default JvmVendorSpec in gradle.properties, but allow override via command-line -P option.

  • Publish Maven JARs to GitLab Packages (now that Bintray is gone)

  • Badass JLink Plugin 2.23.6

  • Spock 2.0-M5

v0.1.2

Released: 2021.03.17

Dependency Upgrades

  • JavaFX 16

  • Micronaut 2.4.0

  • javax.inject → jakarta.inject 2.0.0

GraalVM native-image Support

  • Move Graal native-image reflection configuration resources to app.supernaut/<artifact>/reflect-config.json.

  • Remove unneeded/redundant lines in reflect-config.json files.

Build

  • Gradle 6.8.2

  • Github Actions: Use JDK 16 (release version) Java Toolchain

v0.1.1

Released: 2021.02.07

New Features

  • Add support for GraalVM native image

  • Provide non-modular ServiceLoader support for MicronautFXLauncher

API Changes

  • Add Launcher.launch overload that doesn’t require a BackgroundApp Class.

Documentation

  • README.adoc updated

  • Sample Gradle application in standalone project/repository.

  • Sample Maven application in standalone project/repository.

Dependency Upgrades

  • JavaFX 15.0.1

  • Micronaut 2.3.1

Sample Apps

  • Use new Supernaut Icon for MacOS builds (Linux, Windows icon config TBD)

Build

  • Use languageVersion = JavaLanguageVersion.of in build.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

v0.1.0

Released: 2020.10.21

app.supernaut

  • Remove slf4j-api dependency

app.supernaut.fx

  • Remove dependency on JavaFX :mac JARs from POMs. (JavaFX Gradle Plugin does this unintentionally)

  • Remove dependency on javax.inject

app.supernaut.fx.micronaut

  • Upgrade to Micronaut 2.1.2

  • Remove dependency on JavaFX :mac JARs from POMs. (JavaFX Gradle Plugin does this unintentionally)

  • Change api dependency from micronaut-inject-java to micronaut-inject (reduces transitive dependencies)

Sample Apps

  • Finer-grained dependencies in apps (see 3723c13)

  • Upgrade to BadAss JLink Plugin 2.22.1

Build

  • Don’t use JavaFX Gradle Plugin

  • Use simple JavaFXPlatformPlugin (in buildSrc) to compute ext.jfxPlatform value for JavaFX dependencies.

v0.0.9

Released: 2020.10.14

Library

  • Classes are refactored into three JMS modules (3 JARs):

    • app.supernaut (was package org.consensusj.supernaut)

    • app.supernaut.fx (was package org.consensusj.supernautfx)

    • app.supernaut.fx.micronaut (was package org.consensusj.supernautfx.micronaut)

  • Use ServiceLoader for FxLauncher so most apps won’t need compile-time dependency on app.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)

Sample Apps

  • Updated to use new modules

Dependency Upgrades

  • JavaFX 15

  • Micronaut 1.3.7

Build/Test/CI

  • 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

Known Issues

  • Gradle :run task not working for sample apps, see Issue #6

v0.0.8

There will be no 0.0.8 release. (That version was "used up" while learning that Github Packages does not support SNAPSHOT releases.)

v0.0.7

Released: 2020.06.28

Supernaut FX

  • Begin separating classes into what will become three modules:

    • app.supernaut (currently org.consensusj.supernaut)

    • app.supernaut.fx (currently org.consensusj.supernautfx)

    • app.supernaut.fx.micronaut (currently org.consensusj.supernautfx.micronaut)

  • Interfaces in org.consensusj.supernaut create minimal abstraction layer above JavaFX

  • Dual-thread startup with ForegroundApp/FxForegroundApp and BackgroundApp

  • 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 generate pom.xml with transitive dependencies on javax.inject and micronaut-inject-java

  • Upgrade to Gradle 6.3

Sample Apps

  • Build with Badass JLink Plugin 2.20.0

  • Build fixes to support building with JDK 15 EA version of jpackage

Hello Sample App

  • Remove explicit dependencies now that supernautfx module is using java-library correctly

TestApp

  • Mimimal app for benchmarking with command-line options for existing at different phases of startup

All modules

  • Significantly improved Github Actions build with downloadable installers of sample apps for JDK 14 and JDK 15 EA on macOS, Windows, and Linux

v0.0.6

Released: 2020.03.04

  • Upgrade to Micronaut 1.3.2

  • Upgrade to Gradle 6.2.1

  • Disable Gradle dependency verification (for now)

Supernaut FX

  • Add BrowserService interface to abstract HostServices

  • Add JavaFXBrowserService as default implementation using HostServices

  • register Application, BrowserService, and HostServices in the app context

  • Create overrideable initApplicationContext() method

Hello Sample App

  • Display greeting in primaryStage rather than with println

  • Rename/refactor GreetingConfig to HelloAppFactory

  • Add a HyperLink to demonstrate BrowserService

  • Additional cleanup and documentation

v0.0.5

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 and verification-metadata.xml

  • Add macOS resources and signing support to macOS jpackage build

v0.0.4

Released: 2019.08.20

  • First tagged and published release