Java Command-Line Interfaces (Part 26): CmdOption

I became aware of the twenty-sixth featured Java-based library in this series on parsing command line arguments because of a Tweet. CmdOption is described on its main GitHub page as “a simple annotation-driven command line parser toolkit for Java 5+ applications that is configured through annotations.” The project’s subtitle is, “Command line parsing has never been easier.” The annotation @CmdOption ...

Read More »

Java 9 JShell Examples: Collections Static Factory Methods

This post continues my exploration of Java9 features from my My Top Java 9 Features blog post. Here we are experimenting with Java9 Collections Static Factory Methods in the List, Set and Map interfaces. Collections Static Factory Methods Java9 makes it easier to create immutable lists using its new static Factory Methods   List and Set There are 12 Set.of ...

Read More »

Closed-loop feedback control with Scrum

Scrum is a simple framework to manage complex challenges. Software delivery is a complex challenge. Software delivery encompasses a multitude of complex activities to create and evolve complex products in complex circumstances. Scrum embraces and emphasizes the complexity of software delivery by implementing the only process type that fits its complexity, empirical process control. Complexity There are many variables that ...

Read More »

Learning to Build Clojure Webapps

A while ago I gave a talk at an internal event at Zenika Singapore. We were free to choose a topic so I chose something I thought I didn’t know enough about – what it feels like to build a web app in Clojure. This post is a transcript of the talk. I’ll go into some details on Clojure, which ...

Read More »

Working with large messages using Apache Camel and ActiveMQ Artemis improved in upcoming Camel 2.21 release

Historically the Apache ActiveMQ message broker was originally created in a time where large messages was measured in MB and not in GB as you may do today. This is not the case with the next generation broker Apache ActiveMQ Artemis (or just Artemis) which has much better support for large messages. So its about time that the Camel team finally had ...

Read More »

Enabling Two-Factor Authentication For Your Web Application

java-interview-questions-answers

It’s almost always a good idea to support two-factor authentication (2FA), especially for back-office systems. 2FA comes in many different forms, some of which include SMS, TOTP, or even hardware tokens. Enabling them requires a similar flow: The user goes to their profile page (skip this if you want to force 2fa upon registration) Clicks “Enable two-factor authentication” Enters some ...

Read More »

Raw performance numbers – Spring Boot 2 Webflux vs Spring Boot 1

java-interview-questions-answers

My set-up for the performance test is the following: The sample applications expose an endpoint(/passthrough/message) which in-turn calls a downstream service. The request message to the endpoint looks something like this: { "id": "1", "payload": "sample payload", "delay": 3000 } The downstream service would delay based on the “delay” attribute in the message (in milliseconds).   Spring Boot 1 Application ...

Read More »

Mocking in Go

I was recently asked to help out on a project with the aim of recommending how to implement some additional event handling functionality. I had a look through the source code and suggested a change to an existing interface implementation, plus a few other bits and pieces; all pretty straightforward or so I thought. Later, one of the developers said ...

Read More »