The Trouble With Maven Release Plugin

In a previous post I talked about what the maven-release-plugin does and explained how a typical mvn release:clean release:prepare release:perform command actually works. Last week I had to integrate a maven project I had written into a GitLab CI environment. Up until then I had been cutting releases using the....

Read more... 👓
Packaging java applications as RPMs in maven.

I recently migrated away from using debian based servers to using rhel, and with it came the requirement to repackage all my services as rpms. All my software is packaged as an RPM, this makes it easy to install on bare-metal or within a docker container, with ansible or with....

Read more... 👓
Clog - a library for integrating slf4j with Spring Shell & Colorization

Spring Shell is a fantastic piece of kit for building commandline applications. In this post I share some cool ways we can integrate slf4j and as a result, we can avoid peppering our code with System.out.println(), avoid untidy string concatenation by making use of slf4j’s {} {} string interpolation, all....

Read more... 👓
ActiveMQ vs RabbitMQ

In this article I highlight some of the differences between RabbitMQ and ActiveMQ and explain why I am hugely biased towards RabbitMQ. I’ve used ActiveMQ in production for 3 years and recently made the switch from ActiveMQ to RabbitMQ. Switching to RabbitMQ requires some investment from a code perspective since....

Read more... 👓
Deploying deb artifacts to Gemfury

In a previous post I explained how to package a service up into a deb package. Once your service is packaged up, it can be installed by provisioners like puppet. However we still need to publish the package. For open-source project there are plenty of PPA providers out there that....

Read more... 👓