Merge branch 'stable-2.15'
* stable-2.15:
Update mockito-core to 2.24.0
Upgrade bazlets to latest stable-2.15 to build with 2.15.9 API
Upgrade bazlets to latest stable-2.15 to build with 2.15.8 API
Upgrade bazlets to latest stable-2.14 to build with 2.14.18 API
Bazel: Include eclipse-out directory in .bazelignore
Add explanatory comment to empty BUILD file(s)
Extract byte-buddy version to a constant
Update mockito to 2.23.4
Change-Id: Ia9d94908c6e9bfc8cac607a6853cdd8df4f58f7c
diff --git a/WORKSPACE b/WORKSPACE
index 054fed2..6e259e5 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "ca34f0cf89b2e041ea7f4aa4b9696efc2d76746f",
+ commit = "c15e64db2a87c0453427ff45f79d1ed3899b5d92",
#local_path = "/home/<user>/projects/bazlets",
)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/Configuration.java
index db21aa9..c05a01b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/Configuration.java
@@ -17,11 +17,11 @@
import com.google.common.collect.ArrayTable;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Table;
-import com.google.gerrit.common.data.GroupDescription;
+import com.google.gerrit.common.data.GroupDescription.Basic;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.server.config.PluginConfigFactory;
-import com.google.gerrit.server.group.GroupsCollection;
+import com.google.gerrit.server.group.GroupResolver;
import com.google.inject.Inject;
import com.google.inject.ProvisionException;
import com.google.inject.Singleton;
@@ -30,14 +30,10 @@
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.jgit.lib.Config;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Singleton
class Configuration {
- private static final Logger log = LoggerFactory.getLogger(Configuration.class);
-
static final String RATE_LIMIT_TOKEN = "${rateLimit}";
private static final String GROUP_SECTION = "group";
private static final String DEFAULT_UPLOADPACK_LIMIT_EXCEEDED_MSG =
@@ -50,13 +46,13 @@
Configuration(
PluginConfigFactory pluginConfigFactory,
@PluginName String pluginName,
- GroupsCollection groupsCollection) {
+ GroupResolver groupsCollection) {
Config config = pluginConfigFactory.getGlobalPluginConfig(pluginName);
parseAllGroupsRateLimits(config, groupsCollection);
rateLimitExceededMsg = parseLimitExceededMsg(config);
}
- private void parseAllGroupsRateLimits(Config config, GroupsCollection groupsCollection) {
+ private void parseAllGroupsRateLimits(Config config, GroupResolver groupsCollection) {
Map<String, AccountGroup.UUID> groups = getResolvedGroups(config, groupsCollection);
if (groups.size() == 0) {
return;
@@ -68,16 +64,12 @@
}
private Map<String, AccountGroup.UUID> getResolvedGroups(
- Config config, GroupsCollection groupsCollection) {
+ Config config, GroupResolver groupsCollection) {
LinkedHashMap<String, AccountGroup.UUID> groups = new LinkedHashMap<>();
for (String groupName : config.getSubsections(GROUP_SECTION)) {
- GroupDescription.Basic groupDesc = groupsCollection.parseId(groupName);
-
- // Group either is mis-configured, never existed, or was deleted/removed since.
- if (groupDesc == null) {
- log.warn("Invalid configuration, group not found: {}", groupName);
- } else {
- groups.put(groupName, groupDesc.getGroupUUID());
+ Basic basic = groupsCollection.parseId(groupName);
+ if (basic != null) {
+ groups.put(groupName, basic.getGroupUUID());
}
}
return groups;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/UserResolver.java b/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/UserResolver.java
index 852367e..11dffed 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/UserResolver.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/ratelimiter/UserResolver.java
@@ -39,7 +39,9 @@
Optional<String> getUserName(String key) {
Optional<IdentifiedUser> user = getIdentifiedUser(key);
- return user.isPresent() ? Optional.ofNullable(user.get().getUserName()) : Optional.empty();
+ return user.isPresent()
+ ? Optional.ofNullable(user.get().getUserName().get())
+ : Optional.empty();
}
private static boolean isNumeric(String key) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java b/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java
index 78ef8dc..c17839d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java
@@ -20,7 +20,7 @@
import com.google.gerrit.common.data.GroupDescription;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.server.config.PluginConfigFactory;
-import com.google.gerrit.server.group.GroupsCollection;
+import com.google.gerrit.server.group.GroupResolver;
import com.google.inject.ProvisionException;
import java.util.Map;
import org.eclipse.jgit.errors.ConfigInvalidException;
@@ -40,7 +40,7 @@
@Rule public ExpectedException exception = ExpectedException.none();
@Mock private PluginConfigFactory pluginConfigFactoryMock;
- @Mock private GroupsCollection groupsCollectionMock;
+ @Mock private GroupResolver groupsCollectionMock;
@Mock private GroupDescription.Basic administratorsGroupDescMock;
@Mock private GroupDescription.Basic someGroupDescMock;
@@ -51,17 +51,16 @@
@Before
public void setUp() {
globalPluginConfig = new Config();
+
when(pluginConfigFactoryMock.getGlobalPluginConfig(PLUGIN_NAME)).thenReturn(globalPluginConfig);
- when(administratorsGroupDescMock.getName()).thenReturn("Administrators");
when(administratorsGroupDescMock.getGroupUUID())
.thenReturn(new AccountGroup.UUID("admin_uuid"));
- when(groupsCollectionMock.parseId(administratorsGroupDescMock.getName()))
- .thenReturn(administratorsGroupDescMock);
+ when(groupsCollectionMock.parseId("Administrators")).thenReturn(administratorsGroupDescMock);
when(someGroupDescMock.getName()).thenReturn("someGroup");
when(someGroupDescMock.getGroupUUID()).thenReturn(new AccountGroup.UUID("some_uuid"));
- when(groupsCollectionMock.parseId(someGroupDescMock.getName())).thenReturn(someGroupDescMock);
+ when(groupsCollectionMock.parseId("someGroup")).thenReturn(someGroupDescMock);
}
private Configuration getConfiguration() {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPackIT.java b/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPackIT.java
index f421748..0c0101b 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPackIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPackIT.java
@@ -32,11 +32,11 @@
public class RateLimitUploadPackIT extends LightweightPluginDaemonTest {
@Override
- public void setUp() throws Exception {
+ public void setUpTestPlugin() throws Exception {
// Create the group before the plugin is loaded since limits per group are
// resolved at plugin load time.
addUserToNewGroup();
- super.setUp();
+ super.setUpTestPlugin();
}
@Test