Class JmhBenchmarkState

java.lang.Object
jenkins.benchmark.jmh.JmhBenchmarkState
All Implemented Interfaces:
hudson.ExtensionPoint, hudson.model.Action, hudson.model.ModelObject, hudson.model.RootAction

public abstract class JmhBenchmarkState extends Object implements hudson.model.RootAction
Standard benchmark State for JMH when a Jenkins instance is required.

To use a Jenkins instance in your benchmark, your class containing benchmarks should have a public static inner class that extends this class and should be annotated with JmhBenchmark to allow it to be automatically discovered by BenchmarkFinder. To configure the instance, use setup().

Since:
2.50
See Also:
  • Constructor Details

    • JmhBenchmarkState

      public JmhBenchmarkState()
  • Method Details

    • setupJenkins

      public final void setupJenkins() throws Exception
      Sets up the temporary Jenkins instance for benchmarks.

      One Jenkins instance is created for each fork of the benchmark.

      Throws:
      Exception - if unable to start the instance.
    • terminateJenkins

      public final void terminateJenkins()
      Terminates the jenkins instance after the benchmark has completed its execution. Run once for each Jenkins that was started.
    • getJenkins

      public jenkins.model.Jenkins getJenkins()
      Get reference to the Jenkins started for the benchmark.

      The instance can also be obtained using Jenkins.getInstanceOrNull()

      Returns:
      the Jenkins instance started for the benchmark.
    • setup

      public void setup() throws Exception
      Override to setup resources required for the benchmark.

      Runs before the benchmarks are run. At this state, the Jenkins instance is ready to be worked upon and is available using getJenkins(). Does nothing by default.

      Throws:
      Exception
    • tearDown

      public void tearDown()
      Override to perform cleanup of resource initialized during setup.

      Run before the Jenkins instance is terminated. Does nothing by default.

    • getIconFileName

      @CheckForNull public String getIconFileName()
      Specified by:
      getIconFileName in interface hudson.model.Action
    • getDisplayName

      @CheckForNull public String getDisplayName()
      Specified by:
      getDisplayName in interface hudson.model.Action
      Specified by:
      getDisplayName in interface hudson.model.ModelObject
    • getUrlName

      @CheckForNull public String getUrlName()
      Specified by:
      getUrlName in interface hudson.model.Action