summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColby Ranger <cranger@google.com>2012-05-14 11:03:37 -0700
committerColby Ranger <cranger@google.com>2012-05-18 14:25:42 -0700
commit27a953aa8dd8fcf748ace262414288707448c66d (patch)
treeb8063d25bb4c029ba238b808f68dd32dae3a8d8e
parentae9e4647cc02c3e157ce1412e72ad41ae8179b0a (diff)
Use the GroupBackend instead of the GroupCache.
The GroupCache only supports internal AccountGroups, but the GroupBackend can support any registered group backend. Replaced the GroupCache usage in the plugin. Change-Id: Ibb04270726079876950b14cacc5741b3b6a9b1d5
-rw-r--r--src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java10
-rw-r--r--src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java10
2 files changed, 11 insertions, 9 deletions
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java b/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
index 17dbf71..7b8975e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
@@ -17,12 +17,14 @@ package com.googlesource.gerrit.plugins.replication;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
+import com.google.gerrit.common.data.GroupReference;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.InternalUser;
-import com.google.gerrit.server.account.GroupCache;
+import com.google.gerrit.server.account.GroupBackend;
+import com.google.gerrit.server.account.GroupBackends;
import com.google.gerrit.server.account.ListGroupMembership;
import com.google.gerrit.server.config.FactoryModule;
import com.google.gerrit.server.git.GitRepositoryManager;
@@ -78,7 +80,7 @@ class Destination {
final RemoteSiteUser.Factory replicationUserFactory,
final InternalUser.Factory internalUserFactory,
final GitRepositoryManager gitRepositoryManager,
- final GroupCache groupCache) {
+ final GroupBackend groupBackend) {
remote = rc;
gitManager = gitRepositoryManager;
delay = Math.max(0, getInt(rc, cfg, "replicationdelay", 15));
@@ -95,9 +97,9 @@ class Destination {
if (authGroupNames.length > 0) {
ImmutableSet.Builder<AccountGroup.UUID> builder = ImmutableSet.builder();
for (String name : authGroupNames) {
- AccountGroup g = groupCache.get(new AccountGroup.NameKey(name));
+ GroupReference g = GroupBackends.findExactSuggestion(groupBackend, name);
if (g != null) {
- builder.add(g.getGroupUUID());
+ builder.add(g.getUUID());
} else {
ReplicationQueue.log.warn(String.format(
"Group \"%s\" not recognized, removing from authGroup", name));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
index e61aab5..54ed815 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
@@ -23,7 +23,7 @@ import com.google.gerrit.extensions.events.NewProjectCreatedListener;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.InternalUser;
-import com.google.gerrit.server.account.GroupCache;
+import com.google.gerrit.server.account.GroupBackend;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.WorkQueue;
@@ -80,7 +80,7 @@ class ReplicationQueue implements
private final RemoteSiteUser.Factory replicationUserFactory;
private final InternalUser.Factory internalUserFactory;
private final GitRepositoryManager gitRepositoryManager;
- private final GroupCache groupCache;
+ private final GroupBackend groupBackend;
private volatile boolean running;
boolean replicateAllOnPluginStart;
@@ -88,7 +88,7 @@ class ReplicationQueue implements
ReplicationQueue(final Injector i, final WorkQueue wq, final SitePaths site,
final RemoteSiteUser.Factory ruf, final InternalUser.Factory iuf,
final SchemaFactory<ReviewDb> db,
- final GitRepositoryManager grm, GroupCache gc)
+ final GitRepositoryManager grm, final GroupBackend gb)
throws ConfigInvalidException, IOException {
injector = i;
workQueue = wq;
@@ -96,7 +96,7 @@ class ReplicationQueue implements
replicationUserFactory = ruf;
internalUserFactory = iuf;
gitRepositoryManager = grm;
- groupCache = gc;
+ groupBackend = gb;
configs = allDestinations(new File(site.etc_dir, "replication.config"));
}
@@ -209,7 +209,7 @@ class ReplicationQueue implements
dest.add(new Destination(injector, c, cfg, database,
replicationUserFactory, internalUserFactory,
- gitRepositoryManager, groupCache));
+ gitRepositoryManager, groupBackend));
}
return dest.build();
}