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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
-
Constructor Summary
Constructors Constructor Description LibraryResolver()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Collection<LibraryConfiguration>
forJob(Job<?,?> job, Map<String,String> libraryVersions)
Check for libraries visible to a given job.Collection<LibraryConfiguration>
fromConfiguration(org.kohsuke.stapler.StaplerRequest request)
A list of libraries that may have already been configured in this context.abstract boolean
isTrusted()
Whether these libraries should be run outside the sandbox.Collection<LibraryConfiguration>
suggestedConfigurations(ItemGroup<?> group)
A list of libraries that might be visible in a given location.
-
-
-
Method Detail
-
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 accountLibraryConfiguration.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 oflibraryVersions
; 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 joblibraryVersions
- libraries explicitly requested in the job, as a map fromLibraryConfiguration.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 asforJob(hudson.model.Job<?, ?>, java.util.Map<java.lang.String, java.lang.String>)
applied toAbstractItem.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)
-
-