It is never enough of them: enriching Apache Avro generated classes with...
Apache Avro, along with Apache Thrift and Protocol Buffers, is often being used as a platform-neutral extensible mechanism for serializing structured data. In the context of event-driven systems, the...
View ArticleFor gourmets and practioners: pick your flavour of the reactive stack with...
When JAX-RS 2.1 specification was released back in 2017, one of its true novelties was the introduction of the reactive API extensions. The industry has acknowledged the importance of the modern...
View ArticleAll Your Tests Belong to You: Maintaining Mixed JUnit 4/JUnit 5 and...
If you are seasoned Java developer who practices test-driven development (hopefully, everyone does it), it is very likely JUnit 4 has been your one-stop-shop testing toolbox. Personally, I truly loved...
View ArticleJEP-396 and You: strong encapsulation of the JDK internals is the default
Since the inception of the Project Jigsaw, one of its goals was to encapsulate most of the JDK internal APIs in order to give the contributors a freedom to move Java forward at faster pace. JEP-260,...
View ArticleChasing Java's release train, from 8 to 16. Part 1: JDK 9, the last big...
A lot has been said about JDK's new 6 months release cadence cycle, and arguably, this is one of the most profound decisions being made in the recent history of the language and JVM platform in...
View ArticleChasing Java's release train, from 8 to 16. Part 2: The race to the next LTS...
In the first part we thoroughly went through the massive amount of features delivered in scope of JDK-9. Nevertheless, this release was always considered as being transitional, with little or no...
View ArticleChasing Java's release train, from 8 to 16. Part 3: The avalanche of...
Undoubtedly, JDK-11 was an import milestone but once the dust settled, another target appeared on the horizon, JDK-17, the next LTS release. But between those, the avalanche of new releases and...
View ArticleChasing Java's release train: JDK-17, the next big thing
Here we go, JDK-17, the next LTS release, just became generally available. It is an important milestone for the OpenJDK for years to come but sadly, Project Loom, the most anticipated improvement of...
View ArticleThe final days of finalizers in Java
If you are developing in Java long enough, you are surely aware of the Object::finalize() method and the concept of the finalizers in general.protected void finalize() throws Throwable... Called by the...
View ArticleSo you want to expose your JAX-RS services over HTTP/2 ...
Nonetheless HTTP/2 is about six years old (already!), and HTTP/3 is around the corner, it looks like the majority of the web applications and systems are stuck in time, operating over HTTP/1.x...
View ArticleThe show must go on: JDK-18 is here!
It feels like JDK-17 release just landed not so long ago, but there is a new one already out: please welcome JDK-18! Although it is not an LTS release, there are quite a few interesting features to...
View ArticleThe lost art of learning ... (a new programming language)
I remember the time, 20 years ago, when as a junior software developer I was driven by constant, non-stoppable desire to learn new things: new features, techniques, frameworks, architectures, styles,...
View ArticleQuick, somewhat naïve but still useful: benchmarking HTTP services from the...
Quite often, while developing HTTP services, you may find yourself looking for a quick and easy way to throw some load at them. The tools like Gatling and JMeter are the golden standard in the...
View ArticleJDK 19: revolution is looming!
The JDK-19 landed last month and may look like yet another routine release except it is not: Project Loom has finally delivered first bits! Alhough still in half-incubation / half-preview, it is a...
View ArticleProject Loom in JDK-19: the benefits but with quirks
A few months have passed already since JDK-19 release, which we talked about previously in details. More and more developers are switching to JDK-19, turning their heads towards Project Loom and...
View ArticleJDK-20: the most boring JDK release yet?
Still hot off the press, JDK-20 is out! These are terrific news, but what about exciting new features? Although a number of JEPs made it into the release, all of them are either preview or incubation...
View ArticleJava's SecurityManager in the age of virtual threads
The JDK-21 is just around the corner, bringing the virtual threads (JEP 444: Virtual Threads) to the mainstream, at least this is the plan so far. For vast majority of the projects out there the...
View ArticleJDK-21: green threads are officially back!
The JDK-21 is there, bringing virtual threads (back) into JVM as a generally available feature (if you are old enough like myself, you might have remembered that in Java 2 releases prior to 1.3 the JVM...
View ArticleWhen concurrency bites (yet again!): class initialization deadlocks
Concurrent and parallel programming on JVM platform has never been easy: yes, it is significantly safer and simpler than in most programming languages (thanks to outstanding concurrency support by Java...
View ArticleJDK-22: The JNI's grave?
Another six months passed and it is about time for a new JDK release: without further ado, please meet JDK-22. The theme of this release is obviously Foreign Function & Memory API that becomes...
View ArticleJDK release cadence and the pain of endless technical debt
The shiny new code you are writing today is the legacy one tomorrow: this is probably the only flaw that new JDK release cadence brings to the table. Well, with all the respect, this is the price to...
View ArticleApache CXF at speed of ... native!
GraalVM has been around for quite a while, steadily making big waves in OpenJDK community (looking at you, JEP 483: Ahead-of-Time Class Loading & Linking). It is wonderful piece of JVM engineering...
View ArticleJDK-23: the messenger?
It's been a little less than few weeks since JDK-23 was released and we have not covered it yet! To be fair, this is not a big deal, each new release gets more and more attention, but nonetheless! And...
View ArticleSimple is finally easy: bootstrapping JAX-RS applications in Java SE...
It has been a while since Jakarta EE 10 was released but the ecosystem is slowly (but steadily!) catching up. The Apache CXF project landed new 4.1.0 release very recently that delivers Jakarta EE 10...
View ArticleJDK-24: the death of SecurityManager
It has happened: after many years of deprecation warnings and back-and-forth conversations, the SecurityManager is effectively dead. JDK-24, released just last week, sets a final point in this long...
View Article