mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-13 12:02:20 +00:00
Merge branch 'master' into printStackTrace-JDK-6507809
This commit is contained in:
commit
532e9d24e8
810 files changed
+22713
-9604
No files matched your search
@@ -28,6 +28,7 @@ package hudson;
|
||||
import hudson.cli.CLICommand;
|
||||
import hudson.console.ConsoleAnnotationDescriptor;
|
||||
import hudson.console.ConsoleAnnotatorFactory;
|
||||
import hudson.init.InitMilestone;
|
||||
import hudson.model.AbstractProject;
|
||||
import hudson.model.Action;
|
||||
import hudson.model.Describable;
|
||||
@@ -200,7 +201,25 @@ public class Functions {
|
||||
public static String rfc822Date(Calendar cal) {
|
||||
return Util.RFC822_DATETIME_FORMATTER.format(cal.getTime());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* During Jenkins start-up, before {@link InitMilestone#PLUGINS_STARTED} the extensions lists will be empty
|
||||
* and they are not guaranteed to be fully populated until after {@link InitMilestone#EXTENSIONS_AUGMENTED}.
|
||||
* If you attempt to access the extensions list from a UI thread while the extensions are being loaded you will
|
||||
* hit a big honking great monitor lock that will block until the effective extension list has been determined
|
||||
* (as if a plugin fails to start, all of the failed plugin's extensions and any dependent plugins' extensions
|
||||
* will have to be evicted from the list of extensions. In practical terms this only affects the
|
||||
* "Jenkins is loading" screen, but as that screen uses the generic layouts we provide this utility method
|
||||
* so that the generic layouts can avoid iterating extension lists while Jenkins is starting up.
|
||||
*
|
||||
* @return {@code true} if the extensions lists have been populated.
|
||||
* @since 1.607
|
||||
*/
|
||||
public static boolean isExtensionsAvailable() {
|
||||
final Jenkins jenkins = Jenkins.getInstance();
|
||||
return jenkins != null && jenkins.getInitLevel().compareTo(InitMilestone.EXTENSIONS_AUGMENTED) >= 0;
|
||||
}
|
||||
|
||||
public static void initPageVariables(JellyContext context) {
|
||||
StaplerRequest currentRequest = Stapler.getCurrentRequest();
|
||||
String rootURL = currentRequest.getContextPath();
|
||||
@@ -418,6 +437,7 @@ public class Functions {
|
||||
* JEXL now supports the real ternary operator "x?y:z", so this work around
|
||||
* is no longer necessary.
|
||||
*/
|
||||
@Deprecated
|
||||
public static Object ifThenElse(boolean cond, Object thenValue, Object elseValue) {
|
||||
return cond ? thenValue : elseValue;
|
||||
}
|
||||
@@ -1585,6 +1605,7 @@ public class Functions {
|
||||
* @deprecated
|
||||
* Use {@link #calcCheckUrl}
|
||||
*/
|
||||
@Deprecated
|
||||
public String getCheckUrl(String userDefined, Object descriptor, String field) {
|
||||
if(userDefined!=null || field==null) return userDefined;
|
||||
if (descriptor instanceof Descriptor) {
|
||||
@@ -1835,6 +1856,7 @@ public class Functions {
|
||||
* @deprecated as of 1.451
|
||||
* Use {@link #getAvatar}
|
||||
*/
|
||||
@Deprecated
|
||||
public String getUserAvatar(User user, String avatarSize) {
|
||||
return getAvatar(user,avatarSize);
|
||||
}
|
||||
@@ -1899,9 +1921,10 @@ public class Functions {
|
||||
|
||||
TcpSlaveAgentListener tal = j.tcpSlaveAgentListener;
|
||||
if (tal !=null) {
|
||||
rsp.setIntHeader("X-Hudson-CLI-Port", tal.getPort());
|
||||
rsp.setIntHeader("X-Jenkins-CLI-Port", tal.getPort());
|
||||
rsp.setIntHeader("X-Jenkins-CLI2-Port", tal.getPort());
|
||||
int p = TcpSlaveAgentListener.CLI_PORT !=null ? TcpSlaveAgentListener.CLI_PORT : tal.getPort();
|
||||
rsp.setIntHeader("X-Hudson-CLI-Port", p);
|
||||
rsp.setIntHeader("X-Jenkins-CLI-Port", p);
|
||||
rsp.setIntHeader("X-Jenkins-CLI2-Port", p);
|
||||
rsp.setHeader("X-Jenkins-CLI-Host", TcpSlaveAgentListener.CLI_HOST_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user