Finally. I am happy to declare version 2.6 ready for download and use.
Version 2.6 comes with a lot of small improvements and some due follow up on what changed in the Java world.
Aside from regular software maintenance, there is one bigger change: The z2-base distribution.
If you are wondering what you might be missing, read on!
Java 9 and Java 10 Support
One of the more obvious changes is that v2.6 requires Java 9 and runs with Java 9, 10, and with Java 11 as well. Language-wise, this release is on Java 9 or Java 10 depending on the runtime used.
Java 9 introduced a new module system feature into the Java core model (see the Jigsaw Project). Unfortunately this system has even more flaws than OSGi had as far as considering its usefulness for actually application development. Lets put it this way: You will absolutely not be bothered with Java 9 modularity when using Z2 modularity.
Z2 Distribution for Download
Beyond many useful upgrades and minor improvements, some shown below, the one important “innovation” is that z2 now has a download page and a downloadable distribution. One of Z2’s defining features is to pull from local and online resources and prepare anything required for running all by itself. That philosophy was very visible in the way we promoted the use of Z2 previously: Only checkout the core and pull anything else from (our) repositories. Problematic about that approach is that it makes creating your own system a unnecessarily complicated procedure. Providing a distribution simplifies getting started on your own and gives you a clean set of assets to import. Last but not least, we provide you with a comprehensive overview over all included 3rd-party licenses:
More Desktop for the GUI
The Z2 GUI that is really just a log container with buttons for the few interactions you need with Z2 is now a little more friendly to the eye by offering font scaling by pressing Ctrl and htting “+” or “-” or turning the mouse wheel.
Link component work like symbolic file system links in that they move the visibility of a component definition to a different module and component name. The link may actually add additional information, such as dependencies, state participation and more. (documentation)
Parameterized tests and suites in z2Unit
Z2Unit, the integrated JUnit-based testing kit for seamless as-easy-as-ever in-container testing had some gaps due some omissions in JUnit’s internal APIs. Z2Unit strives to move the convenience of a local class test to a deep integrated, painless in-system testing. (blog)
Finer Control on Compile Order and Source-Jar filtering
Some optimizations have been added to provide finer control on use of extension compilers (e.g. for AspectJ) for single Java component facets (API, impl, test). Previously z2 also made source JAR files visible to the application. This was neat for development but expensive and in some cases outright problematic at runtime. (documentation)
Clean Up of Third Party Libraries and Various Upgrades
Z2 now integrates Jetty 9.4.8. and JTA 1.2 for its built-in transaction support. Samples and sample dependencies have generally be upgraded to recent versions of e.g. Spring and Hibernate. Check out the version page.