Shebang script files with Java and Docker

Shebang script files with Java and Docker

The implementation of the JEP 330: Launch Single-File Source-Code Programs available from Java 11 allows us to write a script in Java and run it as a shebang file. This is very useful for developers like me, who are not very familiar with scripting with other languages like bash or python.

In this post, I’ll show you how to write a single-file script in Java and run it from the command line. As an extra topic, you’ll learn how to put this file in a Docker image for even easier distribution of your script.

read more

Spring Boot and Kafka – Practical Example

Spring Boot and Kafka – Practical Example

This blog post shows you how to configure Spring Kafka and Spring Boot to send messages using JSON and receive them in multiple formats: JSON, plain Strings or byte arrays.

This sample application also demonstrates how to use multiple Kafka consumers within the same consumer group with the @KafkaListener annotation, so the messages are load-balanced. Each consumer implements a different deserialization approach.

Besides, at the end of this post, you will find some practical exercises in case you want to grasp some Kafka concepts like the Consumer Group and Topic partitions.

read more

Write BDD Unit Tests with BDDMockito and AssertJ

Write BDD Unit Tests with BDDMockito and AssertJ

In this post, I’ll show you how to write more readable Unit Tests using a Behavior-Driven Development style (BDD). This is a coding style that is very easy to adopt and, at the same time, brings a huge benefit: it increases your test readability (a lot). Besides, it’s a small change that may drive you to go full-BDD (i.e. writing your test scenarios before your code).

With a practical example, you’ll see how to make this change with two very popular libraries: Mockito (and its BDDMockito implementation) and AssertJ.

read more

The Six Pitfalls of Moving to Microservices

The Six Pitfalls of Moving to Microservices

Microservices are not always the solution

We, as developers, make mistakes. For example, one of the most common ones is thinking that a new technical solution or paradigm will solve all the problems existing in a given Software Project. That won’t happen, but we’ll be tempted anyway to fall into this trap. Microservices Architecture is one of the most popular traps.

read more