CompletableFuture, introduced in Java 8, provides an easy way to write asynchronous, non-blocking, multithreaded code. Since Spring 4.2 it’s now possible to write asynchronous code by returning CompletableFuture
from non-private methods annotated with @Async
.
Self Contained Projects with Gradle Wrapper
The Gradle Wrapper is a handy way of bundling a Gradle runtime with your project. That way you provide a specific version of Gradle to be used with your project and Gradle does not have to be installed separately. This is very useful for anyone who clones your repo and wants to build your project.
Continue reading “Self Contained Projects with Gradle Wrapper”Performance Testing using ab and Docker
Whenever possible I use official Docker images to run applications, services, and tools so I don’t have to install and maintain a myriad of different applications on my development machine. The Apache HTTP server benchmarking tool ab
is a handy utility you can use to quickly performance test your HTTP services. It comes bundled as part of the Apache HTTP server installation, but why bother installing it when you can just use the official Docker image.
Value Types in Java 8
This is a blog post based on the lightning talk I gave at the Kats Conf 2 conference in Dublin. The inspiration came from the book Functional Programming in Java by Pierre-Yves Saumont. Value types and how to implement them in Java is introduced early in the book and for good reason. value types are great for increasing type safety and getting the compiler to detect errors for you while you write code.
Continue reading “Value Types in Java 8”