Вы можете создать что-либо в любой подходящей среде, например, Flex / AS3. который может читать XML, а также генерировать необходимый вам дизайн экрана и исполняемый файл (в зависимости от вашей целевой платформы)
Вы можете просто создать простую веб-страницу и использовать данные hudson через AJAX и визуализировать ваше отображение в HTML / CSS, это ваше дело, но это довольно тривиально.
Хадсон предоставит текущий список заданий и цвет их статуса через базовый API (в данном примере XML)
http://hostname:8080/api/xml
даст что-то вроде ...
<hudson>
<assignedLabel></assignedLabel>
<mode>NORMAL</mode>
<nodeDescription>the master Hudson node</nodeDescription>
<nodeName></nodeName>
<numExecutors>5</numExecutors>
<job>
<name>JobOne</name>
<url>http://hostname:8080/job/JobOne/</url>
<color>blue</color>
</job>
<job>
<name>JobTwo</name>
<url>http://hostname:8080/job/JobTwo/</url>
<color>blue</color>
</job>
<job>
<name>JobThree</name>
<url>http://hostname:8080/job/JobThree/</url>
<color>blue</color>
</job>
<overallLoad></overallLoad>
<primaryView>
<name>All</name>
<url>http://hostname:8080/</url>
</primaryView>
<slaveAgentPort>0</slaveAgentPort>
<useCrumbs>false</useCrumbs>
<useSecurity>true</useSecurity>
<view>
<name>All</name>
<url>http://hostname:8080/</url>
</view>
<view>
<name>Dashboard</name>
<url>http://hostname:8080/view/Dashboard/</url>
</view>
</hudson>
Вас заинтересуют эти узлы ...
<job>
<name>JobOne</name>
<url>http://hostname:8080/job/JobOne/</url>
<color>blue</color>
</job>
<job>
<name>JobTwo</name>
<url>http://hostname:8080/job/JobTwo/</url>
<color>blue</color>
</job>
<job>
<name>JobThree</name>
<url>http://hostname:8080/job/JobThree/</url>
<color>blue</color>
</job>
Что было бы легко выбрать и получить требуемый цвет (статус сборки красный или синий) и название задания. Если вам нужна дополнительная информация, я был бы рад собрать вместе что-то простое.
Обновление: очень простой пример Flex.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
xmlns="*" creationComplete="start()">
<!-- The HTTPService request -->
<mx:HTTPService id="jobsRequest" url="http://localhost:8080/api/xml" useProxy="false" method="POST">
<mx:request xmlns="">
</mx:request>
</mx:HTTPService>
<!-- basic timer to trigger the data request from Hudson -->
<mx:Script>
<![CDATA[
import flash.utils.Timer;
import flash.events.TimerEvent;
private var t:Timer = new Timer(5000, 0); // repeat every 5 seconds;
private function start():void {
t.addEventListener(TimerEvent.TIMER, getHudsonStatus);
t.start();
}
private function getHudsonStatus(e:TimerEvent):void {
jobsRequest.send();
}
]]>
</mx:Script>
<!-- the view -->
<mx:DataGrid id="hudsonJobsDataGrid" x="22" y="128" dataProvider="{jobsRequest.lastResult.hudson.job}">
<mx:columns>
<mx:DataGridColumn headerText="Name" dataField="status"/>
<mx:DataGridColumn headerText="Status" dataField="color"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
Это довольно дурацкий, но он выполняет поиск данных, который вам нужен, Flex 4 или Silverlight предоставят вам лучшие списки, управляемые данными, с ItemRenders (Flex4 Spark) или DataTemplates (Silverlight), я думаю, для маршрута Flex4 потребуется меньше кода и если он ДОЛЖЕН быть хранителем экрана, конвертировать SWF-файлы в хранители экрана довольно просто, и для автоматизации этого процесса доступно множество инструментов.
Обновление 2: пример чуть лучше Flex 4 ...
Я создал более приятное представление в виде полноэкранного приложения AIR с Flex 4 с использованием компонентов Spark (DataGroup + ItemRenderer), здесь он находится http://gist.github.com/623167 в качестве источника. Для сборки требуется Flashbuilder4 или AIR SDK. Конечно, это не готовый продукт!
Похоже на это ...: http://i.stack.imgur.com/8I92U.png - когда он наблюдал http://deadlock.netbeans.org/hudson