Fun with Maven and VirtualBox

Here's a five minute video demonstrating how some fun features of my Maven VirtualBox plugin, such as creating a box from some configuration, provisioning it and running integration tests against it.

Micro Services

I've just watch a really good InfoQ video from James Lewis at Thoughtworks. As you might expect from Thoughtworks, it has some stuff about CD, but also some great ideas an building large systems from small, somewhat independent components.

As a brain dump:

Tips for Writing Maven Plugins

I've spent a lot of time recently writing or working on plugins for Maven recently. They're simple, rewarding and fun to write. I thought I'd share a couple of tips for making life easier when writing them.

Tip 1: Separate the Task from the Mojo

Initially you'll put all the code for the mojo into the mojo's class (i.e. the class that extends AbstractMojo). Instead think about separating the task out and having minimal shim code for the mojo. This will:

Maven VBox Plugin

I'm pretty excited about a new project I've been putting a few hours into, a Maven plugin to create and provision VirtualBoxes.

Early code here:

https://github.com/alexec/maven-vbox-plugin

Maven VBox Plugin

I've written an API, Maven mojos and Ant task for creating, provisioning, starting, and stopping Oracle Virtual Boxes. It's somewhat similar to Vagrant or VeeWee and can be found on Github: https://github.com/alexec/maven-vbox-plugin

Creating a File Share Artifact Repository

When you need to have file kept on file share used in your build, but they're not suitable to deploy into your repo, you can get some of the benefits of having artifacts in a repo (e.g. sharing and versions) by creating a disk based repo on an office file share. This is handy for some edge cases, for example when you might have very large artifacts (e.g. CD images) that are too large for your artifactory, but could be stored on a file share disk.

Firstly, create somewhere shared for the repo it to live:

CD Slideshow

Great slideshow on using Jenkins to create a complete CD pipeline:

http://weblogs.java.net/blog/johnsmart/archive/2012/10/18/combining-cont...

Opinion: Terse Coding Naming Conventions

When writing code, you might experience the feeling that you should make all your names very descriptive, and long. But is this necessary?

"A name is too long when a shorter name exists that equally conveys the name's meaning and implication."

Long names take up screen real-estate, meaning that less code appears on screen, making it slower to work with and people more prone to mistakes, esp. in dynamic languages. Ultimately, long names create additional cost, and additional bugs.

1. Use common abbreviations.

JavaHelp Skeleton Maven Project

I couldn't seem to find one, and the only Maven JavaHelp plugins I could find seemed to be dead.

On GitHub.

Pages

Subscribe to Alex Collins RSS