Skip to content

Commit

Permalink
Merge branch 'oklch' into styles-test
Browse files Browse the repository at this point in the history
  • Loading branch information
janfaracik committed Jan 5, 2025
2 parents 0b5ae89 + b67919f commit 1fbb6df
Show file tree
Hide file tree
Showing 23 changed files with 157 additions and 158 deletions.
1 change: 0 additions & 1 deletion .stylelintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ module.exports = {
],
},
],
"color-function-notation": "legacy",
"alpha-value-notation": "number",
"number-max-precision": 5,
"function-no-unknown": null,
Expand Down
29 changes: 12 additions & 17 deletions core/src/main/java/hudson/cli/CLICommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,6 @@ public int main(List<String> args, Locale locale, InputStream stdin, PrintStream
this.stdout = stdout;
this.stderr = stderr;
this.locale = locale;
registerOptionHandlers();
CmdLineParser p = getCmdLineParser();

// add options from the authenticator
Expand Down Expand Up @@ -527,20 +526,6 @@ protected CLICommand createClone() {
}
}

/**
* Auto-discovers {@link OptionHandler}s and add them to the given command line parser.
*/
protected void registerOptionHandlers() {
try {
for (Class c : Index.list(OptionHandlerExtension.class, Jenkins.get().pluginManager.uberClassLoader, Class.class)) {
Type t = Types.getBaseClass(c, OptionHandler.class);
CmdLineParser.registerHandler(Types.erasure(Types.getTypeArgument(t, 0)), c);
}
} catch (IOException e) {
throw new Error(e);
}
}

/**
* Returns all the registered {@link CLICommand}s.
*/
Expand Down Expand Up @@ -577,11 +562,21 @@ public static CLICommand getCurrent() {

static {
// register option handlers that are defined
ClassLoaders cls = new ClassLoaders();
Jenkins j = Jenkins.getInstanceOrNull();
if (j != null) { // only when running on the controller
cls.put(j.getPluginManager().uberClassLoader);
// Register OptionHandlers through META-INF/services/annotations and Annotation Indexer
try {
for (Class c : Index.list(OptionHandlerExtension.class, Jenkins.get().pluginManager.uberClassLoader, Class.class)) {
Type t = Types.getBaseClass(c, OptionHandler.class);
CmdLineParser.registerHandler(Types.erasure(Types.getTypeArgument(t, 0)), c);
}
} catch (IOException e) {
throw new UncheckedIOException(e);
}

// Register OptionHandlers through META-INF/services and Commons Discovery
ClassLoaders cls = new ClassLoaders();
cls.put(j.getPluginManager().uberClassLoader);
ResourceNameIterator servicesIter =
new DiscoverServiceNames(cls).findResourceNames(OptionHandler.class.getName());
final ResourceClassIterator itr =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@ protected CmdLineParser getCmdLineParser() {

private CmdLineParser bindMethod(List<MethodBinder> binders) {

registerOptionHandlers();
ParserProperties properties = ParserProperties.defaults().withAtSyntax(ALLOW_AT_SYNTAX);
CmdLineParser parser = new CmdLineParser(null, properties);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@

/**
* {@link OptionHandler}s that should be auto-discovered.
* TODO is this actually necessary? {@code @MetaInfServices(OptionHandler.class)} seems to work as well.
* @author Kohsuke Kawaguchi
*/
@Indexed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,18 @@

package hudson.cli.handlers;

import hudson.cli.declarative.OptionHandlerExtension;
import hudson.model.AbstractItem;
import org.kohsuke.MetaInfServices;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
import org.kohsuke.args4j.spi.OptionHandler;
import org.kohsuke.args4j.spi.Setter;

/**
* Refers to an {@link AbstractItem} by name.
* @since 1.538
*/
@MetaInfServices(OptionHandler.class) public class AbstractItemOptionHandler extends GenericItemOptionHandler<AbstractItem> {
@OptionHandlerExtension
public class AbstractItemOptionHandler extends GenericItemOptionHandler<AbstractItem> {

public AbstractItemOptionHandler(CmdLineParser parser, OptionDef option, Setter<AbstractItem> setter) {
super(parser, option, setter);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,18 @@

package hudson.cli.handlers;

import hudson.cli.declarative.OptionHandlerExtension;
import hudson.model.AbstractProject;
import org.kohsuke.MetaInfServices;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
import org.kohsuke.args4j.spi.OptionHandler;
import org.kohsuke.args4j.spi.Setter;

/**
* Refer to {@link AbstractProject} by its name.
*
* @author Kohsuke Kawaguchi
*/
@MetaInfServices(OptionHandler.class)
@OptionHandlerExtension
@SuppressWarnings("rawtypes")
public class AbstractProjectOptionHandler extends GenericItemOptionHandler<AbstractProject> {
public AbstractProjectOptionHandler(CmdLineParser parser, OptionDef option, Setter<AbstractProject> setter) {
Expand Down
5 changes: 2 additions & 3 deletions core/src/main/java/hudson/cli/handlers/JobOptionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,18 @@

package hudson.cli.handlers;

import hudson.cli.declarative.OptionHandlerExtension;
import hudson.model.Job;
import org.kohsuke.MetaInfServices;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
import org.kohsuke.args4j.spi.OptionHandler;
import org.kohsuke.args4j.spi.Setter;

/**
* Refer to {@link Job} by its name.
*
* @author Kohsuke Kawaguchi
*/
@MetaInfServices(OptionHandler.class)
@OptionHandlerExtension
@SuppressWarnings("rawtypes")
public class JobOptionHandler extends GenericItemOptionHandler<Job> {
public JobOptionHandler(CmdLineParser parser, OptionDef option, Setter<Job> setter) {
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/java/hudson/cli/handlers/NodeOptionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@

package hudson.cli.handlers;

import hudson.cli.declarative.OptionHandlerExtension;
import hudson.model.Node;
import jenkins.model.Jenkins;
import org.kohsuke.MetaInfServices;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
Expand All @@ -40,7 +40,7 @@
* @author ogondza
* @since 1.526
*/
@MetaInfServices
@OptionHandlerExtension
public class NodeOptionHandler extends OptionHandler<Node> {

public NodeOptionHandler(CmdLineParser parser, OptionDef option, Setter<Node> setter) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,19 @@

package hudson.cli.handlers;

import hudson.cli.declarative.OptionHandlerExtension;
import jenkins.model.ParameterizedJobMixIn;
import org.kohsuke.MetaInfServices;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.DoNotUse;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
import org.kohsuke.args4j.spi.OptionHandler;
import org.kohsuke.args4j.spi.Setter;

/**
* Refer to {@link jenkins.model.ParameterizedJobMixIn.ParameterizedJob} by its name.
*/
@Restricted(DoNotUse.class)
@MetaInfServices(OptionHandler.class)
@OptionHandlerExtension
@SuppressWarnings("rawtypes")
public class ParameterizedJobOptionHandler extends GenericItemOptionHandler<ParameterizedJobMixIn.ParameterizedJob> {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package hudson.cli.handlers;

import hudson.cli.declarative.OptionHandlerExtension;
import hudson.model.TopLevelItem;
import org.kohsuke.MetaInfServices;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
import org.kohsuke.args4j.spi.OptionHandler;
import org.kohsuke.args4j.spi.Setter;

/**
* Refers to {@link TopLevelItem} by its name.
*
* @author Kohsuke Kawaguchi
*/
@MetaInfServices(OptionHandler.class)
@OptionHandlerExtension
public class TopLevelItemOptionHandler extends GenericItemOptionHandler<TopLevelItem> {
public TopLevelItemOptionHandler(CmdLineParser parser, OptionDef option, Setter<TopLevelItem> setter) {
super(parser, option, setter);
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/java/hudson/cli/handlers/ViewOptionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
package hudson.cli.handlers;

import edu.umd.cs.findbugs.annotations.CheckForNull;
import hudson.cli.declarative.OptionHandlerExtension;
import hudson.model.View;
import hudson.model.ViewGroup;
import java.util.StringTokenizer;
import jenkins.model.Jenkins;
import org.kohsuke.MetaInfServices;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
Expand Down Expand Up @@ -58,7 +58,7 @@
* @author ogondza
* @since 1.538
*/
@MetaInfServices
@OptionHandlerExtension
public class ViewOptionHandler extends OptionHandler<View> {

public ViewOptionHandler(CmdLineParser parser, OptionDef option, Setter<View> setter) {
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/resources/hudson/model/Job/_api.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ THE SOFTWARE.
<h2>Retrieving all builds</h2>
<p>
To prevent Jenkins from having to load all builds from disk when someone accesses the job API, the <code>builds</code>
tree only contains the 50 newest builds. If you really need to get all builds, access the <code>allBuilds</code> tree,
tree only contains the 100 newest builds. If you really need to get all builds, access the <code>allBuilds</code> tree,
e.g. by fetching <code>…/api/xml?tree=allBuilds[…]</code>. Note that this may result in significant performance degradation
if you have a lot of builds in this job.
</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ java.util.HashMap
java.util.HashSet
java.util.Hashtable
java.util.ImmutableCollections$List12
java.util.ImmutableCollections$ListN
java.util.LinkedHashMap
java.util.LinkedHashSet
java.util.LinkedList
Expand Down
67 changes: 38 additions & 29 deletions core/src/main/resources/lib/hudson/ballColorTd.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ THE SOFTWARE.
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:x="jelly:xml" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<st:documentation>
Display the ball in a TD.
<st:attribute name="it" type="hudson.model.BallColor">
Color of the ball or null to skip drawing.
Display the build status icon in a table cell.
<st:attribute name="it" type="hudson.model.StatusIcon">
Icon to be displayed.
</st:attribute>
<st:attribute name="iconSizeClass">
Specifies the size of the icon. If unspecified, it inherits from
Expand Down Expand Up @@ -56,33 +56,42 @@ THE SOFTWARE.
</j:choose>
</j:if>

<j:choose>
<j:when test="${iconClassName != null}">
<l:icon class="${iconClassName} ${subIconSizeClass}" alt="${it.description}" tooltip="${it.description}" />
</j:when>
<j:otherwise>
<!-- "it" is not a hudson.model.BallColor. Let's try figure out the icon from its URL. -->
<j:set var="iconUrl" value="${it.getImageOf(iconSize)}"/>
<j:if test="${iconUrl.startsWith(imagesURL)}">
<!-- Normalize the icon URL -->
<j:set var="iconUrl" value="${iconUrl.substring(imagesURL.length() + 1)}"/>
</j:if>
<!-- if its actually a BallColor then use the appropriate build symbol -->
<j:if test="${attrs.it.baseColor != null}">
<l:icon src="symbol-status-${attrs.it.iconName}" class="${subIconSizeClass}" alt="${it.description}" tooltip="${it.description}" />
</j:if>

<j:if test="${attrs.it.baseColor == null}">
<j:choose>
<j:when test="${iconClassName != null}">
<l:icon class="${iconClassName} ${subIconSizeClass}" alt="${it.description}" tooltip="${it.description}"/>
</j:when>
<j:otherwise>
<!-- "it" is not a hudson.model.BallColor. Let's try figure out the icon from its URL. -->
<j:set var="iconUrl" value="${it.getImageOf(iconSize)}"/>
<j:if test="${iconUrl.startsWith(imagesURL)}">
<!-- Normalize the icon URL -->
<j:set var="iconUrl" value="${iconUrl.substring(imagesURL.length() + 1)}"/>
</j:if>

<!-- See if we can get an Icon def from the URL -->
<j:set var="icon" value="${icons.getIconByUrl(iconUrl)}"/>
<j:choose>
<j:when test="${icon != null}">
<!-- We found the Icon def -->
<l:icon class="${icon.classSpec}" alt="${it.description}" tooltip="${it.description}" style="${attrs.style}" />
</j:when>
<j:otherwise>
<!-- We don't seem to have this icon in the IconSet... fallback again... -->
<j:set var="iconUrl" value="${it.getImageOf(iconSize)}"/>
<l:icon src="${iconUrl}" class="${iconSizeClass}" alt="${it.description}" tooltip="${it.description}" style="${attrs.style}" />
</j:otherwise>
</j:choose>
</j:otherwise>
</j:choose>
<!-- See if we can get an Icon def from the URL -->
<j:set var="icon" value="${icons.getIconByUrl(iconUrl)}"/>
<j:choose>
<j:when test="${icon != null}">
<!-- We found the Icon def -->
<l:icon class="${icon.classSpec}" alt="${it.description}" tooltip="${it.description}"
style="${attrs.style}"/>
</j:when>
<j:otherwise>
<!-- We don't seem to have this icon in the IconSet... fallback again... -->
<j:set var="iconUrl" value="${it.getImageOf(iconSize)}"/>
<l:icon src="${iconUrl}" class="${iconSizeClass}" alt="${it.description}" tooltip="${it.description}"
style="${attrs.style}"/>
</j:otherwise>
</j:choose>
</j:otherwise>
</j:choose>
</j:if>
</j:if>
</div>
</td>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,5 +68,5 @@
"engines": {
"node": ">=20.0.0"
},
"packageManager": "yarn@4.5.3"
"packageManager": "yarn@4.6.0"
}
Loading

0 comments on commit 1fbb6df

Please sign in to comment.