Author: Karsten Silz Jan 18, 2021 3 min read


Weekly Links: January 18, 2021

Web Links


Creating Self-Contained Executable JARs

The easiest way to distribute our Java application is as one big JAR file. Then we can simply run it like this: java -jar myapp.jar. But how do we get all libraries in there? You know, the JAR files that Maven & Gradle so happily download for us? This article tells you how! In short: If you use Spring Boot and Maven, then use the Spring Boot Maven plugin. Otherwise, use the Maven Assembly plugin for simple projects and the Maven Shade plugin for complex ones.

Experimental Garbage Collectors in the JVM

Quick: What’s the default garbage collector in most OpenJDK distributions? If your answer is “G1”, then this article’s for you. Why? Because “G1” is correct, and you obviously care about this stuff. Anyway, this article explains Shenandoah in detail. That’s a National Park in the state of Virginia, USA. But it’s also a low-pause garbage collector in Java. I guess they do collect a lot of garbage in a National Park… Oracle backported Shenandoah to JDK 11 last October. That’s when I also posted an interview with the Shenandoah team.


Have the Tables Turned on NoSQL?

A couple of years ago, NoSQL databases were all the rage. Why? Because relational databases were about to go extinct: Their JOINs don’t scale, sharding your data sucks, and JSON is much more flexible than the relational straightjacket. Fast-forward a couple of years, and relational databases are still around. They may be dinosaurs in computing, but they for sure are not extinct yet! Why? They got better at sharding and can also store JSON. And they still are much better at writing data because of ACID transactions and constraints. In NoSQL, we have to do this all ourselves in our applications. And without JOINs, we need to duplicate the referenced data in NoSQL. Bottom line: Unless you know you’ll reach ginormous scale, start with relational databases.


Welcome to the Eclipse Foundation AISBL

AISBL is not, as the name may suggest, a new Eclipse project for an “Artificial Intelligence Storage Bundle Library”. Come on — everybody says “Machine Learning” now! No, AISBL is an international “Association without lucrative purpose”. This describes Twitter to a T: Why can’t they make any money out of all this traffic?! But really now, this “AISBL” business means the Eclipse foundations is also an international non-profit organization, headquartered in Brussels, Belgium. So what’s changed? Head-honcho Mike Milinkovich says “not much” and “keep doing what you’re doing”. The FAQ has more details. Who knows, maybe Eclipse can now afford tech writers who produce half-decent release notes?!


Spring Boot 2.4.2

This is the second maintenance release of the most current Spring Boot version. It has “a number” of bug fixes and dependency upgrades. Yep, the Spring team didn’t bother counting them this time around… Here’s what we got with 2.4.1.

Spring Boot 2.3.8

This release has 35 bug fixes and dependency upgrades. 2.3.7 also had 35 changes! Spooky…

Spring Boot 2.2.13

The last “Spring Boot release of the week” has 19 bug fixes and dependency upgrades. That’s a remarkable drop from the 51 we got in 2.2.12. Like the other two release announcements, this one also doesn’t mention “documentation improvements” anymore. The only possible explanation is that the Spring Team agrees with my assessment of these “documentation improvements” for Spring Boot 2.2.11! 😌

Spring Framework 5.3.3

Short & sweet: Spring 5.3.3 has 40 fixes and improvements.

Java Tech Popularity Index Q1/2024:
Developer job ads down 32% year over year, Stack Overflow questions dropped 55% since ChatGPT. I now recommend IntelliJ Community Edition because many AI code assistants don't run in Eclipse. Job ads for Quarkus hit an all-time high.

Read my newsletter

comments powered by Disqus