提交 647c0577 编写于 作者: N Nicolas De Loof

Fix typo : cannon != canon

上级 00c57859
...@@ -314,15 +314,15 @@ public class User extends AbstractModelObject implements AccessControlled, Descr ...@@ -314,15 +314,15 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
return null; return null;
// sort resolvers by priority // sort resolvers by priority
List<CannonicalIdResolver> resolvers = new ArrayList<CannonicalIdResolver>(Jenkins.getInstance().getExtensionList(CannonicalIdResolver.class)); List<CanonicalIdResolver> resolvers = new ArrayList<CanonicalIdResolver>(Jenkins.getInstance().getExtensionList(CanonicalIdResolver.class));
Collections.sort(resolvers); Collections.sort(resolvers);
String id = null; String id = null;
for (CannonicalIdResolver resolver : resolvers) { for (CanonicalIdResolver resolver : resolvers) {
id = resolver.resolveCannonicalId(idOrFullName, context); id = resolver.resolveCanonicalId(idOrFullName, context);
if (id != null) break; if (id != null) break;
} }
// DefaultUserCannonicalIdResolver will always return a non-null id if all other CannonicalIdResolver failed // DefaultUserCanonicalIdResolver will always return a non-null id if all other CanonicalIdResolver failed
String idkey = id.toLowerCase(Locale.ENGLISH); String idkey = id.toLowerCase(Locale.ENGLISH);
...@@ -658,15 +658,16 @@ public class User extends AbstractModelObject implements AccessControlled, Descr ...@@ -658,15 +658,16 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
return Collections.unmodifiableList(actions); return Collections.unmodifiableList(actions);
} }
public static abstract class CannonicalIdResolver extends AbstractDescribableImpl<CannonicalIdResolver> implements Comparable<CannonicalIdResolver> { public static abstract class CanonicalIdResolver extends AbstractDescribableImpl<CanonicalIdResolver> implements Comparable<CanonicalIdResolver> {
/** /**
* context key for realm (domain) where idOrFullName has been retreived from. * context key for realm (domain) where idOrFullName has been retreived from.
* Can be used (for example) to distinguish ambiguous committer ID using the SCM URL. * Can be used (for example) to distinguish ambiguous committer ID using the SCM URL.
* Associated Value is a {@link String}
*/ */
public static final String REALM = "realm"; public static final String REALM = "realm";
public int compareTo(CannonicalIdResolver o) { public int compareTo(CanonicalIdResolver o) {
// reverse priority order // reverse priority order
int i = getPriority(); int i = getPriority();
int j = o.getPriority(); int j = o.getPriority();
...@@ -677,7 +678,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr ...@@ -677,7 +678,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
* extract user ID from idOrFullName with help from contextual infos. * extract user ID from idOrFullName with help from contextual infos.
* can return <code>null</code> if no user ID matched the input * can return <code>null</code> if no user ID matched the input
*/ */
public abstract @Nullable String resolveCannonicalId(String idOrFullName, Map context); public abstract @CheckForNull String resolveCanonicalId(String idOrFullName, Map<String, ?> context);
public int getPriority() { public int getPriority() {
return 1; return 1;
......
...@@ -32,16 +32,16 @@ import hudson.model.User; ...@@ -32,16 +32,16 @@ import hudson.model.User;
import java.util.Map; import java.util.Map;
/** /**
* Default User.CannonicalIdResolver to escape unsupported characters and generate user ID. * Default User.CanonicalIdResolver to escape unsupported characters and generate user ID.
* Compared to other implementations, this resolver will always return an ID * Compared to other implementations, this resolver will always return an ID
* *
* @author: <a hef="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a> * @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
*/ */
@Extension @Extension
public class DefaultUserCannonicalIdResolver extends User.CannonicalIdResolver { public class DefaultUserCanonicalIdResolver extends User.CanonicalIdResolver {
@Override @Override
public String resolveCannonicalId(String idOrFullName, Map context) { public String resolveCanonicalId(String idOrFullName, Map<String, ?> context) {
String id = idOrFullName.replace('\\', '_').replace('/', '_').replace('<','_') String id = idOrFullName.replace('\\', '_').replace('/', '_').replace('<','_')
.replace('>', '_'); // 4 replace() still faster than regex .replace('>', '_'); // 4 replace() still faster than regex
if (Functions.isWindows()) id = id.replace(':','_'); if (Functions.isWindows()) id = id.replace(':','_');
...@@ -54,11 +54,11 @@ public class DefaultUserCannonicalIdResolver extends User.CannonicalIdResolver { ...@@ -54,11 +54,11 @@ public class DefaultUserCannonicalIdResolver extends User.CannonicalIdResolver {
} }
@Override @Override
public Descriptor<User.CannonicalIdResolver> getDescriptor() { public Descriptor<User.CanonicalIdResolver> getDescriptor() {
return DESCRIPTOR; return DESCRIPTOR;
} }
public static final Descriptor<User.CannonicalIdResolver> DESCRIPTOR = new Descriptor<User.CannonicalIdResolver>() { public static final Descriptor<User.CanonicalIdResolver> DESCRIPTOR = new Descriptor<User.CanonicalIdResolver>() {
public String getDisplayName() { public String getDisplayName() {
return "compute default user ID"; return "compute default user ID";
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册