Class AbstractProject<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- java.lang.Object
-
- hudson.model.AbstractModelObject
-
- hudson.model.Actionable
-
- hudson.model.AbstractItem
-
- hudson.model.Job<P,R>
-
- hudson.model.AbstractProject<P,R>
-
- All Implemented Interfaces:
ExtensionPoint
,BuildableItem
,DescriptorByNameOwner
,Item
,ModelObject
,PersistenceRoot
,SubTask
,Queue.Task
,ResourceActivity
,Saveable
,SearchableModelObject
,SearchItem
,AccessControlled
,LazyBuildMixIn.LazyLoadingJob<P,R>
,ModelObjectWithChildren
,ModelObjectWithContextMenu
,ParameterizedJobMixIn.ParameterizedJob<P,R>
,TriggeredItem
,OnMaster
,org.kohsuke.stapler.HttpDeletable
,org.kohsuke.stapler.StaplerOverridable
,org.kohsuke.stapler.StaplerProxy
- Direct Known Subclasses:
Project
public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>> extends Job<P,R> implements BuildableItem, LazyBuildMixIn.LazyLoadingJob<P,R>, ParameterizedJobMixIn.ParameterizedJob<P,R>
Base implementation ofJob
s that build software. For now this is primarily the common part ofProject
and MavenModule.- Author:
- Kohsuke Kawaguchi
- See Also:
AbstractBuild
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractProject.AbstractProjectDescriptor
AbstractProject
subtypes should implement this base class as a descriptor.static class
AbstractProject.BecauseOfBuildInProgress
Deprecated.useBlockedBecauseOfBuildInProgress
instead.static class
AbstractProject.BecauseOfDownstreamBuildInProgress
Because the downstream build is in progress, and we are configured to wait for that.static class
AbstractProject.BecauseOfUpstreamBuildInProgress
Because the upstream build is in progress, and we are configured to wait for that.static class
AbstractProject.LabelValidator
Deprecated.UseLabelValidator
instead.-
Nested classes/interfaces inherited from class hudson.model.Job
Job.LastItemListener, Job.SubItemBuildsLocationImpl
-
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Nested classes/interfaces inherited from interface jenkins.model.ModelObjectWithContextMenu
ModelObjectWithContextMenu.ContextMenu, ModelObjectWithContextMenu.ContextMenuVisibility, ModelObjectWithContextMenu.MenuItem, ModelObjectWithContextMenu.MenuItemType
-
-
Field Summary
Fields Modifier and Type Field Description static Permission
ABORT
Deprecated.Just useItem.CANCEL
.protected boolean
blockBuildWhenDownstreamBuilding
True to keep builds of this project in queue when downstream projects are building.protected boolean
blockBuildWhenUpstreamBuilding
True to keep builds of this project in queue when upstream projects are building.static AlternativeUiTextProvider.Message<AbstractProject>
BUILD_NOW_TEXT
Deprecated.protected RunMap<R>
builds
All the builds keyed by their build number.protected boolean
disabled
True to suspend new builds.protected List<Action>
transientActions
Action
s contributed from subsidiary objects associated withAbstractProject
, such as from triggers, builders, publishers, etc.protected DescribableList<Trigger<?>,TriggerDescriptor>
triggers
List of allTrigger
s for this project.-
Fields inherited from class hudson.model.Job
HISTORY_ADAPTER, nextBuildNumber, properties, runIdMigrator
-
Fields inherited from class hudson.model.AbstractItem
description, displayName, name, PRONOUN, SKIP_PERMISSION_CHECK, TASK_NOUN
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractProject(ItemGroup parent, String name)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description RunMap<R>
_getRuns()
Gets all the runs.void
addProperty(JobProperty<? super P> jobProp)
AddsJobProperty
.protected <T extends Describable<T>>
voidaddToList(T item, List<T> collection)
void
addTrigger(Trigger<?> trigger)
boolean
blockBuildWhenDownstreamBuilding()
boolean
blockBuildWhenUpstreamBuilding()
protected void
buildDependencyGraph(DependencyGraph graph)
Builds the dependency graph.protected <T extends Describable<T>>
List<T>buildDescribable(org.kohsuke.stapler.StaplerRequest req, List<? extends Descriptor<T>> descriptors)
protected <T extends Describable<T>>
List<T>buildDescribable(org.kohsuke.stapler.StaplerRequest req, List<? extends Descriptor<T>> descriptors, String prefix)
Deprecated.As of 1.261.void
checkAbortPermission()
Checks the permission to see if the current user can abort this executable.boolean
checkout(AbstractBuild build, Launcher launcher, BuildListener listener, File changelogFile)
R
createExecutable()
Creates an object which performs the actual execution of the task.protected HistoryWidget
createHistoryWidget()
protected List<Action>
createTransientActions()
void
disable()
void
doBuild(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
void
doBuildWithParameters(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
FormValidation
doCheckRetryCount(String value)
Validates the retry count Regexvoid
doConfigSubmit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
Accepts submission from the configuration page.org.kohsuke.stapler.HttpResponse
doDoWipeOutWorkspace()
Wipes out the workspace.void
doPolling(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
Schedules a new SCM polling command.DirectoryBrowserSupport
doWs(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
Serves the workspace files.void
enable()
static AbstractProject
findNearest(String name)
Finds aAbstractProject
that has the name closest to the given name.static AbstractProject
findNearest(String name, ItemGroup context)
Finds aAbstractProject
whose name (when referenced from the specified context) is closest to the given name.List<Action>
getActions()
Gets actions contributed to this object.Label
getAssignedLabel()
If this project is configured to be always built on this node, return thatNode
.String
getAssignedLabelString()
Gets the textual representation of the assigned label as it was entered by the user.BuildAuthorizationToken
getAuthToken()
R
getBuild(String id)
Looks up a build by its ID.R
getBuildByNumber(int n)
More efficient implementation.protected abstract Class<R>
getBuildClass()
Type token for the corresponding build type.AbstractProject
getBuildingDownstream()
Returns the project if any of the downstream project is either building, or queued and not blocked by an upstream/downstream project build.AbstractProject
getBuildingUpstream()
Returns the project if any of the upstream project is either building, or queued and not blocked by an upstream/downstream project build.String
getBuildNowText()
Gets the human readable display name to be rendered in the "Build Now" link.List<AbstractProject>
getBuildTriggerUpstreamProjects()
Returns only those upstream projects that definesBuildTrigger
to this project.CauseOfBlockage
getCauseOfBlockage()
If the execution of this task should be blocked for temporary reasons, this method returns a non-null object explaining why.String
getCustomWorkspace()
int
getDelay(org.kohsuke.stapler.StaplerRequest req)
Deprecated.as of 1.489 InjectTimeDuration
.List<AbstractProject>
getDownstreamProjects()
Gets the otherAbstractProject
s that should be built when a build of this project is completed.List<AbstractProject>
getDownstreamProjectsForApi()
EnvVars
getEnvironment(Node node, TaskListener listener)
Creates an environment variable override for launching processes for this project.R
getFirstBuild()
Returns the oldest build in the record.boolean
getHasCustomQuietPeriod()
BallColor
getIconColor()
Used as the color of the status ball for the project.JDK
getJDK()
Gets the JDK that this project is configured with, or null.R
getLastBuild()
Returns the last build.Node
getLastBuiltOn()
Gets theNode
where this project was last built on.LazyBuildMixIn<P,R>
getLazyBuildMixIn()
FilePath
getModuleRoot()
Deprecated.as of 1.319 SeegetWorkspace()
for a migration strategy.FilePath[]
getModuleRoots()
Deprecated.as of 1.319 SeegetWorkspace()
for a migration strategy.R
getNearestBuild(int n)
Gets the youngest build #m that satisfiesn<=m
.R
getNearestOldBuild(int n)
Gets the latest build #m that satisfiesm<=n
.List<ProminentProjectAction>
getProminentActions()
String
getPronoun()
Get the term used in the UI to represent this kind ofAbstractProject
.abstract DescribableList<Publisher,Descriptor<Publisher>>
getPublishersList()
Returns the live list of allPublisher
s configured for this project.Queue.Item
getQueueItem()
If this job is in the build queue, return its item.int
getQuietPeriod()
Quiet period for the job.SortedMap<Integer,Fingerprint.RangeSet>
getRelationship(AbstractProject that)
Gets the dependency relationship map between this project (as the source) and that project (as the sink.)Set<Label>
getRelevantLabels()
Set of labels relevant to this job.protected Set<ResourceActivity>
getResourceActivities()
Set of child resource activities of the build of this project (override in child projects).ResourceList
getResourceList()
List of necessary resources to perform the build of this project.AbstractProject<?,?>
getRootProject()
Gets the nearest ancestorTopLevelItem
that's also anAbstractProject
.Object
getSameNodeConstraint()
If a subset ofSubTask
s of aQueue.Task
needs to be collocated with otherSubTask
s, thoseSubTask
s should return the equal object here.SCM
getScm()
int
getScmCheckoutRetryCount()
SCMCheckoutStrategy
getScmCheckoutStrategy()
R
getSomeBuildWithWorkspace()
Gets some build that has a live workspace.FilePath
getSomeWorkspace()
Gets a workspace for some build of this project.List<SubTask>
getSubTasks()
Obtains theSubTask
s that constitute this task.Set<AbstractProject>
getTransitiveDownstreamProjects()
Gets all the downstream projects including transitive downstream projects.Set<AbstractProject>
getTransitiveUpstreamProjects()
Gets all the upstream projects including transitive upstream projects.<T extends Trigger>
TgetTrigger(Class<T> clazz)
Gets the specific trigger, or null if the property is not configured for this job.Map<TriggerDescriptor,Trigger<?>>
getTriggers()
Gets currently configured triggers.List<AbstractProject>
getUpstreamProjects()
List<AbstractProject>
getUpstreamProjectsForApi()
FilePath
getWorkspace()
Deprecated.as of 1.319 To support concurrent builds of the same project, this method is moved toAbstractBuild
.Resource
getWorkspaceResource()
Deprecated.as of 1.319 Projects no longer have a fixed workspace, ands builds will find an available workspace viaWorkspaceList
for each build (furthermore, that happens after a build is started.) So aResource
representation for a workspace at the project level no longer makes sense.boolean
hasAbortPermission()
Works just likeQueue.Task.checkAbortPermission()
except it indicates the status by a return value, instead of exception.boolean
hasCustomScmCheckoutRetryCount()
boolean
hasParticipant(User user)
Returns true if this user has made a commit to this project.boolean
isBuildable()
Returns true if we should display "build now" iconboolean
isConcurrentBuild()
Does this project perform concurrent builds?boolean
isConfigurable()
Used insidepanel.jelly
to decide whether to display the config/delete/build links.boolean
isDisabled()
abstract boolean
isFingerprintConfigured()
True if the builds of this project producesFingerprint
records.boolean
isInQueue()
Returns true if the build is in the queue.protected R
loadBuild(File dir)
Loads an existing build record from disk.protected SearchIndexBuilder
makeSearchIndex()
Default implementation that returns empty index.protected R
newBuild()
Creates a new build of this project for immediate execution.void
onCreatedFromScratch()
When an item is created from scratch (instead of copied), this method will be invoked.void
onLoad(ItemGroup<? extends Item> parent, String name)
Called right after when aItem
is loaded from disk.protected void
performDelete()
Does the real job of deleting the item.PollingResult
poll(TaskListener listener)
Checks if there's any update in SCM, and returns true if any is found.boolean
pollSCMChanges(TaskListener listener)
Deprecated.as of 1.346 Usepoll(TaskListener)
instead.protected <T extends Describable<T>>
voidremoveFromList(Descriptor<T> item, List<T> collection)
void
removeRun(R run)
Called fromRun
to remove it from this job.void
removeTrigger(TriggerDescriptor trigger)
static AbstractProject
resolveForCLI(String name)
Used for CLI binding.void
save()
Save the settings to a file.boolean
scheduleBuild(int quietPeriod, Cause c, Action... actions)
Schedules a build.QueueTaskFuture<R>
scheduleBuild2(int quietPeriod)
Schedules a build, and returns aFuture
object to wait for the completion of the build.QueueTaskFuture<R>
scheduleBuild2(int quietPeriod, Action... actions)
Provides a standard implementation ofSCMTriggerItem.scheduleBuild2(int, hudson.model.Action...)
to schedule a build with the ability to wait for its result.QueueTaskFuture<R>
scheduleBuild2(int quietPeriod, Cause c)
Schedules a build of this project, and returns aFuture
object to wait for the completion of the build.QueueTaskFuture<R>
scheduleBuild2(int quietPeriod, Cause c, Action... actions)
Schedules a build of this project, and returns aFuture
object to wait for the completion of the build.QueueTaskFuture<R>
scheduleBuild2(int quietPeriod, Cause c, Collection<? extends Action> actions)
Schedules a build of this project, and returns aFuture
object to wait for the completion of the build.boolean
schedulePolling()
Schedules a polling of this project.void
setAssignedLabel(Label l)
Sets the assigned label.void
setAssignedNode(Node l)
Assigns this job to the given node.void
setBlockBuildWhenDownstreamBuilding(boolean b)
void
setBlockBuildWhenUpstreamBuilding(boolean b)
void
setConcurrentBuild(boolean b)
void
setCustomWorkspace(String customWorkspace)
User-specified workspace directory, or null if it's up to Jenkins.void
setDisabled(boolean disabled)
void
setJDK(JDK jdk)
Overwrites the JDK setting.void
setQuietPeriod(Integer seconds)
Sets the custom quiet period of this project, or revert to the global default if null is given.void
setScm(SCM scm)
void
setScmCheckoutStrategy(SCMCheckoutStrategy scmCheckoutStrategy)
protected void
submit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
Derived class can override this to perform additional config submission work.boolean
supportsMakeDisabled()
Specifies whether this project may be disabled by the user.protected DescribableList<Trigger<?>,TriggerDescriptor>
triggers()
protected void
updateTransientActions()
effectively deprecated.-
Methods inherited from class hudson.model.Job
assignBuildNumber, checkRename, delete, doBuildStatus, doChildrenContextMenu, doDescription, doDoRename, doRssAll, doRssChangelog, doRssFailed, getACL, getAllJobs, getAllProperties, getBuildDir, getBuildDiscarder, getBuildForCLI, getBuildHealth, getBuildHealthReports, getBuilds, getBuilds, getBuildsAsMap, getBuildsByTimestamp, getBuildStatusIconClassName, getBuildStatusUrl, getBuildTimeGraph, getCharacteristicEnvVars, getDynamic, getEstimatedDuration, getEstimatedDurationCandidates, getLastBuildsOverThreshold, getLastCompletedBuild, getLastFailedBuild, getLastStableBuild, getLastSuccessfulBuild, getLastUnstableBuild, getLastUnsuccessfulBuild, getLogRotator, getNewBuilds, getNextBuildNumber, getOverrides, getPermalinks, getProperties, getProperty, getProperty, getTimeline, getWidgets, isBuilding, isHoldOffBuildUntilSave, isKeepDependencies, isLogUpdated, isNameEditable, logRotate, movedTo, onCopiedFrom, removeProperty, removeProperty, renameTo, saveNextBuildNumber, setBuildDiscarder, setLogRotator, supportsLogRotator, updateNextBuildNumber
-
Methods inherited from class hudson.model.AbstractItem
delete, doCheckNewName, doConfigDotXml, doConfirmRename, doDoDelete, doReload, doSetName, doSubmitDescription, getAbsoluteUrl, getApi, getConfigFile, getDescription, getDisplayName, getDisplayNameOrNull, getFullDisplayName, getFullName, getName, getParent, getRelativeDisplayNameFrom, getRelativeNameFromGroup, getRootDir, getSearchName, getSearchUrl, getShortUrl, getTarget, getTaskNoun, getUrl, setDescription, setDisplayName, setDisplayNameOrNull, toString, updateByXml, updateByXml, writeConfigDotXml, writeReplace
-
Methods inherited from class hudson.model.Actionable
addAction, addOrReplaceAction, doContextMenu, getAction, getAction, getActions, getAllActions, removeAction, removeActions, replaceAction, replaceActions
-
Methods inherited from class hudson.model.AbstractModelObject
getSearch, getSearchIndex, requirePOST, sendError, sendError, sendError, sendError, sendError
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface hudson.security.AccessControlled
checkAnyPermission, checkPermission, getACL, hasAnyPermission, hasPermission, hasPermission, hasPermission2
-
Methods inherited from interface hudson.model.BuildableItem
scheduleBuild, scheduleBuild
-
Methods inherited from interface hudson.model.DescriptorByNameOwner
getDescriptorByName
-
Methods inherited from interface hudson.model.Item
delete, getAbsoluteUrl, getAllJobs, getDisplayName, getFullDisplayName, getFullName, getName, getParent, getRelativeNameFrom, getRelativeNameFrom, getShortUrl, getUrl, onCopiedFrom
-
Methods inherited from interface jenkins.model.ParameterizedJobMixIn.ParameterizedJob
doBuild, doBuildWithParameters, doCancelQueue, doDisable, doEnable, getParameterizedJobMixIn, isParameterized, makeDisabled, scheduleBuild, scheduleBuild
-
Methods inherited from interface hudson.model.PersistenceRoot
getRootDir
-
Methods inherited from interface hudson.model.Queue.Task
getAffinityKey, getDefaultAuthentication, getDefaultAuthentication, getDefaultAuthentication2, getDefaultAuthentication2, getFullDisplayName, getName, getUrl, getWhyBlocked, isBuildBlocked
-
Methods inherited from interface hudson.model.ResourceActivity
getDisplayName
-
Methods inherited from interface hudson.search.SearchableModelObject
getSearch
-
Methods inherited from interface hudson.search.SearchItem
getSearchIndex, getSearchName, getSearchUrl
-
Methods inherited from interface hudson.model.queue.SubTask
getEstimatedDuration, getOwnerExecutable, getOwnerTask
-
-
-
-
Field Detail
-
builds
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) protected transient RunMap<R extends AbstractBuild<P,R>> builds
All the builds keyed by their build number. Kept here for binary compatibility only; otherwise usebuildMixIn
. External code should usegetBuildByNumber(int)
orgetLastBuild()
and traverse viaRun.getPreviousBuild()
-
disabled
protected volatile boolean disabled
True to suspend new builds.
-
blockBuildWhenDownstreamBuilding
protected volatile boolean blockBuildWhenDownstreamBuilding
True to keep builds of this project in queue when downstream projects are building. False by default to keep from breaking existing behavior.
-
blockBuildWhenUpstreamBuilding
protected volatile boolean blockBuildWhenUpstreamBuilding
True to keep builds of this project in queue when upstream projects are building. False by default to keep from breaking existing behavior.
-
triggers
protected volatile DescribableList<Trigger<?>,TriggerDescriptor> triggers
List of allTrigger
s for this project.
-
transientActions
@CopyOnWrite protected transient volatile List<Action> transientActions
Action
s contributed from subsidiary objects associated withAbstractProject
, such as from triggers, builders, publishers, etc. We don't want to persist them separately, and these actions come and go as configuration change, so it's kept separate.
-
ABORT
@Deprecated public static final Permission ABORT
Deprecated.Just useItem.CANCEL
.
-
BUILD_NOW_TEXT
@Deprecated public static final AlternativeUiTextProvider.Message<AbstractProject> BUILD_NOW_TEXT
Deprecated.
-
-
Method Detail
-
getLazyBuildMixIn
public LazyBuildMixIn<P,R> getLazyBuildMixIn()
- Specified by:
getLazyBuildMixIn
in interfaceLazyBuildMixIn.LazyLoadingJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
save
public void save() throws IOException
Description copied from class:AbstractItem
Save the settings to a file.- Specified by:
save
in interfaceItem
- Specified by:
save
in interfaceSaveable
- Overrides:
save
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Throws:
IOException
- if the persistence failed.
-
onCreatedFromScratch
public void onCreatedFromScratch()
Description copied from interface:Item
When an item is created from scratch (instead of copied), this method will be invoked. Used as the post-construction initialization.- Specified by:
onCreatedFromScratch
in interfaceItem
- Overrides:
onCreatedFromScratch
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
onLoad
public void onLoad(ItemGroup<? extends Item> parent, String name) throws IOException
Description copied from class:AbstractItem
Called right after when aItem
is loaded from disk. This is an opportunity to do a post load processing.- Specified by:
onLoad
in interfaceItem
- Overrides:
onLoad
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
name
- Name of the directory (not a path --- just the name portion) from which the configuration was loaded. This usually becomes thename
of this item.- Throws:
IOException
-
triggers
@WithBridgeMethods(java.util.List.class) protected DescribableList<Trigger<?>,TriggerDescriptor> triggers()
-
getEnvironment
@NonNull public EnvVars getEnvironment(@CheckForNull Node node, @NonNull TaskListener listener) throws IOException, InterruptedException
Description copied from class:Job
Creates an environment variable override for launching processes for this project.This is for process launching outside the build execution (such as polling, tagging, deployment, etc.) that happens in a context of a specific job.
- Overrides:
getEnvironment
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Parameters:
node
- Node to eventually run a process on. The implementation must cope with this parameter being null (in which case none of the node specific properties would be reflected in the resulting override.)- Throws:
IOException
InterruptedException
-
performDelete
protected void performDelete() throws IOException, InterruptedException
Description copied from class:AbstractItem
Does the real job of deleting the item.- Overrides:
performDelete
in classAbstractItem
- Throws:
IOException
InterruptedException
-
isConcurrentBuild
@Exported public boolean isConcurrentBuild()
Does this project perform concurrent builds?- Specified by:
isConcurrentBuild
in interfaceQueue.Task
- Returns:
- by default, false
- Since:
- 1.319
-
setConcurrentBuild
public void setConcurrentBuild(boolean b) throws IOException
- Throws:
IOException
-
getAssignedLabel
@CheckForNull public Label getAssignedLabel()
If this project is configured to be always built on this node, return thatNode
. Otherwise null.- Specified by:
getAssignedLabel
in interfaceSubTask
- Returns:
- by default, null
-
getRelevantLabels
public Set<Label> getRelevantLabels()
Set of labels relevant to this job. This method is used to determine what agents are relevant to jobs, for example byView
s. It does not affect the scheduling. This information is informational and the best-effort basis.- Returns:
- Minimally it should contain
getAssignedLabel()
. The set can contain null element to correspond to the null return value fromgetAssignedLabel()
. - Since:
- 1.456
-
getAssignedLabelString
@Exported(name="labelExpression") public String getAssignedLabelString()
Gets the textual representation of the assigned label as it was entered by the user.
-
setAssignedLabel
public void setAssignedLabel(Label l) throws IOException
Sets the assigned label.- Throws:
IOException
-
setAssignedNode
public void setAssignedNode(Node l) throws IOException
Assigns this job to the given node. A convenience method oversetAssignedLabel(Label)
.- Throws:
IOException
-
getPronoun
public String getPronoun()
Get the term used in the UI to represent this kind ofAbstractProject
. Must start with a capital letter.- Overrides:
getPronoun
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
getBuildNowText
public String getBuildNowText()
Gets the human readable display name to be rendered in the "Build Now" link.- Specified by:
getBuildNowText
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Since:
- 1.401
- See Also:
ParameterizedJobMixIn.getBuildNowText()
-
getRootProject
public AbstractProject<?,?> getRootProject()
Gets the nearest ancestorTopLevelItem
that's also anAbstractProject
.Some projects (such as matrix projects, Maven projects, or promotion processes) form a tree of jobs that acts as a single unit. This method can be used to find the top most dominating job that covers such a tree.
- Returns:
- never null.
- See Also:
AbstractBuild.getRootBuild()
-
getWorkspace
@Deprecated public final FilePath getWorkspace()
Deprecated.as of 1.319 To support concurrent builds of the same project, this method is moved toAbstractBuild
. For backward compatibility, this method returns the rightAbstractBuild.getWorkspace()
if called fromExecutor
, and otherwise the workspace of the last build.If you are calling this method during a build from an executor, switch it to
AbstractBuild.getWorkspace()
. If you are calling this method to serve a file from the workspace, doing a form validation, etc., then usegetSomeWorkspace()
Gets the directory where the module is checked out.- Returns:
- null if the workspace is on an agent that's not connected.
-
getSomeWorkspace
@CheckForNull public final FilePath getSomeWorkspace()
Gets a workspace for some build of this project.This is useful for obtaining a workspace for the purpose of form field validation, where exactly which build the workspace belonged is less important. The implementation makes a cursory effort to find some workspace.
- Returns:
- null if there's no available workspace.
- Since:
- 1.319
-
getSomeBuildWithWorkspace
public final R getSomeBuildWithWorkspace()
Gets some build that has a live workspace.- Returns:
- null if no such build exists.
-
getModuleRoot
@Deprecated public FilePath getModuleRoot()
Deprecated.as of 1.319 SeegetWorkspace()
for a migration strategy.Returns the root directory of the checked-out module.This is usually where
pom.xml
,build.xml
and so on exists.
-
getModuleRoots
@Deprecated public FilePath[] getModuleRoots()
Deprecated.as of 1.319 SeegetWorkspace()
for a migration strategy.Returns the root directories of all checked-out modules.Some SCMs support checking out multiple modules into the same workspace. In these cases, the returned array will have a length greater than one.
- Returns:
- The roots of all modules checked out from the SCM.
-
getQuietPeriod
public int getQuietPeriod()
Description copied from interface:ParameterizedJobMixIn.ParameterizedJob
Quiet period for the job.- Specified by:
getQuietPeriod
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Returns:
- by default,
Jenkins.getQuietPeriod()
-
getScmCheckoutStrategy
public SCMCheckoutStrategy getScmCheckoutStrategy()
-
setScmCheckoutStrategy
public void setScmCheckoutStrategy(SCMCheckoutStrategy scmCheckoutStrategy) throws IOException
- Throws:
IOException
-
getScmCheckoutRetryCount
public int getScmCheckoutRetryCount()
-
getHasCustomQuietPeriod
public boolean getHasCustomQuietPeriod()
-
setQuietPeriod
public void setQuietPeriod(Integer seconds) throws IOException
Sets the custom quiet period of this project, or revert to the global default if null is given.- Throws:
IOException
-
hasCustomScmCheckoutRetryCount
public boolean hasCustomScmCheckoutRetryCount()
-
isBuildable
public boolean isBuildable()
Description copied from class:Job
Returns true if we should display "build now" icon- Specified by:
isBuildable
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Specified by:
isBuildable
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
isConfigurable
public boolean isConfigurable()
Used insidepanel.jelly
to decide whether to display the config/delete/build links.
-
blockBuildWhenDownstreamBuilding
public boolean blockBuildWhenDownstreamBuilding()
-
setBlockBuildWhenDownstreamBuilding
public void setBlockBuildWhenDownstreamBuilding(boolean b) throws IOException
- Throws:
IOException
-
blockBuildWhenUpstreamBuilding
public boolean blockBuildWhenUpstreamBuilding()
-
setBlockBuildWhenUpstreamBuilding
public void setBlockBuildWhenUpstreamBuilding(boolean b) throws IOException
- Throws:
IOException
-
isDisabled
@Exported public boolean isDisabled()
- Specified by:
isDisabled
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
setDisabled
@Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public void setDisabled(boolean disabled)
- Specified by:
setDisabled
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
doCheckRetryCount
public FormValidation doCheckRetryCount(@QueryParameter String value) throws IOException, javax.servlet.ServletException
Validates the retry count Regex- Throws:
IOException
javax.servlet.ServletException
-
supportsMakeDisabled
public boolean supportsMakeDisabled()
Specifies whether this project may be disabled by the user. By default, it can be only if this is aTopLevelItem
; would be false for matrix configurations, etc.- Specified by:
supportsMakeDisabled
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Returns:
- true if the GUI should allow
ParameterizedJobMixIn.ParameterizedJob.doDisable()
and the like - Since:
- 1.475
-
disable
public void disable() throws IOException
- Throws:
IOException
-
enable
public void enable() throws IOException
- Throws:
IOException
-
getIconColor
public BallColor getIconColor()
Description copied from class:Job
Used as the color of the status ball for the project.- Overrides:
getIconColor
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
updateTransientActions
protected void updateTransientActions()
effectively deprecated. Since using updateTransientActions correctly under concurrent environment requires a lock that can too easily cause deadlocks.Override
createTransientActions()
instead.
-
getPublishersList
public abstract DescribableList<Publisher,Descriptor<Publisher>> getPublishersList()
Returns the live list of allPublisher
s configured for this project.This method couldn't be called
getPublishers()
because existing methods in sub-classes return different inconsistent types.
-
addProperty
public void addProperty(JobProperty<? super P> jobProp) throws IOException
Description copied from class:Job
AddsJobProperty
.- Overrides:
addProperty
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Throws:
IOException
-
getProminentActions
public List<ProminentProjectAction> getProminentActions()
-
doConfigSubmit
@POST public void doConfigSubmit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException, Descriptor.FormException
Description copied from class:Job
Accepts submission from the configuration page.- Overrides:
doConfigSubmit
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Throws:
IOException
javax.servlet.ServletException
Descriptor.FormException
-
scheduleBuild
public boolean scheduleBuild(int quietPeriod, Cause c, Action... actions)
Schedules a build. Important: the actions should be persistable without outside references (e.g. don't store references to this project). To provide parameters for a parameterized project, add a ParametersAction. If no ParametersAction is provided for such a project, one will be created with the default parameter values.- Parameters:
quietPeriod
- the quiet period to observerc
- the cause for this build which should be recordedactions
- a list of Actions that will be added to the build- Returns:
- whether the build was actually scheduled
-
scheduleBuild2
@WithBridgeMethods(java.util.concurrent.Future.class) public QueueTaskFuture<R> scheduleBuild2(int quietPeriod, Cause c, Action... actions)
Schedules a build of this project, and returns aFuture
object to wait for the completion of the build.- Parameters:
actions
- For the convenience of the caller, this array can contain null, and those will be silently ignored.
-
scheduleBuild2
@WithBridgeMethods(java.util.concurrent.Future.class) public QueueTaskFuture<R> scheduleBuild2(int quietPeriod, Cause c, Collection<? extends Action> actions)
Schedules a build of this project, and returns aFuture
object to wait for the completion of the build.- Parameters:
actions
- For the convenience of the caller, this collection can contain null, and those will be silently ignored.- Since:
- 1.383
-
scheduleBuild2
@WithBridgeMethods(java.util.concurrent.Future.class) public QueueTaskFuture<R> scheduleBuild2(int quietPeriod)
Schedules a build, and returns aFuture
object to wait for the completion of the build.Production code shouldn't be using this, but for tests this is very convenient, so this isn't marked as deprecated.
-
scheduleBuild2
@WithBridgeMethods(java.util.concurrent.Future.class) public QueueTaskFuture<R> scheduleBuild2(int quietPeriod, Cause c)
Schedules a build of this project, and returns aFuture
object to wait for the completion of the build.
-
scheduleBuild2
public QueueTaskFuture<R> scheduleBuild2(int quietPeriod, Action... actions)
Description copied from interface:ParameterizedJobMixIn.ParameterizedJob
Provides a standard implementation ofSCMTriggerItem.scheduleBuild2(int, hudson.model.Action...)
to schedule a build with the ability to wait for its result. That job method is often used during functional tests (JenkinsRule.assertBuildStatusSuccess
).- Specified by:
scheduleBuild2
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Parameters:
quietPeriod
- seconds to wait before starting (normally 0)actions
- various actions to associate with the scheduling, such asParametersAction
orCauseAction
- Returns:
- a handle by which you may wait for the build to complete (or just start); or null if the build was not actually scheduled for some reason
-
schedulePolling
public boolean schedulePolling()
Schedules a polling of this project.- See Also:
SCMTriggerItem.schedulePolling()
-
isInQueue
public boolean isInQueue()
Returns true if the build is in the queue.- Overrides:
isInQueue
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
getQueueItem
public Queue.Item getQueueItem()
Description copied from class:Job
If this job is in the build queue, return its item.- Overrides:
getQueueItem
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
getJDK
public JDK getJDK()
Gets the JDK that this project is configured with, or null.
-
setJDK
public void setJDK(JDK jdk) throws IOException
Overwrites the JDK setting.- Throws:
IOException
-
getAuthToken
public BuildAuthorizationToken getAuthToken()
- Specified by:
getAuthToken
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
_getRuns
public RunMap<R> _getRuns()
Description copied from class:Job
Gets all the runs. The resulting map must be treated immutable (by employing copy-on-write semantics.) The map is descending order, with newest builds at the top.- Specified by:
_getRuns
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn._getRuns()
-
removeRun
public void removeRun(R run)
Description copied from class:Job
Called fromRun
to remove it from this job. The files are deleted already. So all the callee needs to do is to remove a reference from thisJob
.- Specified by:
removeRun
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn.removeRun(RunT)
-
getBuild
public R getBuild(String id)
Looks up a build by its ID. More efficient implementation.- Overrides:
getBuild
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn.getBuild(java.lang.String)
-
getBuildByNumber
public R getBuildByNumber(int n)
More efficient implementation.- Overrides:
getBuildByNumber
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Parameters:
n
- The build number.- Returns:
- null if no such build exists.
- See Also:
Run.getNumber()
,LazyBuildMixIn.getBuildByNumber(int)
-
getFirstBuild
public R getFirstBuild()
Returns the oldest build in the record. More efficient implementation.- Overrides:
getFirstBuild
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn.getFirstBuild()
-
getLastBuild
@CheckForNull public R getLastBuild()
Description copied from class:Job
Returns the last build.- Overrides:
getLastBuild
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn.getLastBuild()
-
getNearestBuild
public R getNearestBuild(int n)
Description copied from class:Job
Gets the youngest build #m that satisfiesn<=m
. This is useful when you'd like to fetch a build but the exact build might be already gone (deleted, rotated, etc.)- Overrides:
getNearestBuild
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn.getNearestBuild(int)
-
getNearestOldBuild
public R getNearestOldBuild(int n)
Description copied from class:Job
Gets the latest build #m that satisfiesm<=n
. This is useful when you'd like to fetch a build but the exact build might be already gone (deleted, rotated, etc.)- Overrides:
getNearestOldBuild
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn.getNearestOldBuild(int)
-
getBuildClass
protected abstract Class<R> getBuildClass()
Type token for the corresponding build type. The build class must have two constructors: one taking this project type; and one taking this project type, thenFile
.
-
newBuild
protected R newBuild() throws IOException
Creates a new build of this project for immediate execution.- Throws:
IOException
-
loadBuild
protected R loadBuild(File dir) throws IOException
Loads an existing build record from disk.- Throws:
IOException
-
getActions
@NonNull public List<Action> getActions()
Gets actions contributed to this object.A new
Action
can be added byActionable.addAction(hudson.model.Action)
.If you are reading the list, rather than modifying it, use
Actionable.getAllActions()
instead. This method by default returns only persistent actions (though some subclasses override it to return an extended unmodifiable list).Note that this method returns a read-only view of
Action
s.BuildStep
s and others who want to add a project action should do so by implementingBuildStep.getProjectActions(AbstractProject)
.- Overrides:
getActions
in classActionable
- Returns:
- a possibly empty list
- See Also:
TransientProjectActionFactory
-
getLastBuiltOn
public Node getLastBuiltOn()
Gets theNode
where this project was last built on.- Specified by:
getLastBuiltOn
in interfaceSubTask
- Returns:
- null if no information is available (for example, if no build was done yet.)
-
getSameNodeConstraint
public Object getSameNodeConstraint()
Description copied from interface:SubTask
If a subset ofSubTask
s of aQueue.Task
needs to be collocated with otherSubTask
s, thoseSubTask
s should return the equal object here. If null, the execution unit isn't under a colocation constraint.- Specified by:
getSameNodeConstraint
in interfaceSubTask
- Returns:
- by default, null
-
getCauseOfBlockage
public CauseOfBlockage getCauseOfBlockage()
If the execution of this task should be blocked for temporary reasons, this method returns a non-null object explaining why.Otherwise this method returns null, indicating that the build can proceed right away.
This can be used to define mutual exclusion that goes beyond
ResourceActivity.getResourceList()
.A project must be blocked if its own previous build is in progress, or if the blockBuildWhenUpstreamBuilding option is true and an upstream project is building, but derived classes can also check other conditions.
- Specified by:
getCauseOfBlockage
in interfaceQueue.Task
- Returns:
- by default, null
-
getBuildingDownstream
public AbstractProject getBuildingDownstream()
Returns the project if any of the downstream project is either building, or queued and not blocked by an upstream/downstream project build.This means eventually there will be an automatic triggering of the given project (provided that all builds went smoothly.)
-
getBuildingUpstream
public AbstractProject getBuildingUpstream()
Returns the project if any of the upstream project is either building, or queued and not blocked by an upstream/downstream project build.This means eventually there will be an automatic triggering of the given project (provided that all builds went smoothly.)
-
getSubTasks
public List<SubTask> getSubTasks()
Description copied from interface:Queue.Task
Obtains theSubTask
s that constitute this task.The collection returned by this method must also contain the primary
SubTask
represented by thisQueue.Task
object itself as the first element. The returned value is read-only.At least size 1.
- Specified by:
getSubTasks
in interfaceQueue.Task
- Returns:
- by default,
this
-
createExecutable
@CheckForNull public R createExecutable() throws IOException
Description copied from interface:SubTask
Creates an object which performs the actual execution of the task.- Specified by:
createExecutable
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Specified by:
createExecutable
in interfaceSubTask
- Returns:
- executable to be launched or null if the executable cannot be
created (e.g.
AbstractProject
is disabled) - Throws:
IOException
- executable cannot be created
-
checkAbortPermission
public void checkAbortPermission()
Description copied from interface:Queue.Task
Checks the permission to see if the current user can abort this executable. Returns normally from this method if it's OK.NOTE: If you have implemented
AccessControlled
this should just becheckPermission(hudson.model.Item.CANCEL);
- Specified by:
checkAbortPermission
in interfaceQueue.Task
-
hasAbortPermission
public boolean hasAbortPermission()
Description copied from interface:Queue.Task
Works just likeQueue.Task.checkAbortPermission()
except it indicates the status by a return value, instead of exception. Also used by default forQueue.Item.hasCancelPermission()
.NOTE: If you have implemented
AccessControlled
this should just bereturn hasPermission(hudson.model.Item.CANCEL);
- Specified by:
hasAbortPermission
in interfaceQueue.Task
- Returns:
- false if the user doesn't have the permission.
-
getWorkspaceResource
@Deprecated public Resource getWorkspaceResource()
Deprecated.as of 1.319 Projects no longer have a fixed workspace, ands builds will find an available workspace viaWorkspaceList
for each build (furthermore, that happens after a build is started.) So aResource
representation for a workspace at the project level no longer makes sense.If you need to lock a workspace while you do some computation, see the source code of
pollSCMChanges(TaskListener)
for how to obtain a lock of a workspace throughWorkspaceList
.Gets theResource
that represents the workspace of this project. Useful for locking and mutual exclusion control.
-
getResourceList
public ResourceList getResourceList()
List of necessary resources to perform the build of this project.- Specified by:
getResourceList
in interfaceResourceActivity
- Returns:
- never null
-
getResourceActivities
protected Set<ResourceActivity> getResourceActivities()
Set of child resource activities of the build of this project (override in child projects).- Returns:
- The set of child resource activities of the build of this project.
-
checkout
public boolean checkout(AbstractBuild build, Launcher launcher, BuildListener listener, File changelogFile) throws IOException, InterruptedException
- Throws:
IOException
InterruptedException
-
pollSCMChanges
@Deprecated public boolean pollSCMChanges(TaskListener listener)
Deprecated.as of 1.346 Usepoll(TaskListener)
instead.Checks if there's any update in SCM, and returns true if any is found.
-
poll
public PollingResult poll(TaskListener listener)
Checks if there's any update in SCM, and returns true if any is found.The implementation is responsible for ensuring mutual exclusion between polling and builds if necessary.
- Since:
- 1.345
-
hasParticipant
public boolean hasParticipant(User user)
Returns true if this user has made a commit to this project.- Since:
- 1.191
-
getScm
@Exported public SCM getScm()
-
setScm
public void setScm(SCM scm) throws IOException
- Throws:
IOException
-
addTrigger
public void addTrigger(Trigger<?> trigger) throws IOException
- Throws:
IOException
-
removeTrigger
public void removeTrigger(TriggerDescriptor trigger) throws IOException
- Throws:
IOException
-
addToList
protected final <T extends Describable<T>> void addToList(T item, List<T> collection) throws IOException
- Throws:
IOException
-
removeFromList
protected final <T extends Describable<T>> void removeFromList(Descriptor<T> item, List<T> collection) throws IOException
- Throws:
IOException
-
getTriggers
public Map<TriggerDescriptor,Trigger<?>> getTriggers()
Description copied from interface:TriggeredItem
Gets currently configured triggers. You may use<p:config-trigger/>
to configure them.- Specified by:
getTriggers
in interfaceTriggeredItem
- Returns:
- a map from trigger kind to instance
-
getTrigger
public <T extends Trigger> T getTrigger(Class<T> clazz)
Gets the specific trigger, or null if the property is not configured for this job.
-
isFingerprintConfigured
public abstract boolean isFingerprintConfigured()
True if the builds of this project producesFingerprint
records.
-
getDownstreamProjects
public final List<AbstractProject> getDownstreamProjects()
Gets the otherAbstractProject
s that should be built when a build of this project is completed.
-
getDownstreamProjectsForApi
@Exported(name="downstreamProjects") @Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public List<AbstractProject> getDownstreamProjectsForApi()
-
getUpstreamProjects
public final List<AbstractProject> getUpstreamProjects()
-
getUpstreamProjectsForApi
@Exported(name="upstreamProjects") @Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public List<AbstractProject> getUpstreamProjectsForApi()
-
getBuildTriggerUpstreamProjects
public final List<AbstractProject> getBuildTriggerUpstreamProjects()
Returns only those upstream projects that definesBuildTrigger
to this project. This is a subset ofgetUpstreamProjects()
No longer used in the UI.
- Returns:
- A List of upstream projects that has a
BuildTrigger
to this project.
-
getTransitiveUpstreamProjects
public final Set<AbstractProject> getTransitiveUpstreamProjects()
Gets all the upstream projects including transitive upstream projects.- Since:
- 1.138
-
getTransitiveDownstreamProjects
public final Set<AbstractProject> getTransitiveDownstreamProjects()
Gets all the downstream projects including transitive downstream projects.- Since:
- 1.138
-
getRelationship
public SortedMap<Integer,Fingerprint.RangeSet> getRelationship(AbstractProject that)
Gets the dependency relationship map between this project (as the source) and that project (as the sink.)- Returns:
- can be empty but not null. build number of this project to the build numbers of that project.
-
buildDependencyGraph
protected void buildDependencyGraph(DependencyGraph graph)
Builds the dependency graph. Since 1.558, not abstract and by default includes dependencies contributed bytriggers()
.
-
makeSearchIndex
protected SearchIndexBuilder makeSearchIndex()
Description copied from class:AbstractModelObject
Default implementation that returns empty index.- Overrides:
makeSearchIndex
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
createHistoryWidget
protected HistoryWidget createHistoryWidget()
- Overrides:
createHistoryWidget
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- See Also:
LazyBuildMixIn.createHistoryWidget()
-
doBuild
@Deprecated public void doBuild(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException
Deprecated.- Throws:
IOException
javax.servlet.ServletException
-
getDelay
@Deprecated public int getDelay(org.kohsuke.stapler.StaplerRequest req) throws javax.servlet.ServletException
Deprecated.as of 1.489 InjectTimeDuration
.Computes the delay by taking the default value and the override in the request parameter into the account.- Throws:
javax.servlet.ServletException
-
doBuildWithParameters
@Deprecated public void doBuildWithParameters(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException
Deprecated.- Throws:
IOException
javax.servlet.ServletException
-
doPolling
public void doPolling(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException
Description copied from interface:ParameterizedJobMixIn.ParameterizedJob
Schedules a new SCM polling command.- Specified by:
doPolling
in interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Throws:
IOException
javax.servlet.ServletException
-
submit
protected void submit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException, Descriptor.FormException
Description copied from class:Job
Derived class can override this to perform additional config submission work.- Overrides:
submit
in classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
- Throws:
IOException
javax.servlet.ServletException
Descriptor.FormException
-
buildDescribable
@Deprecated protected final <T extends Describable<T>> List<T> buildDescribable(org.kohsuke.stapler.StaplerRequest req, List<? extends Descriptor<T>> descriptors, String prefix) throws Descriptor.FormException, javax.servlet.ServletException
Deprecated.As of 1.261. UsebuildDescribable(StaplerRequest, List)
instead.- Throws:
Descriptor.FormException
javax.servlet.ServletException
-
buildDescribable
protected final <T extends Describable<T>> List<T> buildDescribable(org.kohsuke.stapler.StaplerRequest req, List<? extends Descriptor<T>> descriptors) throws Descriptor.FormException, javax.servlet.ServletException
- Throws:
Descriptor.FormException
javax.servlet.ServletException
-
doWs
public DirectoryBrowserSupport doWs(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException, InterruptedException
Serves the workspace files.- Throws:
IOException
javax.servlet.ServletException
InterruptedException
-
doDoWipeOutWorkspace
public org.kohsuke.stapler.HttpResponse doDoWipeOutWorkspace() throws IOException, javax.servlet.ServletException, InterruptedException
Wipes out the workspace.- Throws:
IOException
javax.servlet.ServletException
InterruptedException
-
findNearest
@CheckForNull public static AbstractProject findNearest(String name)
Finds aAbstractProject
that has the name closest to the given name.
-
findNearest
@CheckForNull public static AbstractProject findNearest(String name, ItemGroup context)
Finds aAbstractProject
whose name (when referenced from the specified context) is closest to the given name.- Since:
- 1.419
- See Also:
Items.findNearest(java.lang.Class<T>, java.lang.String, hudson.model.ItemGroup)
-
resolveForCLI
@CLIResolver public static AbstractProject resolveForCLI(String name) throws org.kohsuke.args4j.CmdLineException
Used for CLI binding.- Throws:
org.kohsuke.args4j.CmdLineException
-
getCustomWorkspace
public String getCustomWorkspace()
-
setCustomWorkspace
public void setCustomWorkspace(String customWorkspace) throws IOException
User-specified workspace directory, or null if it's up to Jenkins.Normally a project uses the workspace location assigned by its parent container, but sometimes people have builds that have hard-coded paths.
This is not
File
because it may have to hold a path representation on another OS.If this path is relative, it's resolved against
Node.getRootPath()
on the node where this workspace is prepared.- Throws:
IOException
- Since:
- 1.410
-
-