提交 ec4f9c86 编写于 作者: K kohsuke

sort items case insensitively (#1211)


git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@6864 71c3de6d-444a-0410-be80-ed276b4c234a
上级 38cc646c
package hudson;
import hudson.remoting.VirtualChannel;
import hudson.remoting.Callable;
import hudson.remoting.VirtualChannel;
import hudson.util.CaseInsensitiveComparator;
import java.io.File;
import java.io.Serializable;
import java.io.IOException;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
import java.util.Comparator;
import java.util.Collections;
/**
* Environment variables.
......@@ -27,11 +26,11 @@ import java.util.Collections;
public class EnvVars extends TreeMap<String,String> {
public EnvVars() {
super(CASE_INSENSITIVE_COMPARATOR);
super(CaseInsensitiveComparator.INSTANCE);
}
public EnvVars(Map<String,String> m) {
super(CASE_INSENSITIVE_COMPARATOR);
super(CaseInsensitiveComparator.INSTANCE);
putAll(m);
}
......@@ -85,21 +84,8 @@ public class EnvVars extends TreeMap<String,String> {
private static final long serialVersionUID = 1L;
}
/**
* Compares strings case insensitively.
*/
private static final Comparator<String> CASE_INSENSITIVE_COMPARATOR = new CaseInsensitiveComparator();
/**
* Environmental variables that we've inherited.
*/
public static final Map<String,String> masterEnvVars = new EnvVars(System.getenv());
private static class CaseInsensitiveComparator implements Comparator<String>, Serializable {
public int compare(String lhs, String rhs) {
return lhs.compareToIgnoreCase(rhs);
}
private static final long serialVersionUID = 1L;
}
}
......@@ -64,6 +64,7 @@ import hudson.util.MultipartFormDataParser;
import hudson.util.TextFile;
import hudson.util.XStream2;
import hudson.util.RemotingDiagnostics;
import hudson.util.CaseInsensitiveComparator;
import hudson.widgets.Widget;
import net.sf.json.JSONObject;
import org.acegisecurity.Authentication;
......@@ -201,7 +202,7 @@ public final class Hudson extends View implements ItemGroup<TopLevelItem>, Node,
/**
* All {@link Item}s keyed by their {@link Item#getName() name}s.
*/
/*package*/ transient final Map<String,TopLevelItem> items = new CopyOnWriteMap.Tree<String,TopLevelItem>();
/*package*/ transient final Map<String,TopLevelItem> items = new CopyOnWriteMap.Tree<String,TopLevelItem>(CaseInsensitiveComparator.INSTANCE);
/**
* The sole instance.
......
package hudson.model;
import hudson.Util;
import hudson.util.CaseInsensitiveComparator;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
......@@ -23,7 +24,7 @@ public class ListView extends View {
/**
* List of job names. This is what gets serialized.
*/
/*package*/ final Set<String> jobNames = new TreeSet<String>();
/*package*/ final Set<String> jobNames = new TreeSet<String>(CaseInsensitiveComparator.INSTANCE);
/**
* Name of this view.
......
package hudson.util;
import java.util.Comparator;
import java.io.Serializable;
/**
* Case-insensitive string comparator.
*
* @author Kohsuke Kawaguchi
*/
public final class CaseInsensitiveComparator implements Comparator<String>, Serializable {
public static final Comparator<String> INSTANCE = new CaseInsensitiveComparator();
private CaseInsensitiveComparator() {}
public int compare(String lhs, String rhs) {
return lhs.compareToIgnoreCase(rhs);
}
private static final long serialVersionUID = 1L;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册