With this plugin, you can monitor your Hudson server from the comfort of you desktop tray, and even run programs when things change (or not).
Now released through Hudson's update center. Old download link for version 0.7.2: http://www.smarterthings.co.uk/hudson/hudsontrayapp.hpi
This plugin provides the Hudson User a tool that runs on their desktop, that monitors the status of the Hudson Server (multiple servers supported), and provides a simple tray icon on the Notification Panel/System Tray, showing them the worst case colour of the Hudson Jobs they are monitoring.
Every time the colour changes, or a build changes, a popup will appear (user configurable to be disabled), informing the user of the change of colour, or if the colour has remained the same, which jobs may have joined or left the colour status.
The Tray icon can also show the worst weather across the worst jobs (showing this information is disabled by default, but can be enabled). This helps to provide further feedback about the state of the jobs being monitored.
When the user right mouse buttons on their tray, they will get a list of all the jobs that share the worst colour, and a health icon (if the Hudson server > 1.172) of each Job. The user can simply click on one of the jobs and that jobs Hudson page will be launched on the users default browser.:
Finally, the user can specify a system command to be executed every time the application updates the statuses, and can run specific files for almost any change in overall state. For example, you could execute a command to change the colour of an Orb when the build status worsens.
- Install the hudsontrayapp.hpi and restart Hudson
- Click the Launch Tray App link down the left hand side of the root hudson menu:
- Sit back and watch the System Tray, and it will auto update every 5 minutes
The same as for the simple version except you have control over what the Tray Application actually does.
- Right Mouse button on the Tray icon, and selection "Show Application", or double click on the tray icon.
- Select the Configuration Tab
Now you can configure the server(s) that the application monitors. Note that when you exit the application, the application saves the settings to reload on next run.
You can select the existing server, and change it's internal name, along with the URL. Once you've changed what you like, you have to click Apply Changes.
You can add or remove servers. To remove a server, click it in the list, then click remove. To add one, click add, then set the Name and URL of the server.
You can set the frequency the Tray application will download the updates from the server. Once you have changed the field, click Apply Changes.
On this page, you can set an action to be performed for every type of Overall status change. Clicking the ... button opens up a file open dialog, to help you find an executable to run. The command you enter in these text boxes will be run directly as if they were run from a command line, and supports parameters. In order for the settings you make here to be applied and remembered, you have to click Server down the left hand side.
Every setting you make here will be applied immediately.
The first setting "Show Health Icons on System Tray" allows you to enable or disable the display of the overall worst health of the worst jobs, on the Tray Icon. Users have commented that this makes it appeared cluttered, thus this is a configurable item, and defaulted to off.
The second setting "Show Animation when Building" allows you to disable the glowing colour balls when the application determines that the worst case is that jobs are building. Users from the linux community have commented that this causes the icon to flicker, and becomes more distracting. Thus this is a configurable item. The default however is on, as the majority of users use Windows, which doesn't flicker the tray icon.
The third setting allows the user to disable popup notifications when jobs improve/degrade or remain the same. This enables the tool to remain simply a dumb feedback device, that doesn't "bug" the user when states change. This would typically be for an environment where the build regularly changes state, and people don't need to be notified of the changes as they'd happen that frequently.
Getting Version information
Click the about tab
Bugs & Feature Requests
Bugs, Features and Enhancements in the Issue Tracker
Note that the in order to install the plugin, you require a minimum version of Hudson of 1.172. Using the client application, you can connect to other versions of Hudson. The end user machines must have a JNLP aware application installed. Typically this is Java Web Start installed by Java as a default. Further the end machines need a minimum of Java 1.4.2 installed, or where this isn't, the user account must have permission to install this version of Java from the web.
Jan 10 2010
| Updated code for more recent Hudson and other cleanup/refactoring.
First release through Hudson's update center.
Apr 1 2008
| More fixes for Java 6 users. Right mouse button worked when the window was either focussed, or closed, but not whilst it was open but another app had the focus, or if the window was iconified. This web-page offers a work around: http://weblogs.java.net/blog/alexfromsun/archive/2008/02/jtrayicon_updat.html that seems to do the trick at least on WindowsXP environment. One potential problem may come for Linux users, according to that web page. If you do come into trouble, try downloading the latest Java 6 beta from http://download.java.net/jdk6/ and see if that fixes it for you.
In conjunction with the above fix, I've also set the default iconify action to close the main window. So if you minimize the window, it will effectively disappear back into the system tray.
|| Fix for Java 6 users. Right mouse button on the tray icon flaky at the best of times? Java 6 code is a bit stupid when you try to dispatch a JPopupMenu instead of a PopupMenu, and this causes exceptions to be thrown, preventing the popup menu working properly. This fix courtesy of http://weblogs.java.net/blog/ixmal/archive/2006/05/using_jpopupmen.html solves this problem.
If you are using Java 6, you SHOULD download this version over any previous version.
|| All servers now show in the Latest Results tab. Finally, I've tidied up a lot of GUI code, that meant I could support displaying multiple tables and description fields on the latest results tab. This was the biggest bug to me that prevented me from getting close to a magical 1.0 release
Health icons in the Results table have a tooltip that displays the percentage health
Modified almost all Exception.printStackTrace methods to popup a message if an error occurs. This should help to identify any problems that may arise.
|| Health icons now displayed in the Results Table
Results table now correctly resizes when changing job sizes (i.e. changing servers)
Results table now sortable. Click on the table heading to force an ascending then descending then ascending then (etc...) on subsequent mouse clicks.
Slightly improved mini tray health icons.
Added an about page that contains the version number, and license information.
URL's in the status page are now clickable. Double click on them and they'll launch the URL in your favourite browser. Be warned that Java launching the browser can be slow, and sometimes it takes many seconds for the operating system and browser to catch up. If you double clicked on a URL, it will open up. If you repeatedly double click the URL's, be ready for a flurry of browsers or tabs with the jobs pages opening up!
|| A specific Linux / Java 6 compatibility error was raised regarding the use of Linux / Java 6 AND JDIC. As such, the code has been modified to only download and use JDIC when using Java 1.4 or Java 5. This should reduce the end user download footprint, and recover support across Linux. When using Java 6, the application uses the Official java.awt.TrayIcon implementation, which has been shown to be more stable.
|| The Tray App was not working under linux. The cause is that JDIC 0.9.4 does not working with Linux x86 (it's supposed to). Have rolled back to JDIC 0.9.2. This means Linux works as expected.
|| Big change to this version, is that it now supports Java 1.4+ on the client side. This should make it even easier to roll out to your users.
With this, also comes the JDIC library, (which has bloated the plugin size to around 1.2Mb, but for typical Windows users, the download is around 450Kb.)
JDIC means that the plugin should now work in Windows 32 bit (64 bit maybe in a 32bit JVM?!), Linux x86, Sun x86 and Sun Sparc systems.
Have modified the popup menu to show health icons beside each job that shares the worst colour:
Have created a preferences item that enables the health icon on the tray icon to be hidden. This is now the default for existing and new sessions.
Have fixed a bug that caused Linux system tray to flicker horribly.
Have created a preferences item that disables the showing of an animated icon in the tray when jobs are building. It appears that the Linux support for Java Tray on KDE at least is poor, and causes flickering. If you experience flickering, then disable this animation from the Configuration panel. Animated icons are enabled by default.
Have created a preferences item that disables the tray popup showing when a build event occurs. This was requested by one of the users, who wanted to just literally have a tray icon and nothing else. Tray popups will still be shown if an exception occurs when trying to run a file for example. Tray popups are enabled by default.
|| Modified the Tray icons to better support PNG transparency.
Tray icon now reports worst health for the worst jobs. If the Hudson server doesn't support this information through the remote interface (<1.172) then this health icon won't show.
Added the list of jobs that form the worst job list to the right mouse button popup menu on the tray. Clicking these names will launch the URL in your browser
|| Modification to launcher file, correcting the jnlp launch xml.
Modified the Popup that appears when the build changes, to notify what Jobs have joined/left the worst build
|| Initial version with HPI plugin
This plugin is released under the GPLv3 license (http://www.gnu.org/licenses/gpl.html). This license is compatible with Hudson's MIT License (http://www.gnu.org/licenses/license-list.html#Expat).
This plugin uses the following code: