Class LibraryResolver

java.lang.Object
org.jenkinsci.plugins.workflow.libs.LibraryResolver
All Implemented Interfaces:
ExtensionPoint
Direct Known Subclasses:
FolderLibraries.ForJob, GlobalLibraries.ForJob

public abstract class LibraryResolver extends Object implements ExtensionPoint
Allows a provider of libraries to indicate which libraries should be visible to a given job.
  • Constructor Details

    • LibraryResolver

      public LibraryResolver()
  • Method Details

    • isTrusted

      public abstract boolean isTrusted()
      Whether these libraries should be run outside the sandbox.
    • forJob

      @NonNull public abstract Collection<LibraryConfiguration> forJob(@NonNull Job<?,?> job, @NonNull Map<String,String> libraryVersions)
      Check for libraries visible to a given job.

      An implementation may ignore the libraryVersions parameter and simply list configured libraries visible to the job; the caller will select which libraries to actually load, taking into account LibraryConfiguration.isImplicit(). Or it may dynamically generate library configurations by matching library names against some predefined pattern.

      By returning a library with a matching name, this resolver “claims” that entry of libraryVersions; subsequent resolvers will not be offered that entry. It is an error if no resolver claims a given entry. Multiple resolvers might return a library of a given name if the libraries are implicit, in which case only the first will be loaded.

      Parameters:
      job - a job
      libraryVersions - libraries explicitly requested in the job, as a map from LibraryConfiguration.getName() to version or null; may be empty
      Returns:
      a possibly empty collection of associated libraries
    • fromConfiguration

      @NonNull public Collection<LibraryConfiguration> fromConfiguration(@NonNull org.kohsuke.stapler.StaplerRequest request)
      A list of libraries that may have already been configured in this context. Implementations should only return libraries that the current user has permission to configure in this context.
      Parameters:
      request - a web request
      Returns:
      known libraries, if any (empty by default)
    • suggestedConfigurations

      @NonNull public Collection<LibraryConfiguration> suggestedConfigurations(@NonNull ItemGroup<?> group)
      A list of libraries that might be visible in a given location. Typically would be the same as forJob(hudson.model.Job<?, ?>, java.util.Map<java.lang.String, java.lang.String>) applied to AbstractItem.getParent(). If a resolver can dynamically generate library configurations, it can simply return one or more examples here.
      Parameters:
      group - Jenkins root or some folder
      Returns:
      any suggested libraries (empty by default)