Weekly Links: January 18, 2021
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.
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.
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.
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?!
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.
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! 😌
Short & sweet: Spring 5.3.3 has 40 fixes and improvements.
Java had patch releases, we can now write command-line interfaces with Java, and this book will save IntelliJ users tons of time.
Read my newsletter