Writing a NetBeans Plugin for Atlassian Bamboo Continuous Integration – Part 01

Since it doesn’t seem that there is an existing plugin I figured I would take a stab at trying to make one. This blog entry will be the first in what I’m sure will be many blog entries that will chronicle my beginner attempts to create a NetBeans plugin compatible in NetBeans 7+ that allows users to define, connect, and work with the Atlassian Bamboo continuous integration server, similar to the Hudson plugin. The other challenging part will be to learn the Bamboo REST APIS. I am fairly familiar with REST APIs and have reviewed the existing API calls for Bamboo. It seems it supports most if not all the functionality developers need to work effectively with Bamboo while in their NetBeans IDE.

I grabbed Mercurial and installed it locally. Then grabbed the latest clone of NetBeans. It took a while and downloaded about 2 GB of all NetBeans-related modules.

After spending a great deal of time browsing a few plugins for the functionality I wanted, especially the Hudson plugin, I created a new plugin project “bamboo”, started hacking around, and grabbing bits and pieces from other modules. There’s not much there, but so far I got the root node to show up in the Services window, see the image below.

Additionally, if you right-click and select Add New Server, a dialog window opens prompting you to enter the name, URL, username, and password of the Bamboo server.

Bamboo - Add Server Dialog

So far, this is as far as I have gotten. In future blog posts I will go into a variety of details about code sample, config issues, Bamboo REST API issues, etc. I still have a LOT of reading to do and figuring stuff out, but so far so good!

4 Comments

  1. MT says:

    Excellent. If I had something similar for Rally and Sonar I’d never have to head back to Eclipse.

    • Adam Myatt says:

      MT – can you provide a basic overview of what you would like a Rally plugin to do? I’m familiar with Rally but haven’t used it recently so i am not up to date. They do have a nice REST or SOAP based API https://community.rallydev.com/slm/doc/webservice/ that could be used by a plugin.

      If I get the Bamboo plugin done in the next few weeks and months I will consider this one as well. I was actually thinking of adding a blob asking users what plugins they would most like.

  2. MT says:

    Currently I’m using the Eclispe Mylyn Rally plugin. It provides features like:

    - Querying Rally to find Stories and Tasks for specfic user.
    - Add a new Task to a Story
    - Updating Stories and Tasks (state, estimates, to dos)

    http://www.rallydev.com/help/eclipse
    http://www.rallydev.com/help/eclipse-installation-user-guide

    • Adam Myatt says:

      Thanks for the feedback. I guess the 2 next most important questions to ask are :

      1 – What does the Eclipse plugin NOT do that you NEED it to do.

      2 – What does the Eclipse plugin NOT do that you WISH it would do.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>