diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCache.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCache.java index d130243884..6ba6bf0a80 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCache.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCache.java @@ -21,14 +21,14 @@ import java.util.Set; /** Tracks group inclusions in memory for efficient access. */ public interface GroupIncludeCache { /** @return groups directly a member of the passed group. */ - public Set membersOf(AccountGroup.UUID group); + public Set subgroupsOf(AccountGroup.UUID group); /** @return any groups the passed group belongs to. */ - public Set memberIn(AccountGroup.UUID groupId); + public Set parentGroupsOf(AccountGroup.UUID groupId); /** @return set of any UUIDs that are not internal groups. */ public Set allExternalMembers(); - public void evictMembersOf(AccountGroup.UUID groupId); - public void evictMemberIn(AccountGroup.UUID groupId); + public void evictSubgroupsOf(AccountGroup.UUID groupId); + public void evictParentGroupsOf(AccountGroup.UUID groupId); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCacheImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCacheImpl.java index 37d407c2c8..c982aa5b8c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCacheImpl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupIncludeCacheImpl.java @@ -42,23 +42,23 @@ import java.util.concurrent.ExecutionException; public class GroupIncludeCacheImpl implements GroupIncludeCache { private static final Logger log = LoggerFactory .getLogger(GroupIncludeCacheImpl.class); - private static final String BYINCLUDE_NAME = "groups_byinclude"; - private static final String MEMBERS_NAME = "groups_members"; + private static final String PARENT_GROUPS_NAME = "groups_byinclude"; + private static final String SUBGROUPS_NAME = "groups_members"; private static final String EXTERNAL_NAME = "groups_external"; public static Module module() { return new CacheModule() { @Override protected void configure() { - cache(BYINCLUDE_NAME, + cache(PARENT_GROUPS_NAME, AccountGroup.UUID.class, new TypeLiteral>() {}) - .loader(MemberInLoader.class); + .loader(parentGroupsLoader.class); - cache(MEMBERS_NAME, + cache(SUBGROUPS_NAME, AccountGroup.UUID.class, new TypeLiteral>() {}) - .loader(MembersOfLoader.class); + .loader(subgroupsLoader.class); cache(EXTERNAL_NAME, String.class, @@ -71,24 +71,24 @@ public class GroupIncludeCacheImpl implements GroupIncludeCache { }; } - private final LoadingCache> membersOf; - private final LoadingCache> memberIn; + private final LoadingCache> subgroups; + private final LoadingCache> parentGroups; private final LoadingCache> external; @Inject GroupIncludeCacheImpl( - @Named(MEMBERS_NAME) LoadingCache> membersOf, - @Named(BYINCLUDE_NAME) LoadingCache> memberIn, + @Named(SUBGROUPS_NAME) LoadingCache> subgroups, + @Named(PARENT_GROUPS_NAME) LoadingCache> parentGroups, @Named(EXTERNAL_NAME) LoadingCache> external) { - this.membersOf = membersOf; - this.memberIn = memberIn; + this.subgroups = subgroups; + this.parentGroups = parentGroups; this.external = external; } @Override - public Set membersOf(AccountGroup.UUID groupId) { + public Set subgroupsOf(AccountGroup.UUID groupId) { try { - return membersOf.get(groupId); + return subgroups.get(groupId); } catch (ExecutionException e) { log.warn("Cannot load members of group", e); return Collections.emptySet(); @@ -96,9 +96,9 @@ public class GroupIncludeCacheImpl implements GroupIncludeCache { } @Override - public Set memberIn(AccountGroup.UUID groupId) { + public Set parentGroupsOf(AccountGroup.UUID groupId) { try { - return memberIn.get(groupId); + return parentGroups.get(groupId); } catch (ExecutionException e) { log.warn("Cannot load included groups", e); return Collections.emptySet(); @@ -106,16 +106,16 @@ public class GroupIncludeCacheImpl implements GroupIncludeCache { } @Override - public void evictMembersOf(AccountGroup.UUID groupId) { + public void evictSubgroupsOf(AccountGroup.UUID groupId) { if (groupId != null) { - membersOf.invalidate(groupId); + subgroups.invalidate(groupId); } } @Override - public void evictMemberIn(AccountGroup.UUID groupId) { + public void evictParentGroupsOf(AccountGroup.UUID groupId) { if (groupId != null) { - memberIn.invalidate(groupId); + parentGroups.invalidate(groupId); if (!AccountGroup.isInternalGroup(groupId)) { external.invalidate(EXTERNAL_NAME); @@ -133,12 +133,12 @@ public class GroupIncludeCacheImpl implements GroupIncludeCache { } } - static class MembersOfLoader extends + static class subgroupsLoader extends CacheLoader> { private final SchemaFactory schema; @Inject - MembersOfLoader(final SchemaFactory sf) { + subgroupsLoader(final SchemaFactory sf) { schema = sf; } @@ -163,12 +163,12 @@ public class GroupIncludeCacheImpl implements GroupIncludeCache { } } - static class MemberInLoader extends + static class parentGroupsLoader extends CacheLoader> { private final SchemaFactory schema; @Inject - MemberInLoader(final SchemaFactory sf) { + parentGroupsLoader(final SchemaFactory sf) { schema = sf; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/IncludingGroupMembership.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/IncludingGroupMembership.java index 2e278c3092..b8a67ff791 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/IncludingGroupMembership.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/IncludingGroupMembership.java @@ -90,7 +90,7 @@ public class IncludingGroupMembership implements GroupMembership { } memberOf.put(id, false); - if (search(includeCache.membersOf(id))) { + if (search(includeCache.subgroupsOf(id))) { memberOf.put(id, true); return true; } @@ -131,7 +131,7 @@ public class IncludingGroupMembership implements GroupMembership { while (!q.isEmpty()) { AccountGroup.UUID id = q.remove(q.size() - 1); - for (AccountGroup.UUID g : includeCache.memberIn(id)) { + for (AccountGroup.UUID g : includeCache.parentGroupsOf(id)) { if (g != null && r.add(g)) { q.add(g); memberOf.put(g, true); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java index a54a97b5f2..86c840b0a9 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java @@ -116,7 +116,7 @@ public class PerformCreateGroup { if (createGroupArgs.initialGroups != null) { addGroups(groupId, createGroupArgs.initialGroups); - groupIncludeCache.evictMembersOf(uuid); + groupIncludeCache.evictSubgroupsOf(uuid); } groupCache.onCreateGroup(createGroupArgs.getGroup()); @@ -162,7 +162,7 @@ public class PerformCreateGroup { db.accountGroupByIdAud().insert(includesAudit); for (AccountGroup.UUID uuid : groups) { - groupIncludeCache.evictMemberIn(uuid); + groupIncludeCache.evictParentGroupsOf(uuid); } } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java index 45b68af168..3b04f17c2d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java @@ -91,7 +91,7 @@ import javax.security.auth.login.LoginException; return null; } - private final Cache> groupsByInclude; + private final Cache> parentGroups; private final Config config; private final String server; private final String username; @@ -106,8 +106,8 @@ import javax.security.auth.login.LoginException; @Inject Helper(@GerritServerConfig final Config config, - @Named(LdapModule.GROUPS_BYINCLUDE_CACHE) - Cache> groupsByInclude) { + @Named(LdapModule.PARENT_GROUPS_CACHE) + Cache> parentGroups) { this.config = config; this.server = LdapRealm.optional(config, "server"); this.username = LdapRealm.optional(config, "username"); @@ -132,7 +132,7 @@ import javax.security.auth.login.LoginException; } else { connectTimeoutMillis = null; } - this.groupsByInclude = groupsByInclude; + this.parentGroups = parentGroups; this.connectionPoolConfig = getPoolProperties(config); } @@ -310,8 +310,8 @@ import javax.security.auth.login.LoginException; private void recursivelyExpandGroups(final Set groupDNs, final LdapSchema schema, final DirContext ctx, final String groupDN) { if (groupDNs.add(groupDN) && schema.accountMemberField != null) { - ImmutableSet cachedGroupDNs = groupsByInclude.getIfPresent(groupDN); - if (cachedGroupDNs == null) { + ImmutableSet cachedParentsDNs = parentGroups.getIfPresent(groupDN); + if (cachedParentsDNs == null) { // Recursively identify the groups it is a member of. ImmutableSet.Builder dns = ImmutableSet.builder(); try { @@ -330,10 +330,10 @@ import javax.security.auth.login.LoginException; } catch (NamingException e) { LdapRealm.log.warn("Could not find group " + groupDN, e); } - cachedGroupDNs = dns.build(); - groupsByInclude.put(groupDN, cachedGroupDNs); + cachedParentsDNs = dns.build(); + parentGroups.put(groupDN, cachedParentsDNs); } - for (String dn : cachedGroupDNs) { + for (String dn : cachedParentsDNs) { recursivelyExpandGroups(groupDNs, schema, ctx, dn); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapModule.java b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapModule.java index 88cf45bee5..eaaafd6735 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapModule.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapModule.java @@ -33,7 +33,7 @@ public class LdapModule extends CacheModule { static final String USERNAME_CACHE = "ldap_usernames"; static final String GROUP_CACHE = "ldap_groups"; static final String GROUP_EXIST_CACHE = "ldap_group_existence"; - static final String GROUPS_BYINCLUDE_CACHE = "ldap_groups_byinclude"; + static final String PARENT_GROUPS_CACHE = "ldap_groups_byinclude"; @Override @@ -55,7 +55,7 @@ public class LdapModule extends CacheModule { .expireAfterWrite(1, HOURS) .loader(LdapRealm.ExistenceLoader.class); - cache(GROUPS_BYINCLUDE_CACHE, + cache(PARENT_GROUPS_CACHE, String.class, new TypeLiteral>() {}) .expireAfterWrite(1, HOURS); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/AddIncludedGroups.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/AddIncludedGroups.java index 614138ae50..163b3356d4 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/AddIncludedGroups.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/AddIncludedGroups.java @@ -128,9 +128,9 @@ public class AddIncludedGroups implements RestModifyView { db.get().accountGroupByIdAud().insert(newIncludedGroupsAudits); db.get().accountGroupById().insert(newIncludedGroups.values()); for (AccountGroupById agi : newIncludedGroups.values()) { - groupIncludeCache.evictMemberIn(agi.getIncludeUUID()); + groupIncludeCache.evictParentGroupsOf(agi.getIncludeUUID()); } - groupIncludeCache.evictMembersOf(group.getGroupUUID()); + groupIncludeCache.evictSubgroupsOf(group.getGroupUUID()); } return result; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/DeleteIncludedGroups.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/DeleteIncludedGroups.java index 555744ee1d..8cc1a4a64b 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/DeleteIncludedGroups.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/DeleteIncludedGroups.java @@ -91,9 +91,9 @@ public class DeleteIncludedGroups implements RestModifyView