Collection of test bottles
Docker, Java, Spring Boot

TESTCONTAINERS 

Are you struggling finding the right strategy for your integration tests? Mocking does not cover everything and relying on all external services to be present also gives you a headache. What if there was a way to start the real service in your integration tests?…

Two men walking on ridge
Command line, Java

PICOCLI 

Do you want to bring your java applications to your command line? Picocli is a framework that enables you to create your own rich CLI ,backed by java! In this post we will get started with an example CLI called java-genie. To read more on…

Open journal with written text
Java, Micronaut, Ops

ZALANDO LOGBOOK 

Do you need http request and response logging without it polluting your business code? Use Zalando Logbook and add this aspect to your stack! In this post we will add logging for all http requests and play around with the configurations. For more in depth…

Collection of tiny houses
Docker, Java

UPX IMAGE 

Do you want smaller images with a faster startup time? Use UPX to compress your executable inside your image. Use a UPX image! For more information on the internals of UPX take a look at their website here. Or at the source code of UPX…

Sailboat on a blue sea
Docker, Java

JIB MAVEN PLUGIN 

Do you need a simple way to build docker images for your java with maven applications? Use the jib maven plugin and let maven do the heavy lifting! For a complete overview of all capabilities of the jib maven plugin take a look at the…

Archaic head on wall
CI/CD, Java

MAVEN ARCHETYPE 

Are you copying an old maven project every time you need a new one? Maybe a maven archetype is the solution for you! In this post we will create a maven archetype to quickly create a micronaut graphQL API. A different guide on how to…

Collection of test tubes
gRPC, Java, Micronaut

MICRONAUT TESTING 

Having trouble testing your micronaut application? Or just interested on my take on micronaut testing? Just read along! In this post we will make some integration and unit tests for a micronaut gRPC API. For a wider view of the micronaut testing capabilities look at…

Plugin of wire in amp
CI/CD, Java

CREATE A MAVEN PLUGIN 

Do you want to incorporate a task in your maven build? Discover how to create a maven plugin! In this post we will create a plugin that will alter a protobuf specifications file. A more in depth guide is made by apache and can be…

Lanscape of plain and sky
gRPC, Java, Micronaut

GRPC WITH MICRONAUT 

Are you sick of writing client libraries for all your clients? Do you have trouble sticking to a contract-first approache with REST? Use gRPC! Specifically gRPC with micronaut! To get familiar with micronaut check out this previous post on micronaut. The complete code for this…

Filing cabinet
Java, Spring Boot

OAS3 AND SPRING BOOT 

Looking for an easy way to document your Spring Boot API following the OAS3 specification? Use a Springdoc documentation endpoint, for OAS3 and Spring Boot! In this post we set up Springdoc and add documentation to an example endpoint. The code for the Springdoc project…

Wall of sowing machines
Java, Spring Boot

SPRING AUTOCONFIGURE 

Ever wondered how defining a property in Spring applications can automatically configure functionality? We are going to create this ourselves with Spring autoconfigure. We are going to setup a controller with endpoint with only a dependency and a property. For a more in depth discussion…

Island in blue lake
Java, Kotlin

JAVA TO KOTLIN 

For Android developers there is a shift going on from Java to Kotlin. Here we are going to look at some Kotlin features that caught my eye. My overall impression is that it’s Java but more concise and more safe. Let’s have a look. For…

Old house in jackson
Java, Spring Boot

JACKSON ANNOTATIONS 

Jackson is a helpful tool when building REST API’s. In this post I will explain what Jackson annotations I use all the time. There are of course many more Jackson annotations for all situations (example tutorials here). Here we focus on the things you want…