import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.client.XmlRpcClient;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.HashMap;
/**
* An example of reporting over builds. Retrieves up to the latest five builds
* for a project and outputs some of their key details.
*/
public class GetLatestBuildsForProject
{
private static final String PULSE_URL = "http:;
private static final String USERNAME = "user";
private static final String PASSWORD = "secret";
private static final String PROJECT = "my project";
public static void main(String[] argv) throws MalformedURLException, XmlRpcException
{
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(PULSE_URL));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
String token = (String) client.execute("RemoteApi.login", Arrays.asList(USERNAME, PASSWORD));
Object[] builds = (Object[]) client.execute("RemoteApi.getLatestBuildsForProject", Arrays.asList(token, PROJECT, true, 5));
client.execute("RemoteApi.logout", Arrays.asList(token));
for (Object build: builds)
{
showBuild((HashMap) build);
}
}
private static void showBuild(HashMap build)
{
System.out.println("Build number " + build.get("id") + ":");
System.out.println(" Status: " + build.get("status"));
System.out.println(" Stages:");
Object[] stages = (Object[]) build.get("stages");
for (Object stage: stages)
{
showStage((HashMap) stage);
}
}
private static void showStage(HashMap stage)
{
System.out.println(" Stage " + stage.get("name") + ": ");
System.out.println(" Status: " + stage.get("status"));
System.out.println(" Agent : " + stage.get("agent"));
}
}