In the course of developing software for various companies, I have identified a need for small libraries to address commonly occurring problems in a generic manner. Below is a list of open source projects that I have started - each written for a specific problem and used in projects that I have been involved in. I open sourced this work because I hope that it will add value to other teams and increase the opportunity for customisation in other projects. Hopefully these improvements will also be fed back into the original projects either via feature requests, bug reports or pull requests.

  • Dropwizard Cassandra

    The dropwizard-cassandra project simplifies Dropwizard apps that connect to Cassandra clusters. Health checks, metrics and lifecycle management are handled automatically based on configuration. This allows you to make use of Cassandra safely and consistently across any number of Dropwizard applications.

  • Couchbase Maven Plugin

    The couchbase-maven-plugin provides support for executing administrative operations against a running instance of Couchbase Server as part of a standard Maven build. Using the Couchbase REST API, the plugin facilitates creation and deletion of buckets, particularly useful for setting up and tearing down an integration testing environment.

  • Spring Beans

    This project provides a custom XML namespace to simplify the registration of non-standard Spring beans. More specifically, it provides a clean and consistent bean definition schema to support the modern use of fluent interfaces and immutable types.

  • View Unit Testing

    This is a lightweight unit testing framework for view rendering technologies. Using the Spring Framework , this project provides an easy interface for unit testing views, ensuring they render the expected markup when given a known model. This is compatible with any view rendering technology that does not require a web container, which makes it ideal for use with Freemarker , Velocity , and other similar tools.

  • REP Tools

    This library provides a set of annotations to automatically declare the appropriate metadata for HTTP responses in Spring MVC web applications. Support for both HTML meta tags and HTTP headers are provided, as well as a means for extending the library to use custom annotation conflict resolution (although the most common cases are provided by default).