From 27a953aa8dd8fcf748ace262414288707448c66d Mon Sep 17 00:00:00 2001 From: Colby Ranger Date: Mon, 14 May 2012 11:03:37 -0700 Subject: 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 --- .../googlesource/gerrit/plugins/replication/Destination.java | 10 ++++++---- .../gerrit/plugins/replication/ReplicationQueue.java | 10 +++++----- 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 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 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(); } -- cgit v1.2.3