Gradle Summit 2014 follow-up

Probably a bit late, but private life is more important :) You can find the slides of my talk for the Gradle Summit 2014 online at The video ist available at YouTube along with the other Gradle Summit videos. In case you’re interested in details regarding our implementation of a deployment pipeline using Gradle and Docker (2nd part of the Gradle Summit talk), please follow this blog or my employer’s IT blog.

Gradle-Docker-Plugin and Docker-Client available

In line with our deployment pipeline written in Gradle and using Docker, we currently use Groovy’s process execution methods to talk with a command line Docker client. That way we make ourselves dependent to an installed Docker client on our CI servers. Since we don’t like to provide a bunch of specific CI servers, I started to implement a HTTP client for Docker, written in Groovy. The reason not to use existing Java implementations of such a Docker client was simply timing: some months ago the now completely rewritten Java Docker API Client wasn’t so well maintained than today… and, well, I like to play with new tools and wanted to explore the Docker remote API for myself.

Keepass-Node with https support

Keepass-Node now supports ssl/https. You only need to provide your server key and certificate and browse the KeePass-Node instance via https://.... Another feature to make KeePass-Node sync with a Google Drive file has been added, too. Currently there’s only read support. Please see the updated readme for details and configuration.

Gradle Summit 2014

Great news: I’m going to speak at the Gradle Summit 2014 in Santa Clara. This will be the very first talk I’ll give in public so I’m quite excited! My talk will have two parts, with the first one about how we migrated a Maven multi-module project of 300 pom.xml files to Gradle. The second part will show you how we currently use Gradle in combination with Docker to continuously deploy a product of the EUROPACE 2 platform to production.

Facter, Docker and the public ip address

Using Docker on a Puppet managed host influences Facter when it tries to find the host ip address. Which network interface is the best? Facter collects some so called facts about the system and provides them to Puppet modules. When using a fact like :ipaddress you’ll see that Facter only uses the output of the native ifconfig command, sorts all existing interfaces by name and takes the first non local interface as result.

Docker and IPv6 on Ubuntu 13.10 (Saucy Salamander)

After making myself familiar with Docker I wanted to use it on a more recent Ubuntu 13.10 release. I still didn’t install Docker natively on my pc, but use a Vagrant box to play with fresh releases. After downloading a fresh Ubuntu 13.10 image, creating a VirtualBox image and installing the current Docker release 0.8.0, I tried to use my other little toys CouchDB and Elasticsearch in Docker containers. Sadly, I couldn’t connect to the exposed ports anymore.

ProvidedCompile and Compile Dependencies with Gradle

When using the Gradle war plugin you’re enabled to declare providedCompile dependencies to tell the compiler to include those dependencies in the compile classpath, but to not make Gradle include them in the packaged .war artifact. Your build.gradle script might look like this, e.g. for a webapp using GWT: apply plugin: 'war' dependencies { ... providedCompile '' ... } The dependency shown in the example has some own dependencies, which can be shown by using the :dependencies task.

Using Compiler Arguments with Gradle

Just in case you’re searching for a way to use multiple compiler arguments in your Gradle builds, have a look at this snippet: subprojects { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } I took the example from stackoverflow, but you can find details at the Gradle DSL for the JavaCompile class.

AngularJS 1.3 will drop IE8 support

As mentioned at the AngularJS blog, Internet Explorer 8 support will be dropped with the upcoming 1.3 release of AngularJS. Dropping support means that the AngularJS developers won’t test their releases on IE8 anymore, but they won’t actively remove any code so chances are that one might still use AngularJS 1.3.x on IE8. I hope not. Hopefully Google and others will increase pressure on other companies to upgrade their infrastructure to current Windows (or even Linux, Mac) systems with current browser technologies.

AngularJS 1.2 update hints

As you might have noticed, AngularJS has been released lately, without dedicated announcement. Our update from an AngularJS 1.2-rc2 has been quite smooth, only two hints might be noteable in addition to the official migration guide. With the current version the AngularJS team has fixed some issues regarding the isolate scope as described in the changelog for the 1.2.0 release or at the relevant GitHub issues #1924 and #2500.