Last week saw JAX London 2011 in the more central location of Park Plaza in Victoria. A mixture of Agile, Java and OSGi was delivered over three days, with the first including a couple of all-day tutorials. In addition, the JAX Innovation Awards were announced, which has a submissions form to nominate the most innovative Java technology, Java Company and top Java ambassador, with the winners being chosen by the community ahead of JAXConf.
The second day was introduced by Dan North's keynote on Patterns of Effective Delivery, which included:
- Spike and Stablise (write code without tests, then refine and test later)
- Ginger cake (legitimising copy/paste and abstract afterwards)
- Create urgency (learn different technologies)
- Socratic testing (tests explain code design)
- Fits in your head (keep design small enough)
Much of the discussion after the keynote was discussing the legitimising of copy and paste coding. The general consensus was that it helps to get off the ground faster but that it's investing in technical debt.
The OSGi track covered a lot of what's happening in the OSGi world. Peter Kriens kicked off the presentation by talking about μServices, a topic he has presented before. Using graphical primitives to represent services, it's possible to model various design patterns and reason about systems as a whole by considering the way that OSGi services are interconnected.
OSGi a la carte was a whistle-stop tour over open-source OSGi projects, including:
- Apache Karaf as a boot-strap system for bringing up an OSGi runtime. Presentations are available covering how it works
- Pax URL, which gives the ability to install a bundle from a number of different sources, including mvn: and wrap: protocols, which respectively allow the installation of a bundle from a Maven repository, whilst the latter allows a plan JAR to be installed as an auto-wrapped bundle.
- Pax Exam as an automated testing framework for OSGi bundles
- BndTools as a set of Eclipse tools which enable round-trip OSGi bundle development and deployment
- Eclipse Virgo and Apache Aries got a mention as well but not demo'd.
Partly, whilst there are overlaps between the projects (Apache Karaf consumes parts of Apache Aries and Pax URL, whilst Apache Tuscany also includes a set of OSGi components), this highlights the modular nature of OSGi applications and emphasises the reuse that can be achieved wtih OSGi as a runtime platform.
Richard Nicholson from Paremus demonstrated Modularity in the Cloud, with a demonstration of Paremus Service Fabric. By describing a set of resources and a set of constraints of how many OSGi services need to be instantiated on those services, the service fabric can bring up and wire together services, so that if a node dies the requests can still be processed on other nodes.
Neil Bartlett demonstrated BndTools, an agile OSGi bundle development and deployment tool set with a live OSGi runtime. Other than a brief IDE restart, the same OSGi instance was used to install and run all the bundles in the application, which also included development of a GUI application written in Vaadin.
The day concluded with the JAX London Community Night, kicked off by Stephen Colebourne on Usability. Unfortunately, this wasn't a presentation on UX but rather a series of complaints on both Maven and Git, which were based on inconsistent expectations rather than usability problems themselves. Other presentations from InterSystems (launching their freely available GlobalsDB database), BIRT 2.6 and JavaEE hacking.
The last day was introduced by Adrian Colyer, who spent some time introducing CloudFoundry as well as recording a video on the subject.
Chris Aniszczyk gave a presentation on Eclipse, Git, Mylyn and Gerrit together. A lot of the integration was similar to my Gerrit and Jenkins presentation; since then, Mylyn has gained the ability to speak to Gerrit directly as well as speaking to GitHub issues.
John Stevenson gave an excellent introduction to getting started with Clojure, a lisp implementation in Java. One of the resources he pointed to was Try Clojure, a web-based Clojure REPL with a built-in tutorial (type tutorial
and next
to step through the pages). He also pointed to Leiningen as a build system for clojure.
There were a number of other interesting presentations – like Adobe's announcement that Flex 4.5 will have iOS support, as well as a live demo on a pre-release BlackBerry PlayBook and an iPad. Martijn Verburg gave an overview of what's new in Java 7, Alex Heneveld and Aled Sage gave a presentation on Cloudsoft's Monterey Studio, and many others. Finally, the free JAXmag was mentioned for those that want to subscribe.