Nicolas Frankel is an IT consultant with 10 years experience in Java / JEE environments. He likes his job so much he writes technical articles on his blog and reviews technical books in his spare time. He also tries to find other geeks like him in universities, as a part-time lecturer. Nicolas is a DZone MVB and is not an employee of DZone and has posted 231 posts at DZone. You can read more from them at their website. View Full User Profile

Seamless Installation: Convention Over Configuration

  • submit to reddit

Today, I will not take the role of the architect that knows how to deliver applications but instead I will play the end-user part.

In a previous post, I was tasked to put a whole development infrastructure in place. A continuous integration server was indeed in order. I took a look at some, but I was really dumbfounded when I tried Hudson. Features are not what stroke me at that time (although Hudson’s features did serve me well) but only the ease of installation.

Let’s look at a traditional installation. The steps are the following:

  • Download the installer
  • Launch the installer
  • Accept the security warning (I’m on Windows, guess Nix users would probably sudo before)
  • Follow the wizard numerous steps (which probably includes accepting a license)

In turn, launching the Hudson test drive is a two-click process, the only thing needed being a local JVM:

  • Click the Java Web Start link
  • Accept the security warning

Let’s not dive into the technical details on how it is done. I’m only interested with the results: with only two mouse clicks, Hudson launches its console and you can start working. From a user point of view, that’s real value! Now, I understand that such an installation is just for example purposes; yet, this is really nice to have a product ready to run in such a few steps.

Maven invented the convention over configuration so that build managers would not have to write the same tasks over and over for each of their projects. Learning its lessons from EJB2, Sun took the same path for EJB3: developers now really have less code to write. Build managers and developers are end-users in these processes. As the product end-user, I would really like to install it from some common sense default configuration. If needed, I should be able to overload this convention (Hudson does not provide this overloading because the goal is to test the product quickly).

As an architect, I think the installation domain area is pretty uncharted. We are much focused on clean code, maintenability, design and such. Some of us even sometimes explore the interface and ergonomy of the product. All of these are fine and needed but  not enough IMHO. Think of the installation process too and of Hudson’s example so that we, as end-users, can benefit from seamless installation.


Published at DZone with permission of Nicolas Frankel, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Daniel Alexiuc replied on Tue, 2010/02/16 - 5:32pm

Depending on the requirements of your project, there are a number of great ways to ease deployment and maintenance of applications to end-users.

If you think Java Web Start makes applications easy to install for end-users, try using a Web Application:

  • Step 1: Enter URL in Browser, press enter.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.