Stop using CharMatcher.javaLetterOrDigit

CharMatcher.javaLetterOrDigit is deprecated in Guava 23.2 [1].

Replace it with regular expression for matching.

[1] https://github.com/google/guava/releases/tag/v23.2

Change-Id: Icaf7504e7250beaa92b9c86ad592649bd6fafcba
This commit is contained in:
David Pursehouse
2017-12-04 14:45:35 +09:00
parent ef976a47fb
commit ec46d92a77
2 changed files with 16 additions and 16 deletions

View File

@@ -14,7 +14,6 @@
package com.google.gerrit.server.config; package com.google.gerrit.server.config;
import com.google.common.base.CharMatcher;
import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.common.data.GlobalCapability;
import com.google.gerrit.extensions.config.CapabilityDefinition; import com.google.gerrit.extensions.config.CapabilityDefinition;
import com.google.gerrit.extensions.registration.DynamicMap; import com.google.gerrit.extensions.registration.DynamicMap;
@@ -24,6 +23,7 @@ import com.google.inject.Provider;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import java.util.regex.Pattern;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -31,6 +31,8 @@ import org.slf4j.LoggerFactory;
@Singleton @Singleton
public class ListCapabilities implements RestReadView<ConfigResource> { public class ListCapabilities implements RestReadView<ConfigResource> {
private static final Logger log = LoggerFactory.getLogger(ListCapabilities.class); private static final Logger log = LoggerFactory.getLogger(ListCapabilities.class);
private static final Pattern PLUGIN_NAME_PATTERN = Pattern.compile("^[a-zA-Z0-9-]+$");
private final DynamicMap<CapabilityDefinition> pluginCapabilities; private final DynamicMap<CapabilityDefinition> pluginCapabilities;
@Inject @Inject
@@ -59,10 +61,11 @@ public class ListCapabilities implements RestReadView<ConfigResource> {
private void collectPluginCapabilities(Map<String, CapabilityInfo> output) { private void collectPluginCapabilities(Map<String, CapabilityInfo> output) {
for (String pluginName : pluginCapabilities.plugins()) { for (String pluginName : pluginCapabilities.plugins()) {
if (!isPluginNameSane(pluginName)) { if (!PLUGIN_NAME_PATTERN.matcher(pluginName).matches()) {
log.warn( log.warn(
"Plugin name {} must match [A-Za-z0-9-]+ to use capabilities;" + " rename the plugin", "Plugin name '{}' must match '{}' to use capabilities; rename the plugin",
pluginName); pluginName,
PLUGIN_NAME_PATTERN.pattern());
continue; continue;
} }
for (Map.Entry<String, Provider<CapabilityDefinition>> entry : for (Map.Entry<String, Provider<CapabilityDefinition>> entry :
@@ -73,10 +76,6 @@ public class ListCapabilities implements RestReadView<ConfigResource> {
} }
} }
private static boolean isPluginNameSane(String pluginName) {
return CharMatcher.javaLetterOrDigit().or(CharMatcher.is('-')).matchesAllOf(pluginName);
}
public static class CapabilityInfo { public static class CapabilityInfo {
public String id; public String id;
public String name; public String name;

View File

@@ -14,7 +14,6 @@
package com.google.gerrit.server.project; package com.google.gerrit.server.project;
import com.google.common.base.CharMatcher;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.gerrit.extensions.api.projects.ConfigInfo; import com.google.gerrit.extensions.api.projects.ConfigInfo;
@@ -44,6 +43,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.regex.Pattern;
import org.eclipse.jgit.errors.ConfigInvalidException; import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.errors.RepositoryNotFoundException; import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -52,6 +52,8 @@ import org.slf4j.LoggerFactory;
@Singleton @Singleton
public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> { public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
private static final Logger log = LoggerFactory.getLogger(PutConfig.class); private static final Logger log = LoggerFactory.getLogger(PutConfig.class);
private static final Pattern PARAMETER_NAME_PATTERN =
Pattern.compile("^[a-zA-Z0-9]+[a-zA-Z0-9-]*$");
private final boolean serverEnableSignedPush; private final boolean serverEnableSignedPush;
private final Provider<MetaDataUpdate.User> metaDataUpdateFactory; private final Provider<MetaDataUpdate.User> metaDataUpdateFactory;
@@ -196,8 +198,12 @@ public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
for (Entry<String, ConfigValue> v : e.getValue().entrySet()) { for (Entry<String, ConfigValue> v : e.getValue().entrySet()) {
ProjectConfigEntry projectConfigEntry = pluginConfigEntries.get(pluginName, v.getKey()); ProjectConfigEntry projectConfigEntry = pluginConfigEntries.get(pluginName, v.getKey());
if (projectConfigEntry != null) { if (projectConfigEntry != null) {
if (!isValidParameterName(v.getKey())) { if (!PARAMETER_NAME_PATTERN.matcher(v.getKey()).matches()) {
log.warn("Parameter name '{}' must match '^[a-zA-Z0-9]+[a-zA-Z0-9-]*$'", v.getKey()); // TODO check why we have this restriction
log.warn(
"Parameter name '{}' must match '{}'",
v.getKey(),
PARAMETER_NAME_PATTERN.pattern());
continue; continue;
} }
String oldValue = cfg.getString(v.getKey()); String oldValue = cfg.getString(v.getKey());
@@ -287,9 +293,4 @@ public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
parameterName, pluginName, projectState.getProject().getName())); parameterName, pluginName, projectState.getProject().getName()));
} }
} }
private static boolean isValidParameterName(String name) {
return CharMatcher.javaLetterOrDigit().or(CharMatcher.is('-')).matchesAllOf(name)
&& !name.startsWith("-");
}
} }