All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.plugins.view.dashboard.builds.LatestBuilds Maven / Gradle / Ivy

Go to download

Hudson view that shows various cuts of build information via configured portlets.

The newest version!
package hudson.plugins.view.dashboard.builds;

import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.Job;
import hudson.model.Run;
import hudson.plugins.view.dashboard.DashboardPortlet;
import java.text.DateFormat;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

import org.kohsuke.stapler.DataBoundConstructor;

import hudson.plugins.view.dashboard.Messages;

public class LatestBuilds extends DashboardPortlet{

  /**
	 * Number of latest builds which will be displayed on the screen
	 */  
  private int numBuilds = 10;

	@DataBoundConstructor
	public LatestBuilds(String name, int numBuilds) {
		super(name);
    this.numBuilds = numBuilds;
	}

  public int getNumBuilds() {
    return numBuilds <= 0 ? 10 : numBuilds;
  }

  public String getTimestampString(Run run) {
    return DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new Date(run.getTimeInMillis()));
  }
	
	/**
	 * Last N_LATEST_BUILDS builds
	 *
	 */
	public List getFinishedBuilds() {
    List jobs = getDashboard().getJobs();
		List allBuilds = new ArrayList();
		for (Job job : jobs) {
      List builds = job.getBuilds();
      allBuilds.addAll(builds);
		}
		Collections.sort(allBuilds, Run.ORDER_BY_DATE);
		List recentBuilds = new ArrayList();
		if(allBuilds.size() < getNumBuilds())
			recentBuilds = allBuilds;
		else
			recentBuilds = allBuilds.subList(0,getNumBuilds());
			
		return recentBuilds;
	}

	@Extension
    public static class DescriptorImpl extends Descriptor {

		@Override
		public String getDisplayName() {
			return Messages.Dashboard_LatestBuilds();
		}

	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy