JDriven Blog

Practical intro to Java LTS upgrade (11 to 17)

Posted on by  
Thomas de Groot

As of the release of Java 17 a new LTS has been available, but what is in it for me exactly and which features can I use during projects?
Most of the blogs I read only describe 1 version upgrade and also discuss a lot of features that are/were still in preview.
I decided to summarize which features are released from java 11 to 17 (one LTS to another) and in specific only those that I thought could be interesting during my everyday work as a Java developer.
So in this blog I wont be talking about the features that are in Preview or tools that came with the new JDK’s.

Helpful NullpointerExceptions

You love to hate them, NullpointerExceptions…​ But they got a little better because from now on the exception will tell which variable is the culprit. And I know, the best NullpointerException is no NullpointerException at all, but still once they occur they better tell what’s wrong.

This feature has been released since Java 14, in Java 15 they made the extra information about which file/line had caused the error as default.

Continue reading →

Clojure Goodness: Create All Parent Directories For A File

Posted on by  
Hubert Klein Ikkink

The Clojure namespace clojure.java.io contains useful functions to work with files. One of those functions is make-parents. We can pass a java.io.File instance as arguments or use the same arguments that can be passed to the file function that is also in this namespace. The function will create all parent directories for the file. The return result is true if the directories are created (they didn’t exist before) and false when the directories didn’t have to be created (already exist).

In the following example we see an example of usage of the make-parents function:

Continue reading →

Generate Swagger UI from Spring REST Docs

Posted on by  
Jorrit van der Ven

Spring REST docs and Swagger are great ways to document your API, but both have their strong and weak points. I prefer the test-driven way of documenting an API of Spring REST docs over the "Magic and Annotations" approach of Swagger, but on the other hand the output of Spring REST docs just doesn’t look as nice as the interactive UI of Swagger. Wouldn’t it be nice if we could combine both frameworks to create the most awesome API docs ever?

Continue reading →

Value of tests

Posted on by  
Tammo Sminia

Testing is an important part of writing an application. There are many decisions to make about what, how and when to test. It often helps me to think of the costs and values of (potential) tests to reason or talk about them.

This text will explain what these costs and values are and some of the guidelines I derived from this.

Continue reading →

Production ready Kafka Connect

Posted on by  
Tim te Beek

Kafka Connect is a great tool for streaming data between your Apache Kafka cluster and other data systems. Getting started with with Kafka Connect is fairly easy; there’s hunderds of connectors avalable to intregrate with data stores, cloud platfoms, other messaging systems and monitoring tools. Setting up a production grade installation is slightly more involved however, with documentation at times scattered across the web.

In this post we’ll set up a complete production grade Kafka Connect installation, highlighting some of the choices and configuration quirks along the way.

For illustrative purposes we will set up a JDBC source connector that publishes any new table rows onto a Kafka Topic, but you can substitute any other source or sink connector. All configuration is available on GitHub.

Continue reading →

PlantUML Pleasantness: Change Look-and-feel With Themes

Posted on by  
Hubert Klein Ikkink

When we convert our PlantUML diagrams we get a default look-and-feel for our diagrams that is mostly red and yellow based. We can alter the style and color of individual elements using the skinparam command. But we can also apply so-called themes to our diagram that will alter the look-and-feel of our diagram with a simple theme reference.

We can define the name of the theme in our diagram markup using the !theme directive. Or we can use the command-line option -theme when we generate a diagram from our markup. We can even combine both methods where the end result is also a combination of both themes.

Continue reading →

Single return vs Multiple returns

Posted on by  
Ties van de Ven

Recently I gave a talk that included a slide where I briefly discussed single return vs multiple returns. The purpose of this slide was only to give an example of a dogma and basically had nothing to do with the rest of the talk. Therefore it was kinda funny to see that this particular slide caused a lot of discussion afterwards, so it seems natural to write a blog about this topic.

So…​ should a function only have a single return statement or is it better to allow multiple returns?

Continue reading →

shadow-left