Package hudson.model

Class TaskAction

All Implemented Interfaces:
Action, ModelObject, SearchableModelObject, SearchItem
Direct Known Subclasses:
AbstractScmTagAction

public abstract class TaskAction extends AbstractModelObject implements Action
Partial Action implementation for those who kick some processing asynchronously (such as SCM tagging.)

The class offers the basic set of functionality to do it.

Since:
1.191
Author:
Kohsuke Kawaguchi
See Also:
  • Field Details

    • workerThread

      protected transient volatile TaskThread workerThread
      If non-null, that means either the activity is in progress asynchronously, or it failed unexpectedly and the thread is dead.
    • log

      protected transient WeakReference<AnnotatedLargeText> log
      Hold the log of the tagging operation.
  • Constructor Details

    • TaskAction

      public TaskAction()
  • Method Details

    • getPermission

      protected abstract Permission getPermission()
      Gets the permission object that represents the permission (against getACL()) to perform this task. Generally your implementation of getIconFileName() should return null if !getACL().hasPermission2(getPermission()).
    • getACL

      protected abstract ACL getACL()
      Gets the ACL against which getPermission() is checked.
    • getIconFileName

      public abstract String getIconFileName()
      Description copied from interface: Action
      Gets the name of the icon.
      Specified by:
      getIconFileName in interface Action
      Returns:
      If the icon name is prefixed with "symbol-", a Jenkins Symbol will be used.

      If just a file name (like "abc.gif") is returned, it will be interpreted as a file name inside /images/24x24. This is useful for using one of the stock images.

      If an absolute file name that starts from '/' is returned (like "/plugin/foo/abc.gif"), then it will be interpreted as a path from the context root of Jenkins. This is useful to pick up image files from a plugin.

      Finally, return null to hide it from the task list. This is normally not very useful, but this can be used for actions that only contribute floatBox.jelly and no task list item. The other case where this is useful is to avoid showing links that require a privilege when the user is anonymous.

      See Also:
    • getLog

      @Deprecated public org.kohsuke.stapler.framework.io.LargeText getLog()
      Deprecated.
      as of 1.350 Use obtainLog(), which returns the same object in a more type-safe signature.
    • obtainLog

      public AnnotatedLargeText obtainLog()
      Obtains the log file.

      The default implementation get this from workerThread, so when it's complete, the log could be gone any time.

      Derived classes that persist the text should override this method so that it fetches the file from disk.

    • getSearchUrl

      public String getSearchUrl()
      Description copied from interface: SearchItem
      Returns the URL of this item relative to the parent SearchItem.
      Specified by:
      getSearchUrl in interface SearchItem
      Returns:
      URL like "foo" or "foo/bar". The path can end with '/'. The path that starts with '/' will be interpreted as the absolute path (within the context path of Jenkins.)
    • getWorkerThread

      public TaskThread getWorkerThread()
    • doProgressiveLog

      public void doProgressiveLog(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException
      Handles incremental log output.
      Throws:
      IOException
    • doProgressiveHtml

      public void doProgressiveHtml(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException
      Handles incremental log output.
      Throws:
      IOException
    • doClearError

      public void doClearError(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException
      Clears the error status.
      Throws:
      IOException
      javax.servlet.ServletException