Miles to go ...

Arun Gupta is a Technology Evangelist for Web Services and Web 2.0 Apps at Sun. He was the spec lead for APIs in the Java platform, committer in multiple Open Source projects, participated in standard bodies and contributed to Java EE and SE releases.
« TOTD #33: Building... | Main | Rails 2.1 on GlassFi... »

http://blogs.sun.com/arungupta/date/20080617 Tuesday June 17, 2008

Top 10 features of Hudson


Kohsuke (aka Mr. Hudson) and I attended The Server Side Java Symposium, Las Vegas in Mar 2008. In one of the evenings we spent togehter, I decided to pick Kohsuke's brain on top 10 features of Hudson. My notes were lost but luckily I found them so this article is slightly dated but most of the content is still very much valid. Newer features have been added since then anyway.

Here you go ...
  1. Ease of installation & use - Hudson is downloaded as a single WAR and run just using "java -jar hudson.war" - no additional configuration or container. It can also be started by clicking on this link. There has been emphasis on a single web app with no need to run a Continuous Integration (CI) server or client. If started using "java -jar hudson.war", then the default page looks like:



    More details about ease of installation & use are available in Hudson Docs.
  2. Fairly extensive ecosystem of plugins - You can easily write plugins to support tools/processes in your team. And after you contribute, they can be used by others as well.
    1. Update Center - for finding and installing plugins
    2. Source Code Control Plugins: Visual Source Safe, Git, Perforce and many others.
    3. Most of the plugins are small and can be created in spare time.
    4. Maven support for generating plugin templates. Read more about developing plugins in Extend Hudson.
  3. Distributed build support - This lets you use those empty sitting machines in a master/slave configuration and churn out the builds. Hudson "baby sits" the slave and performs some non-trivial work to monitor it such as clock synchronization, disk space monitoring and restarting the slave if it gets disconnected.
  4. Inter team support - Multiple teams working together with an inter-dependency require downstream projects to be automatically built. A complete chain of projects with upstream/downstream can be easily configured. Such projects also need to keep track of which version of this is used by which version of that. Hudson uses Finger printing to simplify this.
  5. Open source - Hudson is fully open-sourced under the MIT License.
  6. Maturity - 226th release was released on 6/17 and never lost data compatbility even once. The migration from older to newer version is seamless, it's basically just redeploying the WAR and there is no extra configuration required.
  7. Extensive tools outside Hudson - This is possible because of programmable control interface. Some of the examples are:
    1. Hudson Tracker & Tray Application - Small application that sits in your task tray and monitor Hudson builds
    2. Trac plugin - Creates links from Hudson projects to Trac instances.
    3. Firefox Build Monitor plugin - Displays Hudson orbs on Firefox status bar panel to indicate the build status
  8. Permalink support - Hudson provides easily readable URLs for most of the pages such as "last successful build", "promoted build". These URLs can be used linked from anywhere.
  9. Localization - Localization is available in English, Japanese, Gemany, French, Turkish, Brazilian, Portugese, Russian. You can easily create your own localization bundle by following these instructions. There is even an IntelliJ plugin to internationalize existing code.
  10. Building blocks - Hudson builds on general-purpose building blocks which can be used for other projects as well:
    1. Stapler
      1. URL binding of domain objects
      2. JSON & XML generation
      3. Much of the implementation of remoting is in Stapler - take POJO and convert into XML
      4. IntelliJ plugin for Stapler
      5. View tier is pluggable - Hudson uses Jelly.
    2. Remote Access API
    3. Localizer - small runtime library to choose the locale with IDE plugin for i18n

So you still think you need another Continuous Integration tool ?

Download Hudson now!

Technorati: hudson top10 glassfish

del.icio.us | furl | simpy | slashdot | technorati | digg
Comments:

ok!!!

Posted by 手机魔卡 on June 18, 2008 at 11:48 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
« TOTD #33: Building... | Main | Rails 2.1 on GlassFi... »

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.

--> ajax ajaxworld conf eclipse fitness gem glassfish glassfishday hyderabad india indigo interoperability javaone javaone2008 jax-ws jmaki jpa jruby mac marathon metro microsoft mysql netbeans phobos photography presos railsconf ruby rubyonrails running runninglog runsfm screencast siliconvalleymarathon sun suntechdays swdp tango theserverside totd training traveltips v3 vista wcf web2.0 webservices webtier windows wsaddressing wsit youtube
Locations of visitors to this page

calendar

« August 2008
SunMonTueWedThuFriSat
     
1
9
16
23
24
29
30
31
      
Today
www.flickr.com
This is a Flickr badge showing public photos from ArunGupta. Make your own badge here.
Add to Technorati Favorites

Last 50