Class RunListProgressiveRendering

java.lang.Object
jenkins.util.ProgressiveRendering
jenkins.widgets.RunListProgressiveRendering
Direct Known Subclasses:
BuildListTable, BuildTimeTrend

@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public abstract class RunListProgressiveRendering extends ProgressiveRendering
Makes it possible to incrementally render some information from a RunList.
  • Constructor Details

    • RunListProgressiveRendering

      public RunListProgressiveRendering()
  • Method Details

    • setBuilds

      public void setBuilds(Iterable<? extends Run<?,?>> builds)
      Jelly cannot call a constructor with arguments.
    • compute

      protected void compute() throws Exception
      Description copied from class: ProgressiveRendering
      Actually do the work.

      The security context will be that in effect when the web request was made. Stapler.getCurrentRequest() will also be similar to that in effect when the web request was made; at least, Ancestors and basic request properties (URI, locale, and so on) will be available.

      Specified by:
      compute in class ProgressiveRendering
      Throws:
      Exception - whenever you like; the progress bar will indicate that an error occurred but details go to the log only
    • data

      protected net.sf.json.JSON data()
      Description copied from class: ProgressiveRendering
      Provide current data to the web page for display.

      While this could be an aggregate of everything that has been computed so far, more likely you want to supply only that data that is new since the last call (maybe just {} or []), so that the page can incrementally update bits of HTML rather than refreshing everything.

      You may want to make your implementation synchronized, so that it can track what was sent on a previous call, in which case any code running in ProgressiveRendering.compute() which modifies these fields should also temporarily be synchronized on the same monitor such as this.

      Specified by:
      data in class ProgressiveRendering
      Returns:
      any JSON data you like
    • calculate

      protected abstract void calculate(Run<?,?> build, net.sf.json.JSONObject element)