This is a little companion project for biking2, which is live right at biking.michael-simons.eu. It uses the same API the AngularJS frontend uses, but for a JavaFX 8 / Java 8 application which was created from scratch after seeing several very interesting JavaFX sessions at JavaOne 2014.
The source code is presented as is, the application maybe has no real use for other people than me, but I think it shows some of things that are possible with and very easy to create with JavaFX.
This application is modularized for a time after JDK 8 and uses the "bach" build tool. It is included with the source code. All you have to do is bring JDK 16.
.bach/bin/bach clean build # Compile, test and packages the application
.bach/bin/bach info # prints out information about the build
.bach/bin/bach --help # prints out a help what you can do with bach
bach orchestrates tools that are available in the JDK by default.
bach lives in .bach
and it uses plain Java modules to describe the build.
This is the one applied here: .bach/bach.info/module-info.java
I put the tools I want to use in bachs include list:
javac
compiles Java sourcesjar
packages up all kinds of things (class files, resources etc.)jlink
creates a customized runtime image (this application and a VM)jpackage
creates an host specific executable from the above image as well as an installer.
junit
sticks out, as it is not a JDK tool but another module that is used via Java's ToolProvider. "What?" I hear you saying, JUnit is a library?
Yes, but it also comes with a console runner implementing ToolProvider
and thus being usable by bach.
The blog post describing that project and part of the application got a little bit out of hand, it has become kind of epic, at least it's proportions:
"Getting started with JavaFX 8: Developing a REST client application from scratch"