Class ConsoleAnnotatorFactory<T>

java.lang.Object
hudson.console.ConsoleAnnotatorFactory<T>
All Implemented Interfaces:
ExtensionPoint
Direct Known Subclasses:
UrlAnnotator

public abstract class ConsoleAnnotatorFactory<T> extends Object implements ExtensionPoint
Entry point to the ConsoleAnnotator extension point. This class creates a new instance of ConsoleAnnotator that starts a new console annotation session.

ConsoleAnnotatorFactorys are used whenever a browser requests console output (as opposed to when the console output is being produced — for that see ConsoleNote.)

ConsoleAnnotators returned by ConsoleAnnotatorFactory are asked to start from an arbitrary line of the output, because typically browsers do not request the entire console output. Because of this, ConsoleAnnotatorFactory is generally suitable for peep-hole local annotation that only requires a small contextual information, such as keyword coloring, URL hyperlinking, and so on.

To register, put @Extension on your ConsoleAnnotatorFactory subtype.

Behaviour, JavaScript, and CSS

ConsoleNote can have associated script.js and style.css (put them in the same resource directory that you normally put Jelly scripts), which will be loaded into the HTML page whenever the console notes are used. This allows you to use minimal markup in code generation, and do the styling in CSS and perform the rest of the interesting work as a CSS behaviour/JavaScript.

Since:
1.349
Author:
Kohsuke Kawaguchi
  • Constructor Details

    • ConsoleAnnotatorFactory

      public ConsoleAnnotatorFactory()
  • Method Details

    • newInstance

      public abstract ConsoleAnnotator<T> newInstance(T context)
      Called when a console output page is requested to create a stateful ConsoleAnnotator.

      This method can be invoked concurrently by multiple threads.

      Parameters:
      context - The model object that owns the console output, such as Run. This method is only called when the context object if assignable to the advertised type.
      Returns:
      null if this factory is not going to participate in the annotation of this console.
    • type

      public Class<?> type()
      For which context type does this annotator work?
    • hasScript

      public boolean hasScript()
      Returns true if this descriptor has a JavaScript to be inserted on applicable console page.
    • hasStylesheet

      public boolean hasStylesheet()
    • doScriptJs

      @WebMethod(name="script.js") public void doScriptJs(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) throws IOException, jakarta.servlet.ServletException
      Serves the JavaScript file associated with this console annotator factory.
      Throws:
      IOException
      jakarta.servlet.ServletException
    • doStyleCss

      @WebMethod(name="style.css") public void doStyleCss(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) throws IOException, jakarta.servlet.ServletException
      Throws:
      IOException
      jakarta.servlet.ServletException
    • all

      public static ExtensionList<ConsoleAnnotatorFactory> all()
      All the registered instances.