提交 7c16d8dc 编写于 作者: J Jesse Glick

Fix Javadoc generation on JDK 8.

上级 55a0f39a
......@@ -44,7 +44,7 @@ for(i = 0; i < buildTypes.size(); i++) {
// The -Dmaven.repo.local=${pwd()}/.repository means that Maven will create a
// .repository directory at the root of the build (which it gets from the
// pwd() Workflow call) and use that for the local Maven repository.
def mvnCmd = "mvn -Pdebug -U clean install ${runTests ? '-Dmaven.test.failure.ignore=true' : '-DskipTests'} -V -B -Dmaven.repo.local=${pwd()}/.repository"
def mvnCmd = "mvn -Pdebug -U clean install javadoc:javadoc ${runTests ? '-Dmaven.test.failure.ignore=true' : '-DskipTests'} -V -B -Dmaven.repo.local=${pwd()}/.repository"
if(isUnix()) {
sh mvnCmd
} else {
......
......@@ -61,7 +61,7 @@ public class FullDuplexHttpStream {
/**
* @param base the base URL of Jenkins
* @param target
* @param relativeTarget
* The endpoint that we are making requests to.
* @param authorization
* The value of the authorization header, if non-null.
......
......@@ -72,8 +72,8 @@ public abstract class AbstractMarkupText {
* Adds a start tag and end tag at the specified position.
*
* <p>
* For example, if the text was "abc", then <tt>addMarkup(1,2,"&lt;b>","&lt;/b>")</tt>
* would generate <tt>"a&lt;b>b&lt;/b>c"</tt>
* For example, if the text was "abc", then {@code addMarkup(1,2,"<b>","</b>")}
* would generate {@code"a<b>b</b>c"}
*/
public abstract void addMarkup( int startPos, int endPos, String startTag, String endTag );
......
......@@ -392,7 +392,7 @@ public class ClassicPluginStrategy implements PluginStrategy {
* Gets the minimum required version for the current version of Jenkins.
*
* @return the minimum required version for the current version of Jenkins.
* @sice 2.16
* @since 2.16
*/
public VersionNumber getRequiredVersion() {
return new VersionNumber(requiredVersion);
......
......@@ -23,6 +23,7 @@
*/
package hudson;
import hudson.tasks.UserNameResolver;
import jenkins.model.Jenkins;
import hudson.util.CopyOnWriteList;
......
......@@ -167,7 +167,7 @@ import static hudson.Util.isSymlink;
* }
* // if 'file' is on a different node, this FileCallable will
* // be transferred to that node and executed there.
* private static final class Freshen implements FileCallable&lt;Void> {
* private static final class Freshen implements FileCallable&lt;Void&gt; {
* private static final long serialVersionUID = 1;
* &#64;Override public Void invoke(File f, VirtualChannel channel) {
* // f and file represent the same thing
......@@ -933,7 +933,7 @@ public final class FilePath implements Serializable {
/**
* Code that gets executed on the machine where the {@link FilePath} is local.
* Used to act on {@link FilePath}.
* <strong>Warning:</code> implementations must be serializable, so prefer a static nested class to an inner class.
* <strong>Warning:</strong> implementations must be serializable, so prefer a static nested class to an inner class.
*
* <p>
* Subtypes would likely want to extend from either {@link MasterToSlaveCallable}
......@@ -2314,7 +2314,7 @@ public final class FilePath implements Serializable {
}
/**
* Same as {@link #validateFileMask(String, int, boolean)} with caseSensitive set to true
* Same as {@link #validateAntFileMask(String, int, boolean)} with caseSensitive set to true
*/
public String validateAntFileMask(final String fileMasks, final int bound) throws IOException, InterruptedException {
return validateAntFileMask(fileMasks, bound, true);
......@@ -2523,7 +2523,7 @@ public final class FilePath implements Serializable {
}
/**
* Shortcut for {@link #validateFileMask(String,true,boolean)} as the left-hand side can be null.
* Shortcut for {@link #validateFileMask(String,boolean,boolean)} with {@code errorIfNotExist} true, as the left-hand side can be null.
*/
public static FormValidation validateFileMask(@CheckForNull FilePath path, String value, boolean caseSensitive) throws IOException {
if(path==null) return FormValidation.ok();
......
......@@ -53,7 +53,7 @@ import java.io.OutputStream;
* STILL A WORK IN PROGRESS. SUBJECT TO CHANGE! DO NOT EXTEND.
*
* TODO: is this per {@link Computer}? Per {@link Job}?
* -> probably per agent.
* probably per agent.
*
* <h2>Design Problems</h2>
* <ol>
......
......@@ -1798,7 +1798,7 @@ public class Functions {
}
/**
* Generate a series of &lt;script> tags to include <tt>script.js</tt>
* Generate a series of {@code <script>} tags to include {@code script.js}
* from {@link ConsoleAnnotatorFactory}s and {@link ConsoleAnnotationDescriptor}s.
*/
public static String generateConsoleAnnotationScriptAndStylesheet() {
......@@ -1839,7 +1839,7 @@ public class Functions {
}
/**
* Used by &lt;f:password/> so that we send an encrypted value to the client.
* Used by {@code <f:password/>} so that we send an encrypted value to the client.
*/
public String getPasswordValue(Object o) {
if (o==null) return null;
......@@ -1997,7 +1997,7 @@ public class Functions {
/**
* Get a string that can be safely broken to several lines when necessary.
*
* This implementation inserts &lt;wbr> tags into string. It allows browsers
* This implementation inserts {@code <wbr>} tags into string. It allows browsers
* to wrap line before any sequence of punctuation characters or anywhere
* in the middle of prolonged sequences of word characters.
*
......
......@@ -131,7 +131,7 @@ public class MarkupText extends AbstractMarkupText {
}
/**
* Surrounds this subtext with &lt;a>...&lt;/a>.
* Surrounds this subtext with {@code <a>…</a>}.
*/
public void href(String url) {
addHyperlink(0,length(),url);
......@@ -292,8 +292,8 @@ public class MarkupText extends AbstractMarkupText {
* Returns the fully marked-up text.
*
* @param preEscape
* If true, the escaping is for the &lt;PRE> context. This leave SP and CR/LF intact.
* If false, the escape is for the normal HTML, thus SP becomes &amp;nbsp; and CR/LF becomes &lt;BR>
* If true, the escaping is for the {@code <PRE>} context. This leave SP and CR/LF intact.
* If false, the escape is for the normal HTML, thus SP becomes &amp;nbsp; and CR/LF becomes {@code <BR>}
*/
public String toString(boolean preEscape) {
if(tags.isEmpty())
......
......@@ -62,7 +62,7 @@ public enum Platform {
}
/**
* Returns true if we run on Mac OS X >= 10.6
* Returns true if we run on Mac OS X 10.6
*/
public static boolean isSnowLeopardOrLater() {
try {
......
......@@ -196,7 +196,7 @@ public abstract class Plugin implements Saveable {
*
* <p>
* The following is a sample <tt>config.jelly</tt> that you can start yours with:
* <pre><xmp>
* <pre>{@code <xmp>
* <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
* <f:section title="Locale">
* <f:entry title="${%Default Language}" help="/plugin/locale/help/default-language.html">
......@@ -204,7 +204,7 @@ public abstract class Plugin implements Saveable {
* </f:entry>
* </f:section>
* </j:jelly>
* </xmp></pre>
* </xmp>}</pre>
*
* <p>
* This allows you to access data as {@code formData.getString("systemLocale")}
......
......@@ -503,7 +503,7 @@ public abstract class Proc {
/**
* An instance of {@link Proc}, which has an internal workaround for JENKINS-23271.
* It presumes that the instance of the object is guaranteed to be used after the {@link Proc#join()} call.
* See <a href="https://jenkins-ci.org/issue/23271">JENKINS-23271></a>
* See <a href="https://jenkins-ci.org/issue/23271">JENKINS-23271</a>
* @author Oleg Nenashev
*/
@Restricted(NoExternalUse.class)
......
......@@ -269,7 +269,7 @@ public class OldDataMonitor extends AdministrativeMonitor {
/**
* Does this version range contain a version more than the given number of releases ago?
* @param threshold Number of releases
* @return True if the major version# differs or the minor# differs by >= threshold
* @return True if the major version# differs or the minor# differs by threshold
*/
public boolean isOld(int threshold) {
return currentVersion != null && min != null && (currentVersion.digit(0) > min.digit(0)
......
......@@ -44,7 +44,7 @@ import org.kohsuke.stapler.interceptor.RequirePOST;
*
* <p>
* Have the JavaScript make an AJAX call, to which we respond with 302 redirect. If the reverse proxy
* is done correctly, this will be handled by {@link #doFoo()}, but otherwise we'll report that as an error.
* is done correctly, this will be handled by web methods, but otherwise we'll report that as an error.
* Unfortunately, {@code XmlHttpRequest} doesn't expose properties that allow the client-side JavaScript
* to learn the details of the failure, so we have to make do with limited information.
*
......
......@@ -1053,7 +1053,7 @@ public abstract class AbstractBuild<P extends AbstractProject<P,R>,R extends Abs
}
/**
* @deprecated Use {@link #getAction(Class)} on {@link AbstractTestResultAction}.
* @deprecated Use {@link #getAction(Class)} on {@code AbstractTestResultAction}.
*/
@Deprecated
public Action getTestResultAction() {
......@@ -1065,7 +1065,7 @@ public abstract class AbstractBuild<P extends AbstractProject<P,R>,R extends Abs
}
/**
* @deprecated Use {@link #getAction(Class)} on {@link AggregatedTestResultAction}.
* @deprecated Use {@link #getAction(Class)} on {@code AggregatedTestResultAction}.
*/
@Deprecated
public Action getAggregatedTestResultAction() {
......
......@@ -136,7 +136,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet
/**
* Gets the term used in the UI to represent the kind of {@link Queue.Task} associated with this kind of
* {@link Item}. Must start with a capital letter. Defaults to "Build".
* @since2.50
* @since 2.50
*/
public String getTaskNoun() {
return AlternativeUiTextProvider.get(TASK_NOUN, this, Messages.AbstractItem_TaskNoun());
......
......@@ -56,11 +56,11 @@ import javax.annotation.CheckForNull;
* tweak from there. One of the use cases of this is to show nested actions, like where
* Jenkins show the option to wipe out the workspace inside the workspace link:
*
* <pre>
* &lt;l:task icon="icon-folder icon-md" href="${url}/ws/" title="${%Workspace}">
* &lt;l:task icon="icon-delete icon-md" href="${url}/wipeOutWorkspace" title="${%Wipe Out Workspace}" />
* &lt;/l:task>
* </pre>
* <pre>{@code
* <l:task icon="icon-folder icon-md" href="${url}/ws/" title="${%Workspace}">
* <l:task icon="icon-delete icon-md" href="${url}/wipeOutWorkspace" title="${%Wipe Out Workspace}" />
* </l:task>
* }</pre>
*
* <h2>Persistence</h2>
* <p>
......@@ -70,9 +70,9 @@ import javax.annotation.CheckForNull;
* when it's used with {@link Job}).
* <p>
* The {@link Actionable#replaceAction(Action)}, {@link Actionable#addOrReplaceAction(Action)}, and
* {@link Actionable#removeAction(Action)} methods use {@link Action#equals(Object)} to determine whether to update
* {@link Actionable#removeAction(Action)} methods use {@link Object#equals} to determine whether to update
* or replace or remove an {@link Action}. As such, {@link Action} subclasses that provide a deep
* {@link #equals(Object)} will assist in reducing the need for unnecessary persistence.
* {@link Object#equals} will assist in reducing the need for unnecessary persistence.
*
* @author Kohsuke Kawaguchi
*/
......
......@@ -28,6 +28,7 @@ import hudson.ExtensionList;
import hudson.Extension;
import hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson;
import hudson.triggers.SCMTrigger;
import hudson.triggers.TimerTrigger;
import java.util.Set;
import java.io.IOException;
......
......@@ -116,7 +116,7 @@ public abstract class Build <P extends Project<P,B>,B extends Build<P,B>>
/**
* @deprecated as of 1.467
* Override the {@link #run()} method by calling {@link #execute(RunExecution)} with
* Override the {@link #run()} method by calling {@link #execute(hudson.model.Run.RunExecution)} with
* proper execution object.
*/
@Restricted(NoExternalUse.class)
......
......@@ -284,7 +284,8 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces
/**
* This is where the log from the remote agent goes.
* The method also creates a log directory if required.
* @see #getLogDir(), #relocateOldLogs()
* @see #getLogDir()
* @see #relocateOldLogs()
*/
public @Nonnull File getLogFile() {
return new File(getLogDir(),"slave.log");
......
......@@ -990,7 +990,7 @@ public abstract class Descriptor<T extends Describable<T>> implements Saveable,
}
/**
* Used to build {@link Describable} instance list from &lt;f:hetero-list> tag.
* Used to build {@link Describable} instance list from {@code <f:hetero-list>} tag.
*
* @param req
* Request that represents the form submission.
......
......@@ -41,10 +41,9 @@ import javax.annotation.Nonnull;
* of {@link Job}s to compute values.
*
* <h2>Views</h2>
* <h4>buildEnv.groovy/.jelly</h4>
* <p>
* <h3>buildEnv.groovy/.jelly</h3>
* When Jenkins displays the help page listing all the environment variables available for a build, it does
* so by combining all the {@code buildEnv} views from this extension point. This view should use the &lt;t:buildEnvVar> tag
* so by combining all the {@code buildEnv} views from this extension point. This view should use the {@code <t:buildEnvVar>} tag
* to render a variable.
*
* <p>
......
......@@ -958,7 +958,7 @@ public class Executor extends Thread implements ModelObject {
/**
* Returns the estimated duration for the executable.
* Protects against {@link AbstractMethodError}s if the {@link Executable} implementation
* was compiled against Hudson < 1.383
* was compiled against Hudson prior to 1.383
*
* @deprecated as of 1.388
* Use {@link Executables#getEstimatedDurationFor(Queue.Executable)}
......
......@@ -23,6 +23,7 @@
*/
package hudson.model;
import hudson.slaves.SlaveComputer;
/**
* A listener for task related events from executors.
......
......@@ -84,7 +84,7 @@ public class HealthReport implements Serializable, Comparable<HealthReport> {
/**
* The path to the icon corresponding to this health score or <code>null</code> to use the default icon
* corresponding to the current health score.
* <p/>
* <p>
* If the path begins with a '/' then it will be the absolute path, otherwise the image is assumed to be in one of
* <code>/images/16x16/</code>, <code>/images/24x24/</code> or <code>/images/32x32/</code> depending on the icon
* size selected by the user.
......@@ -110,7 +110,7 @@ public class HealthReport implements Serializable, Comparable<HealthReport> {
* @param score The percentage health score (from 0 to 100 inclusive).
* @param iconUrl The path to the icon corresponding to this {@link Action}'s health or <code>null</code> to
* display the default icon corresponding to the current health score.
* <p/>
* <p>
* If the path begins with a '/' then it will be the absolute path, otherwise the image is
* assumed to be in one of <code>/images/16x16/</code>, <code>/images/24x24/</code> or
* <code>/images/32x32/</code> depending on the icon size selected by the user.
......@@ -131,7 +131,7 @@ public class HealthReport implements Serializable, Comparable<HealthReport> {
* @param score The percentage health score (from 0 to 100 inclusive).
* @param iconUrl The path to the icon corresponding to this {@link Action}'s health or <code>null</code> to
* display the default icon corresponding to the current health score.
* <p/>
* <p>
* If the path begins with a '/' then it will be the absolute path, otherwise the image is
* assumed to be in one of <code>/images/16x16/</code>, <code>/images/24x24/</code> or
* <code>/images/32x32/</code> depending on the icon size selected by the user.
......
......@@ -23,6 +23,7 @@
*/
package hudson.model;
import hudson.model.listeners.ItemListener;
import java.io.IOException;
import java.util.Collection;
import java.io.File;
......
......@@ -131,7 +131,7 @@ public abstract class ItemGroupMixIn {
}
/**
* {@link Item} -> name function.
* {@link Item} name function.
*/
public static final Function1<String,Item> KEYED_BY_NAME = new Function1<String, Item>() {
public String call(Item item) {
......
......@@ -964,7 +964,7 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
}
/**
* Returns the last 'numberOfBuilds' builds with a build result >= 'threshold'
* Returns the last {@code numberOfBuilds} builds with a build result ≥ {@code threshold}
*
* @return a list with the builds. May be smaller than 'numberOfBuilds' or even empty
* if not enough builds satisfying the threshold have been found. Never null.
......
......@@ -77,8 +77,8 @@ public abstract class JobPropertyDescriptor extends Descriptor<JobProperty<?>> {
* given job type.
*
* <p>
* The default implementation of this method checks if the given job type is assignable to 'J' of
* {@link JobProperty}<tt>&lt;J></tt>, but subtypes can extend this to change this behavior.
* The default implementation of this method checks if the given job type is assignable to {@code J} of
* {@link JobProperty}{@code <J>}, but subtypes can extend this to change this behavior.
*
* @return
* true to indicate applicable, in which case the property will be
......
......@@ -466,42 +466,42 @@ public abstract class Label extends Actionable implements Comparable<Label>, Mod
}
/**
* Returns the label that represents "this&amp;rhs"
* Returns the label that represents {@code this&rhs}
*/
public Label and(Label rhs) {
return new LabelExpression.And(this,rhs);
}
/**
* Returns the label that represents "this|rhs"
* Returns the label that represents {@code this|rhs}
*/
public Label or(Label rhs) {
return new LabelExpression.Or(this,rhs);
}
/**
* Returns the label that represents "this&lt;->rhs"
* Returns the label that represents {@code this<->rhs}
*/
public Label iff(Label rhs) {
return new LabelExpression.Iff(this,rhs);
}
/**
* Returns the label that represents "this->rhs"
* Returns the label that represents {@code this->rhs}
*/
public Label implies(Label rhs) {
return new LabelExpression.Implies(this,rhs);
}
/**
* Returns the label that represents "!this"
* Returns the label that represents {@code !this}
*/
public Label not() {
return new LabelExpression.Not(this);
}
/**
* Returns the label that represents "(this)"
* Returns the label that represents {@code (this)}
* This is a pointless operation for machines, but useful
* for humans who find the additional parenthesis often useful
*/
......
......@@ -48,24 +48,20 @@ import java.util.List;
* should implement a new decorator and put {@link Extension} on the class.
*
* <h2>Associated Views</h2>
* <h4>global.jelly</h4>
* <p>
* <h3>global.jelly</h3>
* If this extension point needs to expose a global configuration, write this jelly page.
* See {@link Descriptor} for more about this. Optional.
*
* <h4>footer.jelly</h4>
* <p>
* This page is added right before the &lt;/body> tag. Convenient place for adding tracking beacons, etc.
* <h3>footer.jelly</h3>
* This page is added right before the {@code </body>} tag. Convenient place for adding tracking beacons, etc.
*
* <h4>header.jelly</h4>
* <p>
* This page is added right before the &lt;/head> tag. Convenient place for additional stylesheet,
* &lt;meta> tags, etc.
* <h3>header.jelly</h3>
* This page is added right before the {@code </head>} tag. Convenient place for additional stylesheet,
* {@code <meta>} tags, etc.
*
* <h4>httpHeaders.jelly</h4>
* <p>
* This is a generalization of the X-Jenkins header that aids auto-discovery.
* This fragment can write additional &lt;st:header name="..." value="..." /> tags that go along with it.
* <h3>httpHeaders.jelly</h3>
* This is a generalization of the {@code X-Jenkins} header that aids auto-discovery.
* This fragment can write additional {@code <st:header name="…" value="…"/>} tags that go along with it.
*
* @author Kohsuke Kawaguchi
* @since 1.235
......
......@@ -80,13 +80,12 @@ import org.kohsuke.stapler.export.ExportedBean;
*
*
* <h2>Associated Views</h2>
* <h4>config.jelly</h4>
* <p>
* <h3>config.jelly</h3>
* {@link ParameterDefinition} class uses <tt>config.jelly</tt> to contribute a form
* fragment in the job configuration screen. Values entered there are fed back to
* {@link ParameterDescriptor#newInstance(StaplerRequest, JSONObject)} to create {@link ParameterDefinition}s.
*
* <h4>index.jelly</h4>
* <h3>index.jelly</h3>
* The <tt>index.jelly</tt> view contributes a form fragment in the page where the user
* enters actual values of parameters for a build. The result of this form submission
* is then fed to {@link ParameterDefinition#createValue(StaplerRequest, JSONObject)} to
......@@ -198,7 +197,7 @@ public abstract class ParameterDefinition implements
* @throws AbortException
* If the CLI processing should be aborted. Hudson will report the error message
* without stack trace, and then exits this command. Useful for graceful termination.
* @throws Exception
* @throws RuntimeException
* All the other exceptions cause the stack trace to be dumped, and then
* the command exits with an error code.
* @since 1.334
......
......@@ -60,7 +60,7 @@ import org.kohsuke.stapler.export.ExportedBean;
* through XStream (via {@link ParametersAction}), so instances need to be persistable.
*
* <h2>Associated Views</h2>
* <h4>value.jelly</h4>
* <h3>value.jelly</h3>
* The <tt>value.jelly</tt> view contributes a UI fragment to display the parameter
* values used for a build.
*
......@@ -134,10 +134,10 @@ public abstract class ParameterValue implements Serializable {
* expected to add more values to this map (or do nothing)
*
* <p>
* <strike>Environment variables should be by convention all upper case.
* Formerly, environment variables would be by convention all upper case.
* (This is so that a Windows/Unix heterogeneous environment
* won't get inconsistent result depending on which platform to
* execute.)</strike> (see {@link EnvVars} why upper casing is a bad idea.)
* execute.) But now see {@link EnvVars} why upper casing is a bad idea.
*
* @param env
* never null.
......@@ -217,7 +217,7 @@ public abstract class ParameterValue implements Serializable {
* Returns a {@link VariableResolver} so that other components like {@link Builder}s
* can perform variable substitution to reflect parameter values into the build process.
*
* <p.
* <p>
* This is yet another means in which a {@link ParameterValue} can influence
* a build.
*
......
......@@ -35,6 +35,7 @@ import java.util.logging.Logger;
import java.util.Random;
import static hudson.init.InitMilestone.JOB_LOADED;
import hudson.triggers.Trigger;
/**
* Extension point to perform a periodic task in Hudson (through {@link Timer}.)
......
......@@ -141,7 +141,7 @@ import org.kohsuke.stapler.interceptor.RequirePOST;
*
* <p>
* Items in queue goes through several stages, as depicted below:
* <pre>
* <pre>{@code
* (enter) --> waitingList --+--> blockedProjects
* | ^
* | |
......@@ -150,7 +150,7 @@ import org.kohsuke.stapler.interceptor.RequirePOST;
* ^ |
* | |
* +---(rarely)---+
* </pre>
* }</pre>
*
* <p>
* Note: In the normal case of events pending items only move to left. However they can move back
......@@ -1014,7 +1014,7 @@ public class Queue extends ResourceController implements Saveable {
/**
* How many {@link BuildableItem}s are assigned for the given label?
* <p/>
* <p>
* The implementation is quite similar to {@link #countBuildableItemsFor(hudson.model.Label)},
* but it has another behavior for null parameters.
* @param l Label to be checked. If null, only jobs without assigned labels
......
......@@ -436,7 +436,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
/**
* Set the queue item ID.
* <p/>
* <p>
* Mapped from the {@link Queue.Item#getId()}.
* @param queueId The queue item ID.
*/
......@@ -523,7 +523,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
* and because of that this might not be necessarily in sync with the return value of {@link #isBuilding()} &mdash;
* an executor holds on to {@link Run} some more time even after the build is finished (for example to
* perform {@linkplain Run.State#POST_PRODUCTION post-production processing}.)
* @see Executables#getExecutor
* @see Executor#of
*/
@Exported
public @CheckForNull Executor getExecutor() {
......@@ -929,7 +929,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
}
/**
* Returns the last 'numberOfBuilds' builds with a build result >= 'threshold'.
* Returns the last {@code numberOfBuilds} builds with a build result ≥ {@code threshold}.
*
* @param numberOfBuilds the desired number of builds
* @param threshold the build result threshold
......@@ -1407,7 +1407,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
*
* If someone is still writing to the log, this method will not return until the whole log
* file gets written out.
* <p/>
* <p>
* The method does not close the {@link OutputStream}.
*/
public void writeWholeLogTo(@Nonnull OutputStream out) throws IOException, InterruptedException {
......@@ -1682,7 +1682,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
/**
* @deprecated as of 1.467
* Use {@link #execute(RunExecution)}
* Use {@link #execute(hudson.model.Run.RunExecution)}
*/
@Deprecated
protected final void run(@Nonnull Runner job) {
......
......@@ -39,6 +39,7 @@ import jenkins.model.RunIdMigrator;
import jenkins.model.lazy.AbstractLazyLoadRunMap;
import static jenkins.model.lazy.AbstractLazyLoadRunMap.Direction.*;
import jenkins.model.lazy.BuildReference;
import jenkins.model.lazy.LazyBuildMixIn;
import org.apache.commons.collections.comparators.ReverseComparator;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
......
......@@ -24,6 +24,7 @@
package hudson.model;
import hudson.BulkChange;
import hudson.model.listeners.SaveableListener;
import java.io.IOException;
/**
......
......@@ -187,7 +187,7 @@ public abstract class TopLevelItemDescriptor extends Descriptor<TopLevelItem> im
* For example: plugin/plugin-shortname/images/:size/item.png, where {@code :size} represents the different
* icon sizes used commonly in Jenkins project: 16x16, 24x24, 32x32 or 48x48
*
* @see {@link FreeStyleProject.DescriptorImpl#getIconFilePathPattern()}
* @see FreeStyleProject.DescriptorImpl#getIconFilePathPattern()
*
* @return A string or null if it is not defined.
*
......
......@@ -708,7 +708,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
/**
* Is the ID allowed? Some are prohibited for security reasons. See SECURITY-166.
* <p/>
* <p>
* Note that this is only enforced when saving. These users are often created
* via the constructor (and even listed on /asynchPeople), but our goal is to
* prevent anyone from logging in as these users. Therefore, we prevent
......
......@@ -414,14 +414,14 @@ public abstract class View extends AbstractModelObject implements AccessControll
}
/**
* If this view uses &lt;t:projectView> for rendering, this method returns columns to be displayed.
* If this view uses {@code <t:projectView>} for rendering, this method returns columns to be displayed.
*/
public Iterable<? extends ListViewColumn> getColumns() {
return ListViewColumn.createDefaultInitialColumnList(this);
}
/**
* If this view uses &lt;t:projectView> for rendering, this method returns the indenter used
* If this view uses {@code t:projectView} for rendering, this method returns the indenter used
* to indent each row.
*/
public Indenter getIndenter() {
......
......@@ -172,7 +172,7 @@ public abstract class ViewDescriptor extends Descriptor<View> {
/**
* Returns true if this {@link View} type is applicable in the specific {@link ViewGroup}.
* <p>
* Default implementation returns {@link #isApplicable(Class)} for the {@link ViewGroup#getClass()}.
* Default implementation returns {@link #isApplicable(Class)} for the {@link ViewGroup}’s {@link Object#getClass}.
*
* @return true to indicate applicable, in which case the view will be instantiable within the given owner.
* @since 2.37
......
......@@ -44,19 +44,20 @@ import java.util.List;
* <ol>
* <li>
* Create three data fields in your class:
* <pre>
* <pre>{@code
* private String primaryView;
* private CopyOnWriteArrayList&lt;View> views;
* private CopyOnWriteArrayList<View> views;
* private ViewsTabBar viewsTabBar;
* </pre>
* }</pre>
* <li>
* Define a transient field and store ViewGroupMixIn subype, then wire up getters and setters:
* <pre>
* private transient ViewGroupMixIn = new ViewGroupMixIn() {
* List&lt;View> views() { return views; }
* List&lt;View&gt; views() { return views; }
* ...
* }
* </pre>
* </ol>
* @author Kohsuke Kawaguchi
* @see ItemGroupMixIn
*/
......
......@@ -96,7 +96,7 @@ public abstract class RunListener<R extends Run> implements ExtensionPoint {
public void onCompleted(R r, @Nonnull TaskListener listener) {}
/**
* Called after a build is moved to the {@link hudson.model.Run.State#COMPLETED} state.
* Called after a build is moved to the {@code Run.State.COMPLETED} state.
*
* <p>
* At this point, all the records related to a build is written down to the disk. As such,
......
......@@ -60,7 +60,7 @@ import jenkins.model.Jenkins;
public abstract class SCMListener implements ExtensionPoint {
/**
* Should be called immediately after {@link SCM#checkout(Run, Launcher, FilePath, TaskListener, File)} is called.
* Should be called immediately after {@link SCM#checkout(Run, Launcher, FilePath, TaskListener, File, SCMRevisionState)} is called.
* @param pollingBaseline information about what actually was checked out, if that is available, and this checkout is intended to be included in the build’s polling (if it does any at all)
* @throws Exception if the checkout should be considered failed
* @since 1.568
......
......@@ -66,7 +66,7 @@ public class Executables {
* This can happen if Computer.getIdleStartMilliseconds() is called before the executable is set to non-null in Computer.run()
* or if the executor thread exits prematurely, see JENKINS-30456
* Protects against {@link AbstractMethodError}s if the {@link Executable} implementation
* was compiled against Hudson < 1.383
* was compiled against Hudson prior to 1.383
* @param e Executable item
* @return the estimated duration for a given executable, -1 if the executable is null
*/
......
......@@ -2,6 +2,7 @@ package hudson.model.queue;
import hudson.ExtensionList;
import hudson.ExtensionPoint;
import hudson.model.Computer;
import hudson.model.Queue;
import hudson.model.Queue.BlockedItem;
import hudson.model.Queue.BuildableItem;
......
......@@ -102,7 +102,7 @@ public class TarOutputStream extends FilterOutputStream {
/**
* Set the long file mode.
* This can be LONGFILE_ERROR(0), LONGFILE_TRUNCATE(1) or LONGFILE_GNU(2).
* This specifies the treatment of long file names (names >= TarConstants.NAMELEN).
* This specifies the treatment of long file names (names TarConstants.NAMELEN).
* Default is LONGFILE_ERROR.
* @param longFileMode the mode to use
*/
......
......@@ -309,7 +309,7 @@ public final class CronTab {
* More precisely, given the time 't', computes another smallest time x such that:
*
* <ul>
* <li>x >= t (inclusive)
* <li>x t (inclusive)
* <li>x matches this crontab
* </ul>
*
......
......@@ -296,7 +296,7 @@ public abstract class SCM implements Describable<SCM>, ExtensionPoint {
*
* <p>
* This method is called after source code is checked out for the given build (that is, after
* {@link SCM#checkout(Run, Launcher, FilePath, TaskListener, File)} has finished successfully.)
* {@link SCM#checkout(Run, Launcher, FilePath, TaskListener, File, SCMRevisionState)} has finished successfully.)
*
* <p>
* The obtained object is added to the build as an {@link Action} for later retrieval. As an optimization,
......@@ -539,12 +539,12 @@ public abstract class SCM implements Describable<SCM>, ExtensionPoint {
* Often SCMs have to create a directory inside a workspace, which
* creates directory layout like this:
*
* <pre>
* <pre>{@code
* workspace <- workspace root
* +- xyz <- directory checked out by SCM
* +- CVS
* +- build.xml <- user file
* </pre>
* }</pre>
*
* <p>
* Many builders, like Ant or Maven, works off the specific user file
......@@ -605,7 +605,7 @@ public abstract class SCM implements Describable<SCM>, ExtensionPoint {
* Some SCMs support checking out multiple modules inside a workspace, which
* creates directory layout like this:
*
* <pre>
* <pre>{@code
* workspace <- workspace root
* +- xyz <- directory checked out by SCM
* +- .svn
......@@ -613,7 +613,7 @@ public abstract class SCM implements Describable<SCM>, ExtensionPoint {
* +- abc <- second module from different SCM root
* +- .svn
* +- build.xml <- user file
* </pre>
* }</pre>
*
* This method takes the workspace root as a parameter, and is expected to return
* all the module roots that were checked out from SCM.
......
......@@ -69,8 +69,8 @@ import java.net.URLEncoder;
* redirected back to the original URL, where the request is served.
*
* <p>
* So all in all, the redirection works like <tt>/abc/def</tt> -> <tt>/secured/abc/def</tt>
* -> <tt>/abc/def</tt>.
* So all in all, the redirection works like {@code /abc/def} → {@code /secured/abc/def}
* → {@code /abc/def}.
*
* <h2>Notes</h2>
* <ul>
......@@ -78,7 +78,7 @@ import java.net.URLEncoder;
* The technique of getting a request dispatcher for <tt>/j_security_check</tt> may not
* work for all containers, but so far that seems like the only way to make this work.
* <li>
* This A->B->A redirect is a cyclic redirection, so we need to watch out for clients
* This A → B → A redirect is a cyclic redirection, so we need to watch out for clients
* that detect this as an error.
* </ul>
*
......
......@@ -26,6 +26,7 @@ package hudson.security;
import hudson.ExtensionPoint;
import hudson.model.User;
import jenkins.model.Jenkins;
/**
* Service which can add permissions for a given user to the configured authorization strategy.
......
......@@ -319,9 +319,9 @@ public abstract class SecurityRealm extends AbstractDescribableImpl<SecurityReal
* If the implementation needs to redirect the user to a different URL
* for signing up, use the following jelly script as <tt>signup.jelly</tt>
*
* <pre><xmp>
* <pre>{@code <xmp>
* <st:redirect url="http://www.sun.com/" xmlns:st="jelly:stapler"/>
* </xmp></pre>
* </xmp>}</pre>
*/
public boolean allowsSignup() {
Class clz = getClass();
......@@ -355,8 +355,7 @@ public abstract class SecurityRealm extends AbstractDescribableImpl<SecurityReal
/**
* If this {@link SecurityRealm} supports a look up of {@link GroupDetails} by their names, override this method
* to provide the look up.
* <p/>
* <p/>
* <p>
* This information, when available, can be used by {@link AuthorizationStrategy}s to improve the UI and
* error diagnostics for the user.
*
......
......@@ -111,7 +111,7 @@ public abstract class SidACL extends ACL {
* @return
* true if the access should be granted, false if it should be denied.
* The null value indicates that the ACL does no rule for this Sid/Permission
* combination. The caller can decide what to do &mash; such as consulting the higher level ACL,
* combination. The caller can decide what to dosuch as consulting the higher level ACL,
* or denying the access (if the model is no-access-by-default.)
*/
protected abstract Boolean hasPermission(Sid p, Permission permission);
......
......@@ -53,14 +53,12 @@ import java.util.concurrent.Future;
* needed to start a new agent programmatically.
*
* <h2>Notes for implementers</h2>
* <h4>Automatically delete idle agents</h4>
* <p>
* <h3>Automatically delete idle agents</h3>
* Nodes provisioned from a cloud do not automatically get released just because it's created from {@link Cloud}.
* Doing so requires a use of {@link RetentionStrategy}. Instantiate your {@link Slave} subtype with something
* like {@link CloudSlaveRetentionStrategy} so that it gets automatically deleted after some idle time.
*
* <h4>Freeing an external resource when an agent is removed</h4>
* <p>
* <h3>Freeing an external resource when an agent is removed</h3>
* Whether you do auto scale-down or not, you often want to release an external resource tied to a cloud-allocated
* agent when it is removed.
*
......@@ -138,7 +136,7 @@ public abstract class Cloud extends AbstractModelObject implements ExtensionPoin
* for jobs that don't have any tie to any label.
* @param excessWorkload
* Number of total executors needed to meet the current demand.
* Always >= 1. For example, if this is 3, the implementation
* Always 1. For example, if this is 3, the implementation
* should launch 3 agents with 1 executor each, or 1 agent with
* 3 executors, etc.
* @return
......
......@@ -8,6 +8,7 @@ import hudson.model.queue.CauseOfBlockage;
import jenkins.model.Jenkins;
import java.util.Collection;
import java.util.concurrent.Future;
import javax.annotation.Nonnull;
......@@ -77,7 +78,7 @@ public abstract class CloudProvisioningListener implements ExtensionPoint {
}
/**
* Called when {@link NodeProvisioner.PlannedNode#future#get()} throws an exception.
* Called when {@link NodeProvisioner.PlannedNode#future} {@link Future#get()} throws an exception.
*
* @param plannedNode the planned node which failed to provision
* @param t the exception
......
......@@ -50,6 +50,7 @@ import jenkins.security.QueueItemAuthenticator;
import org.acegisecurity.Authentication;
import javax.annotation.Nonnull;
import jenkins.model.Jenkins;
/**
* One step of the whole build process.
......@@ -146,7 +147,7 @@ public interface BuildStep {
* <p>
* This action can have optional <tt>jobMain.jelly</tt> view, which will be
* aggregated into the main panel of the job top page. The jelly file
* should have an &lt;h2> tag that shows the section title, followed by some
* should have an {@code <h2>} tag that shows the section title, followed by some
* block elements to render the details of the section.
*
* @param project
......
......@@ -505,7 +505,7 @@ public class Maven extends Builder {
/**
* @deprecated as of 1.308.
* Use {@link #Maven.MavenInstallation(String, String, List)}
* Use {@link #MavenInstallation(String, String, List)}
*/
@Deprecated
public MavenInstallation(String name, String home) {
......
......@@ -694,7 +694,7 @@ public class JDKInstaller extends ToolInstaller {
public static final class JDKRelease {
/**
* the list of {@Link JDKFile}s
* the list of {@link JDKFile}s
*/
public JDKFile[] files;
/**
......@@ -813,7 +813,7 @@ public class JDKInstaller extends ToolInstaller {
}
/**
* @{inheritDoc}
* {@inheritDoc}
*/
@Override
public JSONObject reduce (List<JSONObject> jsonObjectList) {
......
......@@ -93,7 +93,7 @@ import static java.util.logging.Level.WARNING;
* You can add UI elements under the SCM section by creating a
* config.jelly or config.groovy in the resources area for
* your class that inherits from SCMTrigger and has the
* @{@link hudson.model.Extension} annotation. The UI should
* {@link Extension} annotation. The UI should
* be wrapped in an f:section element to denote it.
*
* @author Kohsuke Kawaguchi
......
......@@ -29,6 +29,7 @@ import hudson.security.ACL;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import jenkins.util.Timer;
import org.acegisecurity.context.SecurityContext;
import org.acegisecurity.context.SecurityContextHolder;
......
......@@ -290,27 +290,27 @@ public class ArgumentListBuilder implements Serializable, Cloneable {
}
/**
* Wrap command in a CMD.EXE call so we can return the exit code (ERRORLEVEL).
* Wrap command in a {@code CMD.EXE} call so we can return the exit code ({@code ERRORLEVEL}).
* This method takes care of escaping special characters in the command, which
* is needed since the command is now passed as a string to the CMD.EXE shell.
* is needed since the command is now passed as a string to the {@code CMD.EXE} shell.
* This is done as follows:
* Wrap arguments in double quotes if they contain any of:
* space *?,;^&<>|"
* and if escapeVars is true, % followed by a letter.
* <br/> When testing from command prompt, these characters also need to be
* prepended with a ^ character: ^&<>| -- however, invoking cmd.exe from
* {@code space *?,;^&<>|"}
* and if {@code escapeVars} is true, {@code %} followed by a letter.
* <p> When testing from command prompt, these characters also need to be
* prepended with a ^ character: {@code ^&<>|}—however, invoking {@code cmd.exe} from
* Jenkins does not seem to require this extra escaping so it is not added by
* this method.
* <br/> A " is prepended with another " character. Note: Windows has issues
* <p> A {@code "} is prepended with another {@code "} character. Note: Windows has issues
* escaping some combinations of quotes and spaces. Quotes should be avoided.
* <br/> If escapeVars is true, a % followed by a letter has that letter wrapped
* <p> If {@code escapeVars} is true, a {@code %} followed by a letter has that letter wrapped
* in double quotes, to avoid possible variable expansion.
* ie, %foo% becomes "%"f"oo%". The second % does not need special handling
* because it is not followed by a letter. <br/>
* Example: "-Dfoo=*abc?def;ghi^jkl&mno<pqr>stu|vwx""yz%"e"nd"
* @param escapeVars True to escape %VAR% references; false to leave these alone
* ie, {@code %foo%} becomes {@code "%"f"oo%"}. The second {@code %} does not need special handling
* because it is not followed by a letter. <p>
* Example: {@code "-Dfoo=*abc?def;ghi^jkl&mno<pqr>stu|vwx""yz%"e"nd"}
* @param escapeVars True to escape {@code %VAR%} references; false to leave these alone
* so they may be expanded when the command is run
* @return new ArgumentListBuilder that runs given command through cmd.exe /C
* @return new {@link ArgumentListBuilder} that runs given command through {@code cmd.exe /C}
* @since 1.386
*/
public ArgumentListBuilder toWindowsCommand(boolean escapeVars) {
......
......@@ -37,7 +37,7 @@ import java.io.OutputStream;
* Implements HTTP chunking support. Writes are buffered to an internal buffer (2048 default size).
* Chunks are guaranteed to be at least as large as the buffer size (except for the last chunk).
*
* @author Mohammad Rezaei, Goldman, Sachs & Co.
* @author Mohammad Rezaei, Goldman, Sachs &amp; Co.
*/
public class ChunkedOutputStream extends OutputStream {
......
......@@ -28,7 +28,7 @@ public abstract class CyclicGraphDetector<N> {
/**
* Returns all the nodes in the topologically sorted order.
* That is, if there's an edge a->b, b always come earlier than a.
* That is, if there's an edge ab, b always come earlier than a.
*/
public List<N> getSorted() {
return topologicalOrder;
......
......@@ -200,7 +200,7 @@ public class DescribableList<T extends Describable<T>, D extends Descriptor<T>>
* Rebuilds the list by creating a fresh instances from the submitted form.
*
* <p>
* This version works with the &lt;f:hetero-list> UI tag, where the user
* This version works with the {@code <f:hetero-list>} UI tag, where the user
* is allowed to create multiple instances of the same descriptor. Order is also
* significant.
*/
......
......@@ -31,7 +31,7 @@ import javax.servlet.ServletException;
import java.io.IOException;
/**
* Server-side code related to the &lt;f:apply> button.
* Server-side code related to the {@code <f:apply>} button.
*
* @author Kohsuke Kawaguchi
* @since 1.453
......
......@@ -635,7 +635,7 @@ public abstract class FormFieldValidator {
}
/**
* Verifies that the 'value' parameter is an integer >= 0.
* Verifies that the {@code value} parameter is an integer ≥ 0.
*
* @since 1.282
* @deprecated as of 1.294
......
......@@ -92,7 +92,7 @@ public class HttpResponses extends org.kohsuke.stapler.HttpResponses {
/**
* Set the response as an error response.
* @param message The error "message" set on the response.
* @return {@link this} object.
* @return {@code this} object.
*
* @since 2.0
*/
......
......@@ -48,11 +48,11 @@ import java.util.Collection;
* <p>
* To use this, HTML needs to declare the SELECT element:
*
* <pre><xmp>
* <pre>{@code <xmp>
* <select id='foo'>
* <option>Fetching values...</option>
* </select>
* </xmp></pre>
* </xmp>}</pre>
*
* <p>
* The SELECT element may have initial option values (in fact in most cases having initial
......@@ -65,9 +65,9 @@ import java.util.Collection;
* function, defined in <tt>hudson-behavior.js</tt>. The following example does it
* when the value of the textbox changes:
*
* <pre><xmp>
* <pre>{@code <xmp>
* <input type="textbox" onchange="updateListBox('list','optionValues?value='+encode(this.value))"/>
* </xmp></pre>
* </xmp>}</pre>
*
* <p>
* The first argument is the SELECT element or the ID of it (see Prototype.js <tt>$(...)</tt> function.)
......@@ -78,9 +78,9 @@ import java.util.Collection;
* for producing option values. See the following example:
*
* <pre>
* public ListBoxModel doOptionValues(@QueryParameter("value") String value) throws IOException, ServletException {
* public ListBoxModel doOptionValues(&#64;QueryParameter("value") String value) throws IOException, ServletException {
* ListBoxModel m = new ListBoxModel();
* for(int i=0; i<5; i++)
* for(int i=0; i&lt;5; i++)
* m.add(value+i,value+i);
* // make the third option selected initially
* m.get(3).selected = true;
......
......@@ -29,7 +29,7 @@ import java.util.concurrent.ConcurrentHashMap;
* Implements memoization semantics.
*
* <p>
* Conceptually a function from K -> V that computes values lazily and remembers the results.
* Conceptually a function from K V that computes values lazily and remembers the results.
* Often used to implement a data store per key.
*
* @author Kohsuke Kawaguchi
......
......@@ -24,6 +24,7 @@
package hudson.util;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
......
......@@ -52,7 +52,7 @@ public class QueryParameterMap {
/**
* @param queryString
* String that looks like "abc=def&ghi=jkl"
* String that looks like {@code abc=def&ghi=jkl}
*/
public QueryParameterMap(String queryString) {
if (queryString==null || queryString.length()==0) return;
......
......@@ -31,6 +31,7 @@ import com.sun.jna.Memory;
import com.sun.jna.NativeLong;
import com.sun.jna.LastErrorException;
import com.sun.jna.ptr.IntByReference;
import hudson.os.PosixAPI;
import jnr.posix.POSIX;
import org.jvnet.libpam.impl.CLibrary.passwd;
......
......@@ -57,18 +57,18 @@ import java.util.Map.Entry;
*
* BeanBuilder builder = new BeanBuilder()
* builder.beans {
* dataSource(BasicDataSource) { // <--- invokeMethod
* dataSource(BasicDataSource) { // invokeMethod
* driverClassName = "org.hsqldb.jdbcDriver"
* url = "jdbc:hsqldb:mem:grailsDB"
* username = "sa" // <-- setProperty
* username = "sa" // setProperty
* password = ""
* settings = [mynew:"setting"]
* }
* sessionFactory(SessionFactory) {
* dataSource = dataSource // <-- getProperty for retrieving refs
* dataSource = dataSource // getProperty for retrieving refs
* }
* myService(MyService) {
* nestedBean = { AnotherBean bean-> // <-- setProperty with closure for nested bean
* nestedBean = { AnotherBean bean-&gt; // ← setProperty with closure for nested bean
* dataSource = dataSource
* }
* }
......
......@@ -39,7 +39,7 @@ import groovy.lang.Script;
* <pre>
* a = 1;
* b(2);
* <pre>
* </pre>
*
* <p>
* Using {@link ClosureScript} as the base class would run it as:
......
......@@ -51,7 +51,7 @@ import net.sf.json.JSONObject;
* This object must have the <tt>column.jelly</tt>. This view
* is called for each cell of this column. The {@link Item} object
* is passed in the "job" variable. The view should render
* the &lt;td> tag.
* the {@code <td>} tag.
*
* <p>
* This object may have an additional <tt>columnHeader.jelly</tt>. The default ColumnHeader
......
......@@ -115,7 +115,7 @@ public class HistoryWidget<O extends ModelObject,T> extends Widget {
}
/**
* Calculates the first transient build record. Everything >= this will be discarded when AJAX call is made.
* Calculates the first transient build record. Everything this will be discarded when AJAX call is made.
*
* @param historyPageFilter
* The history page filter containing the list of builds.
......
......@@ -32,13 +32,13 @@ import hudson.model.View;
* <h2>Views</h2>
* <ul>
* <li><b>index.jelly</b> should display the widget. It should have:
* &lt;l:pane width="2" title="..."> ...body... &lt;/l:pane> structure.
* {@code <l:pane width="2" title="…"> …body… </l:pane>} structure.
* In this view, "it" points to the {@link Widget} and "view" points to {@link View}
* that's rendering the widget.
* </ul>
*
* TODO:
* - make Widget describable & provide the UI to let admin configure widgets?
* - make Widget describable and provide the UI to let admin configure widgets?
* - backward compatibility implications?
*
*
......
......@@ -13,7 +13,7 @@ import java.io.File;
*
* <p>
* Returning {@code true} indicates that the access is accepted. No other {@link FilePathFilter}
* will be consulted to reject the execution, and the access will go through. Returning {@link false}
* will be consulted to reject the execution, and the access will go through. Returning {@code false}
* indicates "I don't know". Other {@link FilePathFilter}s get to inspect the access, and they might
* accept/reject access. And finally, throwing {@link SecurityException} is to reject the access.
*
......
......@@ -26,6 +26,7 @@ package jenkins.model;
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.AbstractBuild;
import hudson.model.BuildListener;
import hudson.model.Run;
import hudson.model.TaskListener;
......@@ -53,7 +54,7 @@ public abstract class ArtifactManager {
* <p>If called multiple times for the same build, do not delete the old artifacts but keep them all, unless overwritten.
* For example, the XVNC plugin could use this to save {@code screenshot.jpg} if so configured.
* <p>This method is typically invoked on a running build, though e.g. in the case of Maven module builds,
* the build may actually be {@link hudson.model.Run.State#COMPLETED} when this is called
* the build may actually be {@code Run.State.COMPLETED} when this is called
* (since it is the parent build which is still running and performing archiving).
* @param workspace the root directory from which to copy files (typically {@link AbstractBuild#getWorkspace} but not necessarily)
* @param launcher a launcher to use if external processes need to be forked
......
......@@ -9,6 +9,7 @@ import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.mapper.Mapper;
import hudson.ExtensionPoint;
import hudson.model.AbstractDescribableImpl;
import hudson.model.AbstractProject;
import hudson.model.Job;
import hudson.model.Run;
import hudson.tasks.LogRotator;
......
......@@ -29,6 +29,7 @@ import hudson.tasks.BuildWrapper;
import hudson.tasks.Builder;
import hudson.tasks.Publisher;
import hudson.triggers.Trigger;
import hudson.util.DescribableList;
/**
* Marker interface for project-associated objects that can participate
......
......@@ -24,7 +24,9 @@
package jenkins.model;
import hudson.model.Item;
import hudson.model.TopLevelItem;
import hudson.model.listeners.ItemListener;
import java.io.IOException;
/**
......
......@@ -49,8 +49,7 @@ import javax.annotation.Nonnull;
* an instance of new facet and add it.
*
* <h2>Views</h2>
* <h4>main.groovy</h4>
* <p>
* <h3>main.groovy</h3>
* This view is rendered into the
*
* @author Kohsuke Kawaguchi
......
......@@ -321,7 +321,7 @@ public abstract class IdStrategy extends AbstractDescribableImpl<IdStrategy> imp
* A case sensitive email address {@link IdStrategy}. Providing this implementation among the set of default
* implementations as given the history of misunderstanding in the Jenkins code base around ID case sensitivity,
* if not provided people will get this wrong.
* <p/>
* <p>
* Note: Not all email addresses are case sensitive. It is knowledge that belongs to the server that holds the
* mailbox. Most sane system administrators do not configure their accounts using case sensitive mailboxes
* but the RFC does allow them the option to configure that way. Domain names are always case insensitive per RFC.
......
......@@ -2867,7 +2867,8 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
* Gets the user of the given name.
*
* @return the user of the given name (which may or may not be an id), if that person exists; else null
* @see User#get(String,boolean), {@link User#getById(String, boolean)}
* @see User#get(String,boolean)
* @see User#getById(String, boolean)
*/
public @CheckForNull User getUser(String name) {
return User.get(name, User.ALLOW_USER_CREATION_VIA_URL && hasPermission(ADMINISTER));
......
......@@ -58,7 +58,7 @@ public interface ModelObjectWithContextMenu extends ModelObject {
/**
* Data object that represents the context menu.
*
* Via {@link HttpResponse}, this class is capable of converting itself to JSON that &lt;l:breadcrumb/> understands.
* Via {@link HttpResponse}, this class is capable of converting itself to JSON that {@code <l:breadcrumb/>} understands.
*/
@ExportedBean
public class ContextMenu implements HttpResponse {
......@@ -180,7 +180,7 @@ public interface ModelObjectWithContextMenu extends ModelObject {
*
* <p>
* This method uses {@code sidepanel.groovy} to run the side panel generation, captures
* the use of &lt;l:task> tags, and then converts those into {@link MenuItem}s. This is
* the use of {@code <l:task>} tags, and then converts those into {@link MenuItem}s. This is
* supposed to make this work with most existing {@link ModelObject}s that follow the standard
* convention.
*
......
......@@ -32,7 +32,7 @@ import org.apache.commons.io.FileUtils;
* <blockquote>
* Given a job J, permalink is a function F that computes a build B.
* A peephole permalink is a subset of this function that can be
* deduced to the "peep-hole" function G(B)->bool:
* deduced to the "peep-hole" function G(B)bool:
*
* <pre>
* F(J) = { newest B | G(B)==true }
......
......@@ -28,14 +28,12 @@ import hudson.Extension;
import hudson.Util;
import hudson.model.Job;
import hudson.model.RootAction;
import hudson.model.Run;
import hudson.util.AtomicFileWriter;
import hudson.util.StreamTaskListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
......@@ -71,7 +69,7 @@ import static java.util.logging.Level.*;
/**
* Converts legacy {@code builds} directories to the current format.
*
* There would be one instance associated with each {@link Job}, to retain ID -> build# mapping.
* There would be one instance associated with each {@link Job}, to retain ID build# mapping.
*
* The {@link Job#getBuildDir} is passed to every method call (rather than being cached) in case it is moved.
*/
......
......@@ -315,8 +315,8 @@ public abstract class AbstractLazyLoadRunMap<R> extends AbstractMap<Integer,R> i
* @param d
* defines what we mean by "nearby" above.
* If EXACT, find #N or return null.
* If ASC, finds the closest #M that satisfies M>=N.
* If DESC, finds the closest #M that satisfies M&lt;=N.
* If ASC, finds the closest #M that satisfies MN.
* If DESC, finds the closest #M that satisfies MN.
*/
public @CheckForNull R search(final int n, final Direction d) {
switch (d) {
......
......@@ -24,8 +24,11 @@
package jenkins.model.queue;
import hudson.model.Computer;
import hudson.model.Executor;
import hudson.model.ExecutorListener;
import hudson.model.OneOffExecutor;
import hudson.model.Queue.Executable;
import hudson.model.Queue.FlyweightTask;
import hudson.model.Resource;
import hudson.model.ResourceActivity;
......@@ -34,6 +37,7 @@ import hudson.model.ResourceList;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.annotation.concurrent.GuardedBy;
import jenkins.model.Jenkins;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
......
......@@ -38,7 +38,6 @@ import static java.util.logging.Level.*;
* to authenticate the same header differently and fail.
*
* @author Kohsuke Kawaguchi
* @see ZD-19640
*/
public class BasicHeaderProcessor implements Filter {
// these fields are supposed to be injected by Spring
......
......@@ -6,6 +6,7 @@ import hudson.util.Secret;
import javax.annotation.CheckForNull;
import java.io.IOException;
import jenkins.slaves.JnlpSlaveAgentProtocol;
/**
* Confidential information that gets stored as a singleton in Jenkins, mostly some random token value.
......
......@@ -2,6 +2,7 @@ package jenkins.security;
import hudson.Extension;
import hudson.Lookup;
import hudson.init.InitMilestone;
import hudson.util.Secret;
import hudson.util.Service;
import jenkins.model.Jenkins;
......@@ -10,6 +11,7 @@ import org.kohsuke.MetaInfServices;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import java.io.IOException;
import java.security.SecureRandom;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
......
......@@ -58,7 +58,7 @@ import java.util.Set;
* <li>Inapplicable warnings are those that are not applicable.
* </ul>
*
* <p></p>The following sets may be non-empty:</p>
* <p>The following sets may be non-empty:</p>
*
* <ul>
* <li>Intersection of applicable and active
......
/**
* Agent -> master security.
* Agent master security.
*/
package jenkins.security.s2m;
......@@ -28,13 +28,19 @@ import hudson.AbortException;
import hudson.Extension;
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.BuildListener;
import hudson.model.Computer;
import hudson.model.Executor;
import hudson.model.InvisibleAction;
import hudson.model.Job;
import hudson.model.Run;
import hudson.model.TaskListener;
import hudson.tasks.BuildStep;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.BuildStepMonitor;
import hudson.tasks.Builder;
import hudson.tasks.Publisher;
import java.io.IOException;
......
......@@ -33,6 +33,7 @@ import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.BuildListener;
import hudson.model.Computer;
import hudson.model.Run;
import hudson.model.TaskListener;
import hudson.tasks.BuildWrapper;
......
......@@ -39,7 +39,7 @@ import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
/**
* Centralizes calls to {@link System#getProperty()} and related calls.
* Centralizes calls to {@link System#getProperty(String)} and related calls.
* This allows us to get values not just from environment variables but also from
* the {@link ServletContext}, so properties like {@code hudson.DNSMultiCast.disabled}
* can be set in {@code context.xml} and the app server's boot script does not
......
......@@ -199,7 +199,6 @@ public abstract class VirtualFile implements Comparable<VirtualFile>, Serializab
* For a remote file, this can be much faster than doing the corresponding operations one by one as separate requests.
* The default implementation just calls the block directly.
* @param <V> a value type
* @param <T> the exception type
* @param callable something to run all at once (only helpful if any mentioned files are on the same system)
* @return the callable result
* @throws IOException if remote communication failed
......
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册