Class 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 Detail

      • ConsoleAnnotatorFactory

        public ConsoleAnnotatorFactory()
    • Method Detail

      • 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.StaplerRequest req,
                               org.kohsuke.stapler.StaplerResponse rsp)
                        throws IOException,
                               javax.servlet.ServletException
        Serves the JavaScript file associated with this console annotator factory.
        Throws:
        IOException
        javax.servlet.ServletException
      • doStyleCss

        @WebMethod(name="style.css")
        public void doStyleCss​(org.kohsuke.stapler.StaplerRequest req,
                               org.kohsuke.stapler.StaplerResponse rsp)
                        throws IOException,
                               javax.servlet.ServletException
        Throws:
        IOException
        javax.servlet.ServletException