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>,Loadable,ModelObjectWithChildren,ModelObjectWithContextMenu,ParameterizedJobMixIn.ParameterizedJob<P,R>,TriggeredItem,OnMaster,HasWidgets,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 ofJobs that build software. For now this is primarily the common part ofProjectand MavenModule.- Author:
- Kohsuke Kawaguchi
- See Also:
AbstractBuild
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractProject.AbstractProjectDescriptorAbstractProjectsubtypes should implement this base class as a descriptor.static classAbstractProject.BecauseOfBuildInProgressDeprecated.useBlockedBecauseOfBuildInProgressinstead.static classAbstractProject.BecauseOfDownstreamBuildInProgressBecause the downstream build is in progress, and we are configured to wait for that.static classAbstractProject.BecauseOfUpstreamBuildInProgressBecause the upstream build is in progress, and we are configured to wait for that.static classAbstractProject.LabelValidatorDeprecated.UseLabelValidatorinstead.-
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 PermissionABORTDeprecated.Just useItem.CANCEL.protected booleanblockBuildWhenDownstreamBuildingTrue to keep builds of this project in queue when downstream projects are building.protected booleanblockBuildWhenUpstreamBuildingTrue to keep builds of this project in queue when upstream projects are building.static AlternativeUiTextProvider.Message<AbstractProject>BUILD_NOW_TEXTDeprecated.protected RunMap<R>buildsAll the builds keyed by their build number.protected booleandisabledTrue to suspend new builds.protected List<Action>transientActionsActions contributed from subsidiary objects associated withAbstractProject, such as from triggers, builders, publishers, etc.protected DescribableList<Trigger<?>,TriggerDescriptor>triggersList of allTriggers 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 protectedAbstractProject(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.voidaddProperty(JobProperty<? super P> jobProp)AddsJobProperty.protected <T extends Describable<T>>
voidaddToList(T item, List<T> collection)voidaddTrigger(Trigger<?> trigger)booleanblockBuildWhenDownstreamBuilding()booleanblockBuildWhenUpstreamBuilding()protected voidbuildDependencyGraph(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.voidcheckAbortPermission()Checks the permission to see if the current user can abort this executable.booleancheckout(AbstractBuild build, Launcher launcher, BuildListener listener, File changelogFile)RcreateExecutable()Creates an object which performs the actual execution of the task.protected HistoryWidgetcreateHistoryWidget()protected List<Action>createTransientActions()voiddisable()voiddoBuild(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)voiddoBuildWithParameters(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)FormValidationdoCheckRetryCount(String value)Validates the retry count RegexvoiddoConfigSubmit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)Accepts submission from the configuration page.org.kohsuke.stapler.HttpResponsedoDoWipeOutWorkspace()Wipes out the workspace.voiddoPolling(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)Schedules a new SCM polling command.DirectoryBrowserSupportdoWs(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)Serves the workspace files.voidenable()static AbstractProjectfindNearest(String name)Finds aAbstractProjectthat has the name closest to the given name.static AbstractProjectfindNearest(String name, ItemGroup context)Finds aAbstractProjectwhose name (when referenced from the specified context) is closest to the given name.List<Action>getActions()Gets actions contributed to this object.LabelgetAssignedLabel()If this project is configured to be always built on this node, return thatNode.StringgetAssignedLabelString()Gets the textual representation of the assigned label as it was entered by the user.BuildAuthorizationTokengetAuthToken()RgetBuild(String id)Looks up a build by its ID.RgetBuildByNumber(int n)More efficient implementation.protected abstract Class<R>getBuildClass()Type token for the corresponding build type.AbstractProjectgetBuildingDownstream()Returns the project if any of the downstream project is either building, or queued and not blocked by an upstream/downstream project build.AbstractProjectgetBuildingUpstream()Returns the project if any of the upstream project is either building, or queued and not blocked by an upstream/downstream project build.StringgetBuildNowText()Gets the human readable display name to be rendered in the "Build Now" link.List<AbstractProject>getBuildTriggerUpstreamProjects()Returns only those upstream projects that definesBuildTriggerto this project.CauseOfBlockagegetCauseOfBlockage()If the execution of this task should be blocked for temporary reasons, this method returns a non-null object explaining why.StringgetCustomWorkspace()intgetDelay(org.kohsuke.stapler.StaplerRequest req)Deprecated.as of 1.489 InjectTimeDuration.List<AbstractProject>getDownstreamProjects()Gets the otherAbstractProjects that should be built when a build of this project is completed.List<AbstractProject>getDownstreamProjectsForApi()EnvVarsgetEnvironment(Node node, TaskListener listener)Creates an environment variable override for launching processes for this project.protected List<R>getEstimatedDurationCandidates()Returns candidate build for calculating the estimated duration of the current run.RgetFirstBuild()Returns the oldest build in the record.booleangetHasCustomQuietPeriod()BallColorgetIconColor()Used as the color of the status ball for the project.JDKgetJDK()Gets the JDK that this project is configured with, or null.RgetLastBuild()Returns the last build.NodegetLastBuiltOn()Gets theNodewhere this project was last built on.LazyBuildMixIn<P,R>getLazyBuildMixIn()FilePathgetModuleRoot()Deprecated.as of 1.319 SeegetWorkspace()for a migration strategy.FilePath[]getModuleRoots()Deprecated.as of 1.319 SeegetWorkspace()for a migration strategy.RgetNearestBuild(int n)Gets the youngest build #m that satisfiesn<=m.RgetNearestOldBuild(int n)Gets the latest build #m that satisfiesm<=n.List<ProminentProjectAction>getProminentActions()StringgetPronoun()Get the term used in the UI to represent this kind ofAbstractProject.abstract DescribableList<Publisher,Descriptor<Publisher>>getPublishersList()Returns the live list of allPublishers configured for this project.Queue.ItemgetQueueItem()If this job is in the build queue, return its item.intgetQuietPeriod()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).ResourceListgetResourceList()List of necessary resources to perform the build of this project.AbstractProject<?,?>getRootProject()Gets the nearest ancestorTopLevelItemthat's also anAbstractProject.ObjectgetSameNodeConstraint()If a subset ofSubTasks of aQueue.Taskneeds to be collocated with otherSubTasks, thoseSubTasks should return the equal object here.SCMgetScm()intgetScmCheckoutRetryCount()SCMCheckoutStrategygetScmCheckoutStrategy()RgetSomeBuildWithWorkspace()Gets some build that has a live workspace.FilePathgetSomeWorkspace()Gets a workspace for some build of this project.List<SubTask>getSubTasks()Obtains theSubTasks 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()FilePathgetWorkspace()Deprecated.as of 1.319 To support concurrent builds of the same project, this method is moved toAbstractBuild.ResourcegetWorkspaceResource()Deprecated.as of 1.319 Projects no longer have a fixed workspace, ands builds will find an available workspace viaWorkspaceListfor each build (furthermore, that happens after a build is started.) So aResourcerepresentation for a workspace at the project level no longer makes sense.booleanhasAbortPermission()Works just likeQueue.Task.checkAbortPermission()except it indicates the status by a return value, instead of exception.booleanhasCustomScmCheckoutRetryCount()booleanhasParticipant(User user)Returns true if this user has made a commit to this project.booleanisBuildable()Returns true if we should display "build now" iconbooleanisConcurrentBuild()Does this project perform concurrent builds?booleanisConfigurable()Used insidepanel.jellyto decide whether to display the config/delete/build links.booleanisDisabled()abstract booleanisFingerprintConfigured()True if the builds of this project producesFingerprintrecords.booleanisInQueue()Returns true if the build is in the queue.protected RloadBuild(File dir)Loads an existing build record from disk.protected SearchIndexBuildermakeSearchIndex()Default implementation that returns empty index.protected RnewBuild()Creates a new build of this project for immediate execution.voidonCreatedFromScratch()When an item is created from scratch (instead of copied), this method will be invoked.voidonLoad(ItemGroup<? extends Item> parent, String name)Called right after when aItemis loaded from disk.protected voidperformDelete()Does the real job of deleting the item.PollingResultpoll(TaskListener listener)Checks if there's any update in SCM, and returns true if any is found.booleanpollSCMChanges(TaskListener listener)Deprecated.as of 1.346 Usepoll(TaskListener)instead.protected <T extends Describable<T>>
voidremoveFromList(Descriptor<T> item, List<T> collection)voidremoveRun(R run)Called fromRunto remove it from this job.voidremoveTrigger(TriggerDescriptor trigger)static AbstractProjectresolveForCLI(String name)Used for CLI binding.voidsave()Save the settings to a file.booleanscheduleBuild(int quietPeriod, Cause c, Action... actions)Schedules a build.QueueTaskFuture<R>scheduleBuild2(int quietPeriod)Schedules a build, and returns aFutureobject 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 aFutureobject 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 aFutureobject 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 aFutureobject to wait for the completion of the build.booleanschedulePolling()Schedules a polling of this project.voidsetAssignedLabel(Label l)Sets the assigned label.voidsetAssignedNode(Node l)Assigns this job to the given node.voidsetBlockBuildWhenDownstreamBuilding(boolean b)voidsetBlockBuildWhenUpstreamBuilding(boolean b)voidsetConcurrentBuild(boolean b)voidsetCustomWorkspace(String customWorkspace)User-specified workspace directory, or null if it's up to Jenkins.voidsetDisabled(boolean disabled)voidsetJDK(JDK jdk)Overwrites the JDK setting.voidsetQuietPeriod(Integer seconds)Sets the custom quiet period of this project, or revert to the global default if null is given.voidsetScm(SCM scm)voidsetScmCheckoutStrategy(SCMCheckoutStrategy scmCheckoutStrategy)protected voidsubmit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)Derived class can override this to perform additional config submission work.booleansupportsMakeDisabled()Specifies whether this project may be disabled by the user.protected DescribableList<Trigger<?>,TriggerDescriptor>triggers()protected voidupdateTransientActions()effectively deprecated.-
Methods inherited from class hudson.model.Job
assignBuildNumber, checkRename, delete, doBuildStatus, doChildrenContextMenu, doDescription, doDoRename, doRssAll, doRssChangelog, doRssFailed, fastUpdateNextBuildNumber, getACL, getAllJobs, getAllProperties, getBuildDir, getBuildDiscarder, getBuildForCLI, getBuildHealth, getBuildHealthReports, getBuilds, getBuilds, getBuildsAsMap, getBuildsByTimestamp, getBuildStatusIconClassName, getBuildStatusUrl, getBuildTimeGraph, getCharacteristicEnvVars, getDynamic, getEstimatedDuration, getLastBuildsOverThreshold, getLastCompletedBuild, getLastFailedBuild, getLastStableBuild, getLastSuccessfulBuild, getLastUnstableBuild, getLastUnsuccessfulBuild, getLogRotator, getNewBuilds, getNextBuildNumber, getOverrides, getPermalinks, getProperties, getProperty, getProperty, getTimeline, 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, load, 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 jenkins.widgets.HasWidgets
getWidget, getWidgets
-
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 allTriggers for this project.
-
transientActions
@CopyOnWrite protected transient volatile List<Action> transientActions
Actions 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:
getLazyBuildMixInin interfaceLazyBuildMixIn.LazyLoadingJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
save
public void save() throws IOExceptionDescription copied from class:AbstractItemSave the settings to a file.- Specified by:
savein interfaceItem- Specified by:
savein interfaceSaveable- Overrides:
savein 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:ItemWhen an item is created from scratch (instead of copied), this method will be invoked. Used as the post-construction initialization.- Specified by:
onCreatedFromScratchin interfaceItem- Overrides:
onCreatedFromScratchin 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:AbstractItemCalled right after when aItemis loaded from disk. This is an opportunity to do a post load processing.- Specified by:
onLoadin interfaceItem- Overrides:
onLoadin 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 thenameof 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:JobCreates 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:
getEnvironmentin 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:
IOExceptionInterruptedException
-
performDelete
protected void performDelete() throws IOException, InterruptedExceptionDescription copied from class:AbstractItemDoes the real job of deleting the item.- Overrides:
performDeletein classAbstractItem- Throws:
IOExceptionInterruptedException
-
isConcurrentBuild
@Exported public boolean isConcurrentBuild()
Does this project perform concurrent builds?- Specified by:
isConcurrentBuildin 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:
getAssignedLabelin 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 byViews. 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:
getPronounin 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:
getBuildNowTextin 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 ancestorTopLevelItemthat'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.xmland 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.ParameterizedJobQuiet period for the job.- Specified by:
getQuietPeriodin 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:JobReturns true if we should display "build now" icon- Specified by:
isBuildablein interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- Specified by:
isBuildablein classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
isConfigurable
public boolean isConfigurable()
Used insidepanel.jellyto 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:
isDisabledin 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:
setDisabledin 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:
IOExceptionjavax.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:
supportsMakeDisabledin 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:JobUsed as the color of the status ball for the project.- Overrides:
getIconColorin 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 allPublishers 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:JobAddsJobProperty.- Overrides:
addPropertyin 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.FormExceptionDescription copied from class:JobAccepts submission from the configuration page.- Overrides:
doConfigSubmitin classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- Throws:
IOExceptionjavax.servlet.ServletExceptionDescriptor.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 aFutureobject 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 aFutureobject 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 aFutureobject 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 aFutureobject to wait for the completion of the build.
-
scheduleBuild2
public QueueTaskFuture<R> scheduleBuild2(int quietPeriod, Action... actions)
Description copied from interface:ParameterizedJobMixIn.ParameterizedJobProvides 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:
scheduleBuild2in 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 asParametersActionorCauseAction- 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:
isInQueuein classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
getQueueItem
public Queue.Item getQueueItem()
Description copied from class:JobIf this job is in the build queue, return its item.- Overrides:
getQueueItemin 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:
getAuthTokenin interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
_getRuns
public RunMap<R> _getRuns()
Description copied from class:JobGets 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:
_getRunsin 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:JobCalled fromRunto 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:
removeRunin 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:
getBuildin 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:
getBuildByNumberin 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:
getFirstBuildin classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- See Also:
LazyBuildMixIn.getFirstBuild()
-
getLastBuild
@CheckForNull public R getLastBuild()
Description copied from class:JobReturns the last build.- Overrides:
getLastBuildin 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:JobGets 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:
getNearestBuildin 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:JobGets 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:
getNearestOldBuildin classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- See Also:
LazyBuildMixIn.getNearestOldBuild(int)
-
getEstimatedDurationCandidates
protected List<R> getEstimatedDurationCandidates()
Description copied from class:JobReturns candidate build for calculating the estimated duration of the current run. Returns the 3 last successful (stable or unstable) builds, if there are any. Failing to find 3 of those, it will return up to 3 last unsuccessful builds. In any case it will not go more than 6 builds into the past to avoid costly build loading.- Overrides:
getEstimatedDurationCandidatesin classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- See Also:
LazyBuildMixIn.getEstimatedDurationCandidates()
-
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
Actioncan 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
Actions.BuildSteps and others who want to add a project action should do so by implementingBuildStep.getProjectActions(AbstractProject).- Overrides:
getActionsin classActionable- Returns:
- a possibly empty list
- See Also:
TransientProjectActionFactory
-
getLastBuiltOn
public Node getLastBuiltOn()
Gets theNodewhere this project was last built on.- Specified by:
getLastBuiltOnin interfaceSubTask- Returns:
- null if no information is available (for example, if no build was done yet.)
-
getSameNodeConstraint
public Object getSameNodeConstraint()
Description copied from interface:SubTaskIf a subset ofSubTasks of aQueue.Taskneeds to be collocated with otherSubTasks, thoseSubTasks should return the equal object here. If null, the execution unit isn't under a colocation constraint.- Specified by:
getSameNodeConstraintin 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:
getCauseOfBlockagein 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.TaskObtains theSubTasks that constitute this task.The collection returned by this method must also contain the primary
SubTaskrepresented by thisQueue.Taskobject itself as the first element. The returned value is read-only.At least size 1.
- Specified by:
getSubTasksin interfaceQueue.Task- Returns:
- by default,
this
-
createExecutable
@CheckForNull public R createExecutable() throws IOException
Description copied from interface:SubTaskCreates an object which performs the actual execution of the task.- Specified by:
createExecutablein interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- Specified by:
createExecutablein interfaceSubTask- Returns:
- executable to be launched or null if the executable cannot be
created (e.g.
AbstractProjectis disabled) - Throws:
IOException- executable cannot be created
-
checkAbortPermission
public void checkAbortPermission()
Description copied from interface:Queue.TaskChecks 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
AccessControlledthis defaults tocheckPermission(hudson.model.Item.CANCEL);- Specified by:
checkAbortPermissionin interfaceQueue.Task
-
hasAbortPermission
public boolean hasAbortPermission()
Description copied from interface:Queue.TaskWorks just likeQueue.Task.checkAbortPermission()except it indicates the status by a return value, instead of exception. Also used by default forQueueItem.hasCancelPermission().NOTE: If you have implemented
AccessControlledthis returns by defaultreturn hasPermission(hudson.model.Item.CANCEL);- Specified by:
hasAbortPermissionin 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 viaWorkspaceListfor each build (furthermore, that happens after a build is started.) So aResourcerepresentation 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 theResourcethat 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:
getResourceListin 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:
IOExceptionInterruptedException
-
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:TriggeredItemGets currently configured triggers. You may use<p:config-trigger/>to configure them.- Specified by:
getTriggersin 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 producesFingerprintrecords.
-
getDownstreamProjects
public final List<AbstractProject> getDownstreamProjects()
Gets the otherAbstractProjects 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 definesBuildTriggerto this project. This is a subset ofgetUpstreamProjects()No longer used in the UI.
- Returns:
- A List of upstream projects that has a
BuildTriggerto 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:AbstractModelObjectDefault implementation that returns empty index.- Overrides:
makeSearchIndexin classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
createHistoryWidget
protected HistoryWidget createHistoryWidget()
- Overrides:
createHistoryWidgetin classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>
-
doBuild
@Deprecated public void doBuild(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException
Deprecated.- Throws:
IOExceptionjavax.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:
IOExceptionjavax.servlet.ServletException
-
doPolling
public void doPolling(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletExceptionDescription copied from interface:ParameterizedJobMixIn.ParameterizedJobSchedules a new SCM polling command.- Specified by:
doPollingin interfaceParameterizedJobMixIn.ParameterizedJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- Throws:
IOExceptionjavax.servlet.ServletException
-
submit
protected void submit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException, Descriptor.FormExceptionDescription copied from class:JobDerived class can override this to perform additional config submission work.- Overrides:
submitin classJob<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>>- Throws:
IOExceptionjavax.servlet.ServletExceptionDescriptor.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.FormExceptionjavax.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.FormExceptionjavax.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:
IOExceptionjavax.servlet.ServletExceptionInterruptedException
-
doDoWipeOutWorkspace
public org.kohsuke.stapler.HttpResponse doDoWipeOutWorkspace() throws IOException, javax.servlet.ServletException, InterruptedExceptionWipes out the workspace.- Throws:
IOExceptionjavax.servlet.ServletExceptionInterruptedException
-
findNearest
@CheckForNull public static AbstractProject findNearest(String name)
Finds aAbstractProjectthat has the name closest to the given name.
-
findNearest
@CheckForNull public static AbstractProject findNearest(String name, ItemGroup context)
Finds aAbstractProjectwhose 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
Filebecause 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
-
-