提交 f3070d94 编写于 作者: J Jesse Glick

Merge branch 'master' into JENKINS-26781

...@@ -55,7 +55,9 @@ Upcoming changes</a> ...@@ -55,7 +55,9 @@ Upcoming changes</a>
<!-- Record your changes in the trunk here. --> <!-- Record your changes in the trunk here. -->
<div id="trunk" style="display:none"><!--=TRUNK-BEGIN=--> <div id="trunk" style="display:none"><!--=TRUNK-BEGIN=-->
<ul class=image> <ul class=image>
<li class=> <li class=bug>
Archiving of large artifacts. Tar implementation cannot handle files having a size >8GB.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-10629">issue 10629</a>)
</ul> </ul>
</div><!--=TRUNK-END=--> </div><!--=TRUNK-END=-->
<h3><a name=v1.609>What's new in 1.609</a> (2015/04/12)</h3> <h3><a name=v1.609>What's new in 1.609</a> (2015/04/12)</h3>
......
...@@ -316,7 +316,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -316,7 +316,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
public transient final Lookup lookup = new Lookup(); public transient final Lookup lookup = new Lookup();
/** /**
* We update this field to the current version of Hudson whenever we save {@code config.xml}. * We update this field to the current version of Jenkins whenever we save {@code config.xml}.
* This can be used to detect when an upgrade happens from one version to next. * This can be used to detect when an upgrade happens from one version to next.
* *
* <p> * <p>
...@@ -351,7 +351,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -351,7 +351,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
/** /**
* Controls how the * Controls how the
* <a href="http://en.wikipedia.org/wiki/Authorization">authorization</a> * <a href="http://en.wikipedia.org/wiki/Authorization">authorization</a>
* is handled in Hudson. * is handled in Jenkins.
* <p> * <p>
* This ultimately controls who has access to what. * This ultimately controls who has access to what.
* *
...@@ -362,7 +362,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -362,7 +362,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
/** /**
* Controls a part of the * Controls a part of the
* <a href="http://en.wikipedia.org/wiki/Authentication">authentication</a> * <a href="http://en.wikipedia.org/wiki/Authentication">authentication</a>
* handling in Hudson. * handling in Jenkins.
* <p> * <p>
* Intuitively, this corresponds to the user database. * Intuitively, this corresponds to the user database.
* *
...@@ -466,7 +466,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -466,7 +466,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
}; };
/** /**
* {@link Computer}s in this Hudson system. Read-only. * {@link Computer}s in this Jenkins system. Read-only.
*/ */
protected transient final Map<Node,Computer> computers = new CopyOnWriteMap.Hash<Node,Computer>(); protected transient final Map<Node,Computer> computers = new CopyOnWriteMap.Hash<Node,Computer>();
...@@ -644,7 +644,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -644,7 +644,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
public transient final List<AdministrativeMonitor> administrativeMonitors = getExtensionList(AdministrativeMonitor.class); public transient final List<AdministrativeMonitor> administrativeMonitors = getExtensionList(AdministrativeMonitor.class);
/** /**
* Widgets on Hudson. * Widgets on Jenkins.
*/ */
private transient final List<Widget> widgets = getExtensionList(Widget.class); private transient final List<Widget> widgets = getExtensionList(Widget.class);
...@@ -881,7 +881,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -881,7 +881,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
* Executes a reactor. * Executes a reactor.
* *
* @param is * @param is
* If non-null, this can be consulted for ignoring some tasks. Only used during the initialization of Hudson. * If non-null, this can be consulted for ignoring some tasks. Only used during the initialization of Jenkins.
*/ */
private void executeReactor(final InitStrategy is, TaskBuilder... builders) throws IOException, InterruptedException, ReactorException { private void executeReactor(final InitStrategy is, TaskBuilder... builders) throws IOException, InterruptedException, ReactorException {
Reactor reactor = new Reactor(builders) { Reactor reactor = new Reactor(builders) {
...@@ -1186,7 +1186,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -1186,7 +1186,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Gets the {@link Descriptor} instance in the current Hudson by its type. * Gets the {@link Descriptor} instance in the current Jenkins by its type.
*/ */
public <T extends Descriptor> T getDescriptorByType(Class<T> type) { public <T extends Descriptor> T getDescriptorByType(Class<T> type) {
for( Descriptor d : getExtensionList(Descriptor.class) ) for( Descriptor d : getExtensionList(Descriptor.class) )
...@@ -1343,7 +1343,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -1343,7 +1343,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
* *
* <p> * <p>
* To register an {@link Action}, implement {@link RootAction} extension point, or write code like * To register an {@link Action}, implement {@link RootAction} extension point, or write code like
* {@code Hudson.getInstance().getActions().add(...)}. * {@code Jenkins.getInstance().getActions().add(...)}.
* *
* @return * @return
* Live list where the changes can be made. Can be empty but never null. * Live list where the changes can be made. Can be empty but never null.
...@@ -1481,7 +1481,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -1481,7 +1481,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Returns the primary {@link View} that renders the top-page of Hudson. * Returns the primary {@link View} that renders the top-page of Jenkins.
*/ */
@Exported @Exported
public View getPrimaryView() { public View getPrimaryView() {
...@@ -1517,7 +1517,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -1517,7 +1517,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
* *
* <p> * <p>
* This method continues to return true until the system configuration is saved, at which point * This method continues to return true until the system configuration is saved, at which point
* {@link #version} will be overwritten and Hudson forgets the upgrade history. * {@link #version} will be overwritten and Jenkins forgets the upgrade history.
* *
* <p> * <p>
* To handle SNAPSHOTS correctly, pass in "1.N.*" to test if it's upgrading from the version * To handle SNAPSHOTS correctly, pass in "1.N.*" to test if it's upgrading from the version
...@@ -1661,7 +1661,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -1661,7 +1661,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
/** /**
* Gets the slave node of the give name, hooked under this Hudson. * Gets the slave node of the give name, hooked under this Jenkins.
*/ */
public @CheckForNull Node getNode(String name) { public @CheckForNull Node getNode(String name) {
return nodes.getNode(name); return nodes.getNode(name);
...@@ -1687,14 +1687,14 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -1687,14 +1687,14 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Adds one more {@link Node} to Hudson. * Adds one more {@link Node} to Jenkins.
*/ */
public void addNode(Node n) throws IOException { public void addNode(Node n) throws IOException {
nodes.addNode(n); nodes.addNode(n);
} }
/** /**
* Removes a {@link Node} from Hudson. * Removes a {@link Node} from Jenkins.
*/ */
public void removeNode(@Nonnull Node n) throws IOException { public void removeNode(@Nonnull Node n) throws IOException {
nodes.removeNode(n); nodes.removeNode(n);
...@@ -1904,7 +1904,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -1904,7 +1904,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Gets the absolute URL of Hudson top page, such as {@code http://localhost/hudson/}. * Gets the absolute URL of Jenkins top page, such as {@code http://localhost/jenkins/}.
* *
* <p> * <p>
* Unlike {@link #getRootUrl()}, which uses the manually configured value, * Unlike {@link #getRootUrl()}, which uses the manually configured value,
...@@ -2070,8 +2070,8 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -2070,8 +2070,8 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* If true, all the POST requests to Hudson would have to have crumb in it to protect * If true, all the POST requests to Jenkins would have to have crumb in it to protect
* Hudson from CSRF vulnerabilities. * Jenkins from CSRF vulnerabilities.
*/ */
@Exported @Exported
public boolean isUseCrumbs() { public boolean isUseCrumbs() {
...@@ -2079,8 +2079,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -2079,8 +2079,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Returns the constant that captures the three basic security modes * Returns the constant that captures the three basic security modes in Jenkins.
* in Hudson.
*/ */
public SecurityMode getSecurity() { public SecurityMode getSecurity() {
// fix the variable so that this code works under concurrent modification to securityRealm. // fix the variable so that this code works under concurrent modification to securityRealm.
...@@ -2277,7 +2276,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -2277,7 +2276,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Returns true if Hudson is quieting down. * Returns true if Jenkins is quieting down.
* <p> * <p>
* No further jobs will be executed unless it * No further jobs will be executed unless it
* can be finished while other current pending builds * can be finished while other current pending builds
...@@ -2507,7 +2506,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -2507,7 +2506,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
/** /**
* Called by {@link Job#renameTo(String)} to update relevant data structure. * Called by {@link Job#renameTo(String)} to update relevant data structure.
* assumed to be synchronized on Hudson by the caller. * assumed to be synchronized on Jenkins by the caller.
*/ */
public void onRenamed(TopLevelItem job, String oldName, String newName) throws IOException { public void onRenamed(TopLevelItem job, String oldName, String newName) throws IOException {
items.remove(oldName); items.remove(oldName);
...@@ -2616,7 +2615,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -2616,7 +2615,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
final Set<String> loadedNames = Collections.synchronizedSet(new HashSet<String>()); final Set<String> loadedNames = Collections.synchronizedSet(new HashSet<String>());
TaskGraphBuilder g = new TaskGraphBuilder(); TaskGraphBuilder g = new TaskGraphBuilder();
Handle loadHudson = g.requires(EXTENSIONS_AUGMENTED).attains(JOB_LOADED).add("Loading global config", new Executable() { Handle loadJenkins = g.requires(EXTENSIONS_AUGMENTED).attains(JOB_LOADED).add("Loading global config", new Executable() {
public void run(Reactor session) throws Exception { public void run(Reactor session) throws Exception {
XmlFile cfg = getConfigFile(); XmlFile cfg = getConfigFile();
if (cfg.exists()) { if (cfg.exists()) {
...@@ -2642,7 +2641,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -2642,7 +2641,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
}); });
for (final File subdir : subdirs) { for (final File subdir : subdirs) {
g.requires(loadHudson).attains(JOB_LOADED).notFatal().add("Loading job "+subdir.getName(),new Executable() { g.requires(loadJenkins).attains(JOB_LOADED).notFatal().add("Loading job "+subdir.getName(),new Executable() {
public void run(Reactor session) throws Exception { public void run(Reactor session) throws Exception {
if(!Items.getConfigFile(subdir).exists()) { if(!Items.getConfigFile(subdir).exists()) {
//Does not have job config file, so it is not a jenkins job hence skip it //Does not have job config file, so it is not a jenkins job hence skip it
...@@ -2682,7 +2681,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -2682,7 +2681,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
// initialize views by inserting the default view if necessary // initialize views by inserting the default view if necessary
// this is both for clean Hudson and for backward compatibility. // this is both for clean Jenkins and for backward compatibility.
if(views.size()==0 || primaryView==null) { if(views.size()==0 || primaryView==null) {
View v = new AllView(Messages.Hudson_ViewName()); View v = new AllView(Messages.Hudson_ViewName());
setViewOwner(v); setViewOwner(v);
...@@ -3298,7 +3297,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -3298,7 +3297,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Perform a restart of Hudson, if we can. * Perform a restart of Jenkins, if we can.
* *
* This first replaces "app" to {@link HudsonIsRestarting} * This first replaces "app" to {@link HudsonIsRestarting}
*/ */
...@@ -3317,7 +3316,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -3317,7 +3316,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Queues up a restart of Hudson for when there are no builds running, if we can. * Queues up a restart of Jenkins for when there are no builds running, if we can.
* *
* This first replaces "app" to {@link HudsonIsRestarting} * This first replaces "app" to {@link HudsonIsRestarting}
* *
...@@ -3339,7 +3338,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -3339,7 +3338,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
*/ */
public void restart() throws RestartNotSupportedException { public void restart() throws RestartNotSupportedException {
final Lifecycle lifecycle = Lifecycle.get(); final Lifecycle lifecycle = Lifecycle.get();
lifecycle.verifyRestartable(); // verify that Hudson is restartable lifecycle.verifyRestartable(); // verify that Jenkins is restartable
servletContext.setAttribute("app", new HudsonIsRestarting()); servletContext.setAttribute("app", new HudsonIsRestarting());
new Thread("restart thread") { new Thread("restart thread") {
...@@ -3356,9 +3355,9 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -3356,9 +3355,9 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
listener.onRestart(); listener.onRestart();
lifecycle.restart(); lifecycle.restart();
} catch (InterruptedException e) { } catch (InterruptedException e) {
LOGGER.log(Level.WARNING, "Failed to restart Hudson",e); LOGGER.log(Level.WARNING, "Failed to restart Jenkins",e);
} catch (IOException e) { } catch (IOException e) {
LOGGER.log(Level.WARNING, "Failed to restart Hudson",e); LOGGER.log(Level.WARNING, "Failed to restart Jenkins",e);
} }
} }
}.start(); }.start();
...@@ -3370,7 +3369,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -3370,7 +3369,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
*/ */
public void safeRestart() throws RestartNotSupportedException { public void safeRestart() throws RestartNotSupportedException {
final Lifecycle lifecycle = Lifecycle.get(); final Lifecycle lifecycle = Lifecycle.get();
lifecycle.verifyRestartable(); // verify that Hudson is restartable lifecycle.verifyRestartable(); // verify that Jenkins is restartable
// Quiet down so that we won't launch new builds. // Quiet down so that we won't launch new builds.
isQuietingDown = true; isQuietingDown = true;
...@@ -4043,7 +4042,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -4043,7 +4042,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Live view of recent {@link LogRecord}s produced by Hudson. * Live view of recent {@link LogRecord}s produced by Jenkins.
*/ */
public static List<LogRecord> logRecords = Collections.emptyList(); // initialized to dummy value to avoid NPE public static List<LogRecord> logRecords = Collections.emptyList(); // initialized to dummy value to avoid NPE
...@@ -4099,20 +4098,20 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -4099,20 +4098,20 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
} }
/** /**
* Version number of this Hudson. * Version number of this Jenkins.
*/ */
public static String VERSION="?"; public static String VERSION="?";
/** /**
* Parses {@link #VERSION} into {@link VersionNumber}, or null if it's not parseable as a version number * Parses {@link #VERSION} into {@link VersionNumber}, or null if it's not parseable as a version number
* (such as when Hudson is run with "mvn hudson-dev:run") * (such as when Jenkins is run with "mvn hudson-dev:run")
*/ */
public static VersionNumber getVersion() { public static VersionNumber getVersion() {
try { try {
return new VersionNumber(VERSION); return new VersionNumber(VERSION);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
try { try {
// for non-released version of Hudson, this looks like "1.345 (private-foobar), so try to approximate. // for non-released version of Jenkins, this looks like "1.345 (private-foobar), so try to approximate.
int idx = VERSION.indexOf(' '); int idx = VERSION.indexOf(' ');
if (idx>0) if (idx>0)
return new VersionNumber(VERSION.substring(0,idx)); return new VersionNumber(VERSION.substring(0,idx));
...@@ -4153,7 +4152,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve ...@@ -4153,7 +4152,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
/** /**
* Prefix to resources alongside view scripts. * Prefix to resources alongside view scripts.
* Strings like "/resources/VERSION", which avoids Hudson to pick up * Strings like "/resources/VERSION", which avoids Jenkins to pick up
* stale cache when the user upgrades to a different version. * stale cache when the user upgrades to a different version.
* <p> * <p>
* Value computed in {@link WebAppMain}. * Value computed in {@link WebAppMain}.
......
...@@ -28,7 +28,7 @@ import javax.servlet.http.HttpSession; ...@@ -28,7 +28,7 @@ import javax.servlet.http.HttpSession;
* {@link Authentication} often contains {@link UserDetails} implemented by a plugin, * {@link Authentication} often contains {@link UserDetails} implemented by a plugin,
* but when it's persisted as a part of {@link HttpSession}, such instance will never * but when it's persisted as a part of {@link HttpSession}, such instance will never
* de-serialize correctly because the container isn't aware of additional classloading * de-serialize correctly because the container isn't aware of additional classloading
* in Hudson. * in Jenkins.
* *
* <p> * <p>
* Jenkins doesn't work with a clustering anyway, and so it's better to just not persist * Jenkins doesn't work with a clustering anyway, and so it's better to just not persist
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册