Refactor ProjectConfig constructors to live in a Factory
In the future, we would like to add a few injected dependencies of ProjectConfig. The fact that we can't use an assisted factory will hopefully prevent us from adding too many. Regardless, it's reasonable to group together the few "read" static constructor method into a single class along with the bare create method. Change-Id: I391ae8e37086c22c10e7f342d46e08dd2242df71
This commit is contained in:
@@ -253,6 +253,7 @@ public abstract class AbstractDaemonTest {
|
||||
@Inject protected MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
@Inject protected PatchSetUtil psUtil;
|
||||
@Inject protected ProjectCache projectCache;
|
||||
@Inject protected ProjectConfig.Factory projectConfigFactory;
|
||||
@Inject protected ProjectResetter.Builder.Factory projectResetter;
|
||||
@Inject protected Provider<InternalChangeQuery> queryProvider;
|
||||
@Inject protected PushOneCommit.Factory pushFactory;
|
||||
@@ -1000,7 +1001,7 @@ public abstract class AbstractDaemonTest {
|
||||
|
||||
protected void setUseContributorAgreements(InheritableBoolean value) throws Exception {
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
config.getProject().setBooleanConfig(BooleanProjectConfig.USE_CONTRIBUTOR_AGREEMENTS, value);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
@@ -1009,7 +1010,7 @@ public abstract class AbstractDaemonTest {
|
||||
|
||||
protected void setUseSignedOffBy(InheritableBoolean value) throws Exception {
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
config.getProject().setBooleanConfig(BooleanProjectConfig.USE_SIGNED_OFF_BY, value);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
@@ -1018,7 +1019,7 @@ public abstract class AbstractDaemonTest {
|
||||
|
||||
protected void setRequireChangeId(InheritableBoolean value) throws Exception {
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
config.getProject().setBooleanConfig(BooleanProjectConfig.REQUIRE_CHANGE_ID, value);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
@@ -1080,7 +1081,7 @@ public abstract class AbstractDaemonTest {
|
||||
throws RepositoryNotFoundException, IOException, ConfigInvalidException {
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
|
||||
md.setMessage(String.format("Grant %s on %s", permission, ref));
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
AccessSection s = config.getAccessSection(ref, true);
|
||||
Permission p = s.getPermission(permission, true);
|
||||
PermissionRule rule = Util.newRule(config, groupUUID);
|
||||
@@ -1104,7 +1105,7 @@ public abstract class AbstractDaemonTest {
|
||||
String permission = Permission.LABEL + label;
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
|
||||
md.setMessage(String.format("Grant %s on %s", permission, ref));
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
AccessSection s = config.getAccessSection(ref, true);
|
||||
Permission p = s.getPermission(permission, true);
|
||||
p.setExclusiveGroup(exclusive);
|
||||
@@ -1122,7 +1123,7 @@ public abstract class AbstractDaemonTest {
|
||||
throws IOException, ConfigInvalidException {
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
|
||||
md.setMessage(String.format("Remove %s on %s", permission, ref));
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
AccessSection s = config.getAccessSection(ref, true);
|
||||
Permission p = s.getPermission(permission, true);
|
||||
p.clearRules();
|
||||
@@ -1672,7 +1673,7 @@ public abstract class AbstractDaemonTest {
|
||||
|
||||
private ProjectConfigUpdate(Project.NameKey projectName) throws Exception {
|
||||
metaDataUpdate = metaDataUpdateFactory.create(projectName);
|
||||
projectConfig = ProjectConfig.read(metaDataUpdate);
|
||||
projectConfig = projectConfigFactory.read(metaDataUpdate);
|
||||
}
|
||||
|
||||
public ProjectConfig getConfig() {
|
||||
|
||||
@@ -62,6 +62,7 @@ class ChangeProjectAccess extends ProjectAccessHandler<ProjectAccess> {
|
||||
ProjectAccessFactory.Factory projectAccessFactory,
|
||||
ProjectCache projectCache,
|
||||
GroupBackend groupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
MetaDataUpdate.User metaDataUpdateFactory,
|
||||
AllProjectsName allProjects,
|
||||
Provider<SetParent> setParent,
|
||||
@@ -77,6 +78,7 @@ class ChangeProjectAccess extends ProjectAccessHandler<ProjectAccess> {
|
||||
@Nullable @Assisted String message) {
|
||||
super(
|
||||
groupBackend,
|
||||
projectConfigFactory,
|
||||
metaDataUpdateFactory,
|
||||
allProjects,
|
||||
setParent,
|
||||
|
||||
@@ -71,6 +71,7 @@ class ProjectAccessFactory extends Handler<ProjectAccess> {
|
||||
private final GroupControl.Factory groupControlFactory;
|
||||
private final MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
private final AllProjectsName allProjectsName;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
private final Project.NameKey projectName;
|
||||
private WebLinks webLinks;
|
||||
@@ -83,6 +84,7 @@ class ProjectAccessFactory extends Handler<ProjectAccess> {
|
||||
GroupControl.Factory groupControlFactory,
|
||||
MetaDataUpdate.Server metaDataUpdateFactory,
|
||||
AllProjectsName allProjectsName,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
WebLinks webLinks,
|
||||
@Assisted final Project.NameKey name) {
|
||||
this.groupBackend = groupBackend;
|
||||
@@ -91,6 +93,7 @@ class ProjectAccessFactory extends Handler<ProjectAccess> {
|
||||
this.groupControlFactory = groupControlFactory;
|
||||
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||
this.allProjectsName = allProjectsName;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.webLinks = webLinks;
|
||||
|
||||
this.projectName = name;
|
||||
@@ -108,7 +111,7 @@ class ProjectAccessFactory extends Handler<ProjectAccess> {
|
||||
//
|
||||
ProjectConfig config;
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(projectName)) {
|
||||
config = ProjectConfig.read(md);
|
||||
config = projectConfigFactory.read(md);
|
||||
if (config.updateGroupNames(groupBackend)) {
|
||||
md.setMessage("Update group names\n");
|
||||
config.commit(md);
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.google.gerrit.extensions.restapi.ResourceConflictException;
|
||||
import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
|
||||
import com.google.gerrit.httpd.rpc.Handler;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.client.Project.NameKey;
|
||||
import com.google.gerrit.server.CurrentUser;
|
||||
import com.google.gerrit.server.account.GroupBackend;
|
||||
import com.google.gerrit.server.account.GroupBackends;
|
||||
@@ -58,6 +59,7 @@ import org.eclipse.jgit.lib.ObjectId;
|
||||
public abstract class ProjectAccessHandler<T> extends Handler<T> {
|
||||
|
||||
protected final GroupBackend groupBackend;
|
||||
protected final ProjectConfig.Factory projectConfigFactory;
|
||||
protected final Project.NameKey projectName;
|
||||
protected final ObjectId base;
|
||||
protected final CurrentUser user;
|
||||
@@ -77,14 +79,15 @@ public abstract class ProjectAccessHandler<T> extends Handler<T> {
|
||||
|
||||
protected ProjectAccessHandler(
|
||||
GroupBackend groupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
MetaDataUpdate.User metaDataUpdateFactory,
|
||||
AllProjectsName allProjects,
|
||||
Provider<SetParent> setParent,
|
||||
CurrentUser user,
|
||||
Project.NameKey projectName,
|
||||
NameKey projectName,
|
||||
ObjectId base,
|
||||
List<AccessSection> sectionList,
|
||||
Project.NameKey parentProjectName,
|
||||
NameKey parentProjectName,
|
||||
String message,
|
||||
ContributorAgreementsChecker contributorAgreements,
|
||||
PermissionBackend permissionBackend,
|
||||
@@ -102,6 +105,7 @@ public abstract class ProjectAccessHandler<T> extends Handler<T> {
|
||||
this.message = message;
|
||||
this.contributorAgreements = contributorAgreements;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.checkIfOwner = checkIfOwner;
|
||||
}
|
||||
|
||||
@@ -113,7 +117,7 @@ public abstract class ProjectAccessHandler<T> extends Handler<T> {
|
||||
contributorAgreements.check(projectName, user);
|
||||
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(projectName)) {
|
||||
ProjectConfig config = ProjectConfig.read(md, base);
|
||||
ProjectConfig config = projectConfigFactory.read(md, base);
|
||||
Set<String> toDelete = scanSectionNames(config);
|
||||
PermissionBackend.ForProject forProject = permissionBackend.user(user).project(projectName);
|
||||
|
||||
|
||||
@@ -88,6 +88,7 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
|
||||
ReviewProjectAccess(
|
||||
PermissionBackend permissionBackend,
|
||||
GroupBackend groupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
MetaDataUpdate.User metaDataUpdateFactory,
|
||||
ReviewDb db,
|
||||
Provider<PostReviewers> reviewersProvider,
|
||||
@@ -108,6 +109,7 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
|
||||
@Nullable @Assisted String message) {
|
||||
super(
|
||||
groupBackend,
|
||||
projectConfigFactory,
|
||||
metaDataUpdateFactory,
|
||||
allProjects,
|
||||
setParent,
|
||||
|
||||
@@ -57,17 +57,20 @@ public class CreateGroupPermissionSyncer implements ChangeMergedListener {
|
||||
private final AllUsersName allUsers;
|
||||
private final ProjectCache projectCache;
|
||||
private final Provider<MetaDataUpdate.Server> metaDataUpdateFactory;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
CreateGroupPermissionSyncer(
|
||||
AllProjectsName allProjects,
|
||||
AllUsersName allUsers,
|
||||
ProjectCache projectCache,
|
||||
Provider<MetaDataUpdate.Server> metaDataUpdateFactory) {
|
||||
Provider<MetaDataUpdate.Server> metaDataUpdateFactory,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.allProjects = allProjects;
|
||||
this.allUsers = allUsers;
|
||||
this.projectCache = projectCache;
|
||||
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,7 +105,7 @@ public class CreateGroupPermissionSyncer implements ChangeMergedListener {
|
||||
}
|
||||
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.get().create(allUsers)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
AccessSection createGroupAccessSection =
|
||||
config.getAccessSection(RefNames.REFS_GROUPS + "*", true);
|
||||
if (createGroupsGlobal.isEmpty()) {
|
||||
|
||||
@@ -302,12 +302,16 @@ public class ProjectConfigEntry {
|
||||
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final DynamicMap<ProjectConfigEntry> pluginConfigEntries;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
UpdateChecker(
|
||||
GitRepositoryManager repoManager, DynamicMap<ProjectConfigEntry> pluginConfigEntries) {
|
||||
GitRepositoryManager repoManager,
|
||||
DynamicMap<ProjectConfigEntry> pluginConfigEntries,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.repoManager = repoManager;
|
||||
this.pluginConfigEntries = pluginConfigEntries;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -361,7 +365,7 @@ public class ProjectConfigEntry {
|
||||
return null;
|
||||
}
|
||||
try (Repository repo = repoManager.openRepository(p)) {
|
||||
ProjectConfig pc = new ProjectConfig(p);
|
||||
ProjectConfig pc = projectConfigFactory.create(p);
|
||||
pc.load(repo, id);
|
||||
return pc;
|
||||
}
|
||||
|
||||
@@ -321,6 +321,7 @@ class ReceiveCommits {
|
||||
private final SetHashtagsOp.Factory hashtagsFactory;
|
||||
private final SubmoduleOp.Factory subOpFactory;
|
||||
private final TagCache tagCache;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
// Assisted injected fields.
|
||||
private final AllRefsWatcher allRefsWatcher;
|
||||
@@ -365,6 +366,7 @@ class ReceiveCommits {
|
||||
AccountResolver accountResolver,
|
||||
AllProjectsName allProjectsName,
|
||||
BatchUpdate.Factory batchUpdateFactory,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritServerConfig Config cfg,
|
||||
ChangeEditUtil editUtil,
|
||||
ChangeIndexer indexer,
|
||||
@@ -437,6 +439,7 @@ class ReceiveCommits {
|
||||
this.seq = seq;
|
||||
this.subOpFactory = subOpFactory;
|
||||
this.tagCache = tagCache;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
|
||||
// Assisted injected fields.
|
||||
this.allRefsWatcher = allRefsWatcher;
|
||||
@@ -1055,7 +1058,7 @@ class ReceiveCommits {
|
||||
case UPDATE:
|
||||
case UPDATE_NONFASTFORWARD:
|
||||
try {
|
||||
ProjectConfig cfg = new ProjectConfig(project.getNameKey());
|
||||
ProjectConfig cfg = projectConfigFactory.create(project.getNameKey());
|
||||
cfg.load(project.getNameKey(), receivePack.getRevWalk(), cmd.getNewId());
|
||||
if (!cfg.getValidationErrors().isEmpty()) {
|
||||
addError("Invalid project configuration:");
|
||||
|
||||
@@ -98,6 +98,7 @@ public class CommitValidators {
|
||||
private final AccountValidator accountValidator;
|
||||
private final String installCommitMsgHookCommand;
|
||||
private final ProjectCache projectCache;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
Factory(
|
||||
@@ -110,7 +111,8 @@ public class CommitValidators {
|
||||
AllProjectsName allProjects,
|
||||
ExternalIdsConsistencyChecker externalIdsConsistencyChecker,
|
||||
AccountValidator accountValidator,
|
||||
ProjectCache projectCache) {
|
||||
ProjectCache projectCache,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.gerritIdent = gerritIdent;
|
||||
this.urlFormatter = urlFormatter;
|
||||
this.pluginValidators = pluginValidators;
|
||||
@@ -122,6 +124,7 @@ public class CommitValidators {
|
||||
this.installCommitMsgHookCommand =
|
||||
cfg != null ? cfg.getString("gerrit", null, "installCommitMsgHookCommand") : null;
|
||||
this.projectCache = projectCache;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
public CommitValidators forReceiveCommits(
|
||||
@@ -145,7 +148,7 @@ public class CommitValidators {
|
||||
new SignedOffByValidator(user, perm, projectState),
|
||||
new ChangeIdValidator(
|
||||
projectState, user, urlFormatter, installCommitMsgHookCommand, sshInfo, change),
|
||||
new ConfigValidator(branch, user, rw, allUsers, allProjects),
|
||||
new ConfigValidator(projectConfigFactory, branch, user, rw, allUsers, allProjects),
|
||||
new BannedCommitsValidator(rejectCommits),
|
||||
new PluginCommitValidationListener(pluginValidators),
|
||||
new ExternalIdUpdateListener(allUsers, externalIdsConsistencyChecker),
|
||||
@@ -172,7 +175,7 @@ public class CommitValidators {
|
||||
new SignedOffByValidator(user, perm, projectCache.checkedGet(branch.getParentKey())),
|
||||
new ChangeIdValidator(
|
||||
projectState, user, urlFormatter, installCommitMsgHookCommand, sshInfo, change),
|
||||
new ConfigValidator(branch, user, rw, allUsers, allProjects),
|
||||
new ConfigValidator(projectConfigFactory, branch, user, rw, allUsers, allProjects),
|
||||
new PluginCommitValidationListener(pluginValidators),
|
||||
new ExternalIdUpdateListener(allUsers, externalIdsConsistencyChecker),
|
||||
new AccountCommitValidator(repoManager, allUsers, accountValidator),
|
||||
@@ -379,6 +382,7 @@ public class CommitValidators {
|
||||
|
||||
/** If this is the special project configuration branch, validate the config. */
|
||||
public static class ConfigValidator implements CommitValidationListener {
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final Branch.NameKey branch;
|
||||
private final IdentifiedUser user;
|
||||
private final RevWalk rw;
|
||||
@@ -386,11 +390,13 @@ public class CommitValidators {
|
||||
private final AllProjectsName allProjects;
|
||||
|
||||
public ConfigValidator(
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
Branch.NameKey branch,
|
||||
IdentifiedUser user,
|
||||
RevWalk rw,
|
||||
AllUsersName allUsers,
|
||||
AllProjectsName allProjects) {
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.branch = branch;
|
||||
this.user = user;
|
||||
this.rw = rw;
|
||||
@@ -405,7 +411,7 @@ public class CommitValidators {
|
||||
List<CommitValidationMessage> messages = new ArrayList<>();
|
||||
|
||||
try {
|
||||
ProjectConfig cfg = new ProjectConfig(receiveEvent.project.getNameKey());
|
||||
ProjectConfig cfg = projectConfigFactory.create(receiveEvent.project.getNameKey());
|
||||
cfg.load(rw, receiveEvent.command.getNewId());
|
||||
if (!cfg.getValidationErrors().isEmpty()) {
|
||||
addError("Invalid project configuration:", messages);
|
||||
|
||||
@@ -127,6 +127,7 @@ public class MergeValidators {
|
||||
private final ProjectCache projectCache;
|
||||
private final PermissionBackend permissionBackend;
|
||||
private final DynamicMap<ProjectConfigEntry> pluginConfigEntries;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final boolean allowProjectOwnersToChangeParent;
|
||||
|
||||
public interface Factory {
|
||||
@@ -140,12 +141,14 @@ public class MergeValidators {
|
||||
ProjectCache projectCache,
|
||||
PermissionBackend permissionBackend,
|
||||
DynamicMap<ProjectConfigEntry> pluginConfigEntries,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritServerConfig Config config) {
|
||||
this.allProjectsName = allProjectsName;
|
||||
this.allUsersName = allUsersName;
|
||||
this.projectCache = projectCache;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.pluginConfigEntries = pluginConfigEntries;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.allowProjectOwnersToChangeParent =
|
||||
config.getBoolean("receive", "allowProjectOwnersToChangeParent", false);
|
||||
}
|
||||
@@ -162,7 +165,7 @@ public class MergeValidators {
|
||||
if (RefNames.REFS_CONFIG.equals(destBranch.get())) {
|
||||
final Project.NameKey newParent;
|
||||
try {
|
||||
ProjectConfig cfg = new ProjectConfig(destProject.getNameKey());
|
||||
ProjectConfig cfg = projectConfigFactory.create(destProject.getNameKey());
|
||||
cfg.load(destProject.getNameKey(), repo, commit);
|
||||
newParent = cfg.getProject().getParent(allProjectsName);
|
||||
final Project.NameKey oldParent = destProject.getProject().getParent(allProjectsName);
|
||||
|
||||
@@ -49,6 +49,7 @@ class RenameGroupOp extends DefaultQueueOp {
|
||||
|
||||
private final ProjectCache projectCache;
|
||||
private final MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
private final PersonIdent author;
|
||||
private final AccountGroup.UUID uuid;
|
||||
@@ -63,6 +64,7 @@ class RenameGroupOp extends DefaultQueueOp {
|
||||
WorkQueue workQueue,
|
||||
ProjectCache projectCache,
|
||||
MetaDataUpdate.Server metaDataUpdateFactory,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@Assisted("author") PersonIdent author,
|
||||
@Assisted AccountGroup.UUID uuid,
|
||||
@Assisted("oldName") String oldName,
|
||||
@@ -70,6 +72,7 @@ class RenameGroupOp extends DefaultQueueOp {
|
||||
super(workQueue);
|
||||
this.projectCache = projectCache;
|
||||
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
|
||||
this.author = author;
|
||||
this.uuid = uuid;
|
||||
@@ -109,7 +112,7 @@ class RenameGroupOp extends DefaultQueueOp {
|
||||
private void rename(MetaDataUpdate md) throws IOException, ConfigInvalidException {
|
||||
boolean success = false;
|
||||
for (int attempts = 0; !success && attempts < MAX_TRIES; attempts++) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
|
||||
// The group isn't referenced, or its name has been fixed already.
|
||||
//
|
||||
|
||||
@@ -277,12 +277,18 @@ public class ProjectCacheImpl implements ProjectCache {
|
||||
private final ProjectState.Factory projectStateFactory;
|
||||
private final GitRepositoryManager mgr;
|
||||
private final ProjectCacheClock clock;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
Loader(ProjectState.Factory psf, GitRepositoryManager g, ProjectCacheClock clock) {
|
||||
Loader(
|
||||
ProjectState.Factory psf,
|
||||
GitRepositoryManager g,
|
||||
ProjectCacheClock clock,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
projectStateFactory = psf;
|
||||
mgr = g;
|
||||
this.clock = clock;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -291,7 +297,7 @@ public class ProjectCacheImpl implements ProjectCache {
|
||||
long now = clock.read();
|
||||
Project.NameKey key = new Project.NameKey(projectName);
|
||||
try (Repository git = mgr.openRepository(key)) {
|
||||
ProjectConfig cfg = new ProjectConfig(key);
|
||||
ProjectConfig cfg = projectConfigFactory.create(key);
|
||||
cfg.load(key, git);
|
||||
|
||||
ProjectState state = projectStateFactory.create(cfg);
|
||||
|
||||
@@ -59,6 +59,7 @@ import com.google.gerrit.server.git.NotifyConfig;
|
||||
import com.google.gerrit.server.git.ValidationError;
|
||||
import com.google.gerrit.server.git.meta.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.meta.VersionedMetaData;
|
||||
import com.google.inject.Singleton;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -167,6 +168,29 @@ public class ProjectConfig extends VersionedMetaData implements ValidationError.
|
||||
|
||||
private static final Pattern EXCLUSIVE_PERMISSIONS_SPLIT_PATTERN = Pattern.compile("[, \t]{1,}");
|
||||
|
||||
// Don't use an assisted factory, since instances created by an assisted factory retain references
|
||||
// to their enclosing injector. Instances of ProjectConfig are cached for a long time in the
|
||||
// ProjectCache, so this would retain lots more memory.
|
||||
@Singleton
|
||||
public static class Factory {
|
||||
public ProjectConfig create(Project.NameKey projectName) {
|
||||
return new ProjectConfig(projectName);
|
||||
}
|
||||
|
||||
public ProjectConfig read(MetaDataUpdate update) throws IOException, ConfigInvalidException {
|
||||
ProjectConfig r = create(update.getProjectName());
|
||||
r.load(update);
|
||||
return r;
|
||||
}
|
||||
|
||||
public ProjectConfig read(MetaDataUpdate update, ObjectId id)
|
||||
throws IOException, ConfigInvalidException {
|
||||
ProjectConfig r = create(update.getProjectName());
|
||||
r.load(update, id);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
private Project project;
|
||||
private AccountsSection accountsSection;
|
||||
private GroupList groupList;
|
||||
@@ -188,20 +212,6 @@ public class ProjectConfig extends VersionedMetaData implements ValidationError.
|
||||
private Map<String, List<String>> extensionPanelSections;
|
||||
private Map<String, GroupReference> groupsByName;
|
||||
|
||||
public static ProjectConfig read(MetaDataUpdate update)
|
||||
throws IOException, ConfigInvalidException {
|
||||
ProjectConfig r = new ProjectConfig(update.getProjectName());
|
||||
r.load(update);
|
||||
return r;
|
||||
}
|
||||
|
||||
public static ProjectConfig read(MetaDataUpdate update, ObjectId id)
|
||||
throws IOException, ConfigInvalidException {
|
||||
ProjectConfig r = new ProjectConfig(update.getProjectName());
|
||||
r.load(update, id);
|
||||
return r;
|
||||
}
|
||||
|
||||
public static CommentLinkInfoImpl buildCommentLink(Config cfg, String name, boolean allowRaw)
|
||||
throws IllegalArgumentException {
|
||||
String match = cfg.getString(COMMENTLINK, name, KEY_MATCH);
|
||||
@@ -243,7 +253,7 @@ public class ProjectConfig extends VersionedMetaData implements ValidationError.
|
||||
commentLinkSections.add(commentLink);
|
||||
}
|
||||
|
||||
public ProjectConfig(Project.NameKey projectName) {
|
||||
private ProjectConfig(Project.NameKey projectName) {
|
||||
this.projectName = projectName;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@ public class CreateAccessChange implements RestModifyView<ProjectResource, Proje
|
||||
private final SetAccessUtil setAccess;
|
||||
private final ChangeJson.Factory jsonFactory;
|
||||
private final ProjectCache projectCache;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
CreateAccessChange(
|
||||
@@ -79,7 +80,8 @@ public class CreateAccessChange implements RestModifyView<ProjectResource, Proje
|
||||
Provider<ReviewDb> db,
|
||||
SetAccessUtil accessUtil,
|
||||
ChangeJson.Factory jsonFactory,
|
||||
ProjectCache projectCache) {
|
||||
ProjectCache projectCache,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.seq = seq;
|
||||
this.changeInserterFactory = changeInserterFactory;
|
||||
@@ -89,6 +91,7 @@ public class CreateAccessChange implements RestModifyView<ProjectResource, Proje
|
||||
this.setAccess = accessUtil;
|
||||
this.jsonFactory = jsonFactory;
|
||||
this.projectCache = projectCache;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,7 +120,7 @@ public class CreateAccessChange implements RestModifyView<ProjectResource, Proje
|
||||
input.parent == null ? null : new Project.NameKey(input.parent);
|
||||
|
||||
try (MetaDataUpdate md = metaDataUpdateUser.create(rsrc.getNameKey())) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
ObjectId oldCommit = config.getRevision();
|
||||
String oldCommitSha1 = oldCommit == null ? null : oldCommit.getName();
|
||||
|
||||
|
||||
@@ -115,6 +115,7 @@ public class CreateProject
|
||||
private final AllProjectsName allProjects;
|
||||
private final AllUsersName allUsers;
|
||||
private final PluginItemContext<ProjectNameLockManager> lockManager;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
CreateProject(
|
||||
@@ -135,7 +136,8 @@ public class CreateProject
|
||||
Provider<PutConfig> putConfig,
|
||||
AllProjectsName allProjects,
|
||||
AllUsersName allUsers,
|
||||
PluginItemContext<ProjectNameLockManager> lockManager) {
|
||||
PluginItemContext<ProjectNameLockManager> lockManager,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.projectsCollection = projectsCollection;
|
||||
this.groupResolver = groupResolver;
|
||||
this.projectCreationValidationListeners = projectCreationValidationListeners;
|
||||
@@ -154,6 +156,7 @@ public class CreateProject
|
||||
this.allProjects = allProjects;
|
||||
this.allUsers = allUsers;
|
||||
this.lockManager = lockManager;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -286,7 +289,7 @@ public class CreateProject
|
||||
private void createProjectConfig(CreateProjectArgs args)
|
||||
throws IOException, ConfigInvalidException {
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(args.getProject())) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
|
||||
Project newProject = config.getProject();
|
||||
newProject.setDescription(args.projectDescription);
|
||||
|
||||
@@ -95,6 +95,7 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
private final MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
private final GroupBackend groupBackend;
|
||||
private final WebLinks webLinks;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
public GetAccess(
|
||||
@@ -105,7 +106,8 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
MetaDataUpdate.Server metaDataUpdateFactory,
|
||||
ProjectJson projectJson,
|
||||
GroupBackend groupBackend,
|
||||
WebLinks webLinks) {
|
||||
WebLinks webLinks,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.user = self;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.allProjectsName = allProjectsName;
|
||||
@@ -114,6 +116,7 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||
this.groupBackend = groupBackend;
|
||||
this.webLinks = webLinks;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
public ProjectAccessInfo apply(Project.NameKey nameKey)
|
||||
@@ -141,7 +144,7 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
|
||||
ProjectConfig config;
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(projectName)) {
|
||||
config = ProjectConfig.read(md);
|
||||
config = projectConfigFactory.read(md);
|
||||
info.configWebLinks = new ArrayList<>();
|
||||
|
||||
// config may have a null revision if the repo doesn't have its own refs/meta/config.
|
||||
|
||||
@@ -47,6 +47,7 @@ import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gerrit.server.project.ProjectConfig;
|
||||
import com.google.gerrit.server.project.ProjectResource;
|
||||
import com.google.gerrit.server.project.ProjectState;
|
||||
import com.google.gerrit.server.project.ProjectState.Factory;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
import com.google.inject.Singleton;
|
||||
@@ -77,20 +78,22 @@ public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
|
||||
private final DynamicMap<RestView<ProjectResource>> views;
|
||||
private final Provider<CurrentUser> user;
|
||||
private final PermissionBackend permissionBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
PutConfig(
|
||||
@EnableSignedPush boolean serverEnableSignedPush,
|
||||
Provider<MetaDataUpdate.User> metaDataUpdateFactory,
|
||||
ProjectCache projectCache,
|
||||
ProjectState.Factory projectStateFactory,
|
||||
Factory projectStateFactory,
|
||||
DynamicMap<ProjectConfigEntry> pluginConfigEntries,
|
||||
PluginConfigFactory cfgFactory,
|
||||
AllProjectsName allProjects,
|
||||
UiActions uiActions,
|
||||
DynamicMap<RestView<ProjectResource>> views,
|
||||
Provider<CurrentUser> user,
|
||||
PermissionBackend permissionBackend) {
|
||||
PermissionBackend permissionBackend,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.serverEnableSignedPush = serverEnableSignedPush;
|
||||
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||
this.projectCache = projectCache;
|
||||
@@ -102,6 +105,7 @@ public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
|
||||
this.views = views;
|
||||
this.user = user;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -122,7 +126,7 @@ public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
|
||||
}
|
||||
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.get().create(projectName)) {
|
||||
ProjectConfig projectConfig = ProjectConfig.read(md);
|
||||
ProjectConfig projectConfig = projectConfigFactory.read(md);
|
||||
Project p = projectConfig.getProject();
|
||||
|
||||
p.setDescription(Strings.emptyToNull(input.description));
|
||||
@@ -164,7 +168,7 @@ public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
|
||||
throw new ResourceConflictException("Cannot update " + projectName);
|
||||
}
|
||||
|
||||
ProjectState state = projectStateFactory.create(ProjectConfig.read(md));
|
||||
ProjectState state = projectStateFactory.create(projectConfigFactory.read(md));
|
||||
return new ConfigInfoImpl(
|
||||
serverEnableSignedPush,
|
||||
state,
|
||||
|
||||
@@ -42,15 +42,18 @@ public class PutDescription implements RestModifyView<ProjectResource, Descripti
|
||||
private final ProjectCache cache;
|
||||
private final MetaDataUpdate.Server updateFactory;
|
||||
private final PermissionBackend permissionBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
PutDescription(
|
||||
ProjectCache cache,
|
||||
MetaDataUpdate.Server updateFactory,
|
||||
PermissionBackend permissionBackend) {
|
||||
PermissionBackend permissionBackend,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.cache = cache;
|
||||
this.updateFactory = updateFactory;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -68,7 +71,7 @@ public class PutDescription implements RestModifyView<ProjectResource, Descripti
|
||||
.check(ProjectPermission.WRITE_CONFIG);
|
||||
|
||||
try (MetaDataUpdate md = updateFactory.create(resource.getNameKey())) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
Project project = config.getProject();
|
||||
project.setDescription(Strings.emptyToNull(input.description));
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ public class SetAccess implements RestModifyView<ProjectResource, ProjectAccessI
|
||||
private final Provider<IdentifiedUser> identifiedUser;
|
||||
private final SetAccessUtil accessUtil;
|
||||
private final CreateGroupPermissionSyncer createGroupPermissionSyncer;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Inject
|
||||
private SetAccess(
|
||||
@@ -66,7 +67,8 @@ public class SetAccess implements RestModifyView<ProjectResource, ProjectAccessI
|
||||
GetAccess getAccess,
|
||||
Provider<IdentifiedUser> identifiedUser,
|
||||
SetAccessUtil accessUtil,
|
||||
CreateGroupPermissionSyncer createGroupPermissionSyncer) {
|
||||
CreateGroupPermissionSyncer createGroupPermissionSyncer,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.groupBackend = groupBackend;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||
@@ -75,6 +77,7 @@ public class SetAccess implements RestModifyView<ProjectResource, ProjectAccessI
|
||||
this.identifiedUser = identifiedUser;
|
||||
this.accessUtil = accessUtil;
|
||||
this.createGroupPermissionSyncer = createGroupPermissionSyncer;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -89,7 +92,7 @@ public class SetAccess implements RestModifyView<ProjectResource, ProjectAccessI
|
||||
List<AccessSection> removals = accessUtil.getAccessSections(input.remove);
|
||||
List<AccessSection> additions = accessUtil.getAccessSections(input.add);
|
||||
try (MetaDataUpdate md = metaDataUpdateUser.create(rsrc.getNameKey())) {
|
||||
config = ProjectConfig.read(md);
|
||||
config = projectConfigFactory.read(md);
|
||||
|
||||
// Check that the user has the right permissions.
|
||||
boolean checkedAdmin = false;
|
||||
|
||||
@@ -47,6 +47,7 @@ class SetDefaultDashboard implements RestModifyView<DashboardResource, SetDashbo
|
||||
private final DashboardsCollection dashboards;
|
||||
private final Provider<GetDashboard> get;
|
||||
private final PermissionBackend permissionBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Option(name = "--inherited", usage = "set dashboard inherited by children")
|
||||
boolean inherited;
|
||||
@@ -57,12 +58,14 @@ class SetDefaultDashboard implements RestModifyView<DashboardResource, SetDashbo
|
||||
MetaDataUpdate.Server updateFactory,
|
||||
DashboardsCollection dashboards,
|
||||
Provider<GetDashboard> get,
|
||||
PermissionBackend permissionBackend) {
|
||||
PermissionBackend permissionBackend,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.cache = cache;
|
||||
this.updateFactory = updateFactory;
|
||||
this.dashboards = dashboards;
|
||||
this.get = get;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -93,7 +96,7 @@ class SetDefaultDashboard implements RestModifyView<DashboardResource, SetDashbo
|
||||
}
|
||||
|
||||
try (MetaDataUpdate md = updateFactory.create(rsrc.getProjectState().getNameKey())) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
Project project = config.getProject();
|
||||
if (inherited) {
|
||||
project.setDefaultDashboard(input.id);
|
||||
|
||||
@@ -60,6 +60,7 @@ public class SetParent
|
||||
private final MetaDataUpdate.Server updateFactory;
|
||||
private final AllProjectsName allProjects;
|
||||
private final AllUsersName allUsers;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private volatile boolean allowProjectOwnersToChangeParent;
|
||||
|
||||
@Inject
|
||||
@@ -69,12 +70,14 @@ public class SetParent
|
||||
MetaDataUpdate.Server updateFactory,
|
||||
AllProjectsName allProjects,
|
||||
AllUsersName allUsers,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritServerConfig Config config) {
|
||||
this.cache = cache;
|
||||
this.permissionBackend = permissionBackend;
|
||||
this.updateFactory = updateFactory;
|
||||
this.allProjects = allProjects;
|
||||
this.allUsers = allUsers;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.allowProjectOwnersToChangeParent =
|
||||
config.getBoolean("receive", "allowProjectOwnersToChangeParent", false);
|
||||
}
|
||||
@@ -96,7 +99,7 @@ public class SetParent
|
||||
MoreObjects.firstNonNull(Strings.emptyToNull(input.parent), allProjects.get());
|
||||
validateParentUpdate(rsrc.getProjectState().getNameKey(), user, parentName, checkIfAdmin);
|
||||
try (MetaDataUpdate md = updateFactory.create(rsrc.getNameKey())) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
Project project = config.getProject();
|
||||
project.setParentName(parentName);
|
||||
|
||||
|
||||
@@ -73,6 +73,7 @@ public class AllProjectsCreator {
|
||||
private final AllProjectsName allProjectsName;
|
||||
private final PersonIdent serverUser;
|
||||
private final NotesMigration notesMigration;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final GroupReference anonymous;
|
||||
private final GroupReference registered;
|
||||
private final GroupReference owners;
|
||||
@@ -90,11 +91,13 @@ public class AllProjectsCreator {
|
||||
AllProjectsName allProjectsName,
|
||||
@GerritPersonIdent PersonIdent serverUser,
|
||||
NotesMigration notesMigration,
|
||||
SystemGroupBackend systemGroupBackend) {
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory) {
|
||||
this.repositoryManager = repositoryManager;
|
||||
this.allProjectsName = allProjectsName;
|
||||
this.serverUser = serverUser;
|
||||
this.notesMigration = notesMigration;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
|
||||
this.anonymous = systemGroupBackend.getGroup(ANONYMOUS_USERS);
|
||||
this.registered = systemGroupBackend.getGroup(REGISTERED_USERS);
|
||||
@@ -170,7 +173,7 @@ public class AllProjectsCreator {
|
||||
Strings.emptyToNull(message),
|
||||
"Initialized Gerrit Code Review " + Version.getVersion()));
|
||||
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
Project p = config.getProject();
|
||||
p.setDescription("Access inherited by all other projects.");
|
||||
p.setBooleanConfig(BooleanProjectConfig.REQUIRE_CHANGE_ID, InheritableBoolean.TRUE);
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.google.gerrit.server.git.GitRepositoryManager;
|
||||
import com.google.gerrit.server.git.meta.MetaDataUpdate;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
import com.google.gerrit.server.project.ProjectConfig;
|
||||
import com.google.gerrit.server.project.ProjectConfig.Factory;
|
||||
import com.google.gerrit.server.project.RefPattern;
|
||||
import com.google.inject.Inject;
|
||||
import java.io.IOException;
|
||||
@@ -50,6 +51,7 @@ public class AllUsersCreator {
|
||||
private final GitRepositoryManager mgr;
|
||||
private final AllUsersName allUsersName;
|
||||
private final PersonIdent serverUser;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final GroupReference registered;
|
||||
|
||||
@Nullable private GroupReference admin;
|
||||
@@ -60,11 +62,13 @@ public class AllUsersCreator {
|
||||
GitRepositoryManager mgr,
|
||||
AllUsersName allUsersName,
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
@GerritPersonIdent PersonIdent serverUser,
|
||||
Factory projectConfigFactory) {
|
||||
this.mgr = mgr;
|
||||
this.allUsersName = allUsersName;
|
||||
this.serverUser = serverUser;
|
||||
this.registered = systemGroupBackend.getGroup(REGISTERED_USERS);
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.codeReviewLabel = getDefaultCodeReviewLabel();
|
||||
}
|
||||
|
||||
@@ -107,7 +111,7 @@ public class AllUsersCreator {
|
||||
md.getCommitBuilder().setCommitter(serverUser);
|
||||
md.setMessage("Initialized Gerrit Code Review " + Version.getVersion());
|
||||
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
Project project = config.getProject();
|
||||
project.setDescription("Individual user settings and preferences.");
|
||||
|
||||
|
||||
@@ -42,15 +42,18 @@ import org.eclipse.jgit.transport.RefSpec;
|
||||
public class Schema_120 extends SchemaVersion {
|
||||
|
||||
private final GitRepositoryManager mgr;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
Schema_120(
|
||||
Provider<Schema_119> prior,
|
||||
GitRepositoryManager mgr,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.mgr = mgr;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -64,7 +67,7 @@ public class Schema_120 extends SchemaVersion {
|
||||
md.getCommitBuilder().setAuthor(serverUser);
|
||||
md.getCommitBuilder().setCommitter(serverUser);
|
||||
md.setMessage("Added superproject subscription during upgrade");
|
||||
ProjectConfig pc = ProjectConfig.read(md);
|
||||
ProjectConfig pc = projectConfigFactory.read(md);
|
||||
|
||||
SubscribeSection s = null;
|
||||
for (SubscribeSection s1 : pc.getSubscribeSections(subbranch)) {
|
||||
|
||||
@@ -57,6 +57,7 @@ public class Schema_125 extends SchemaVersion {
|
||||
private final AllUsersName allUsersName;
|
||||
private final AllProjectsName allProjectsName;
|
||||
private final SystemGroupBackend systemGroupBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
@@ -66,12 +67,14 @@ public class Schema_125 extends SchemaVersion {
|
||||
AllUsersName allUsersName,
|
||||
AllProjectsName allProjectsName,
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.allUsersName = allUsersName;
|
||||
this.allProjectsName = allProjectsName;
|
||||
this.systemGroupBackend = systemGroupBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -79,7 +82,7 @@ public class Schema_125 extends SchemaVersion {
|
||||
protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException {
|
||||
try (Repository git = repoManager.openRepository(allUsersName);
|
||||
MetaDataUpdate md = new MetaDataUpdate(GitReferenceUpdated.DISABLED, allUsersName, git)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
|
||||
config
|
||||
.getAccessSection(RefNames.REFS_USERS + "*", true)
|
||||
@@ -114,7 +117,7 @@ public class Schema_125 extends SchemaVersion {
|
||||
while (parent != null) {
|
||||
try (Repository git = repoManager.openRepository(parent);
|
||||
MetaDataUpdate md = new MetaDataUpdate(GitReferenceUpdated.DISABLED, parent, git)) {
|
||||
ProjectConfig parentConfig = ProjectConfig.read(md);
|
||||
ProjectConfig parentConfig = projectConfigFactory.read(md);
|
||||
for (LabelType lt : parentConfig.getLabelSections().values()) {
|
||||
if (!labelTypes.containsKey(lt.getName())) {
|
||||
labelTypes.put(lt.getName(), lt);
|
||||
|
||||
@@ -44,6 +44,7 @@ public class Schema_126 extends SchemaVersion {
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final AllUsersName allUsersName;
|
||||
private final SystemGroupBackend systemGroupBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
@@ -52,11 +53,13 @@ public class Schema_126 extends SchemaVersion {
|
||||
GitRepositoryManager repoManager,
|
||||
AllUsersName allUsersName,
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.allUsersName = allUsersName;
|
||||
this.systemGroupBackend = systemGroupBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -64,7 +67,7 @@ public class Schema_126 extends SchemaVersion {
|
||||
protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException {
|
||||
try (Repository git = repoManager.openRepository(allUsersName);
|
||||
MetaDataUpdate md = new MetaDataUpdate(GitReferenceUpdated.DISABLED, allUsersName, git)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
|
||||
String refsUsersShardedId = RefNames.REFS_USERS + "${" + RefPattern.USERID_SHARDED + "}";
|
||||
config.remove(config.getAccessSection(refsUsersShardedId));
|
||||
|
||||
@@ -42,6 +42,7 @@ public class Schema_128 extends SchemaVersion {
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final AllProjectsName allProjectsName;
|
||||
private final SystemGroupBackend systemGroupBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
@@ -50,11 +51,13 @@ public class Schema_128 extends SchemaVersion {
|
||||
GitRepositoryManager repoManager,
|
||||
AllProjectsName allProjectsName,
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.allProjectsName = allProjectsName;
|
||||
this.systemGroupBackend = systemGroupBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -63,7 +66,7 @@ public class Schema_128 extends SchemaVersion {
|
||||
try (Repository git = repoManager.openRepository(allProjectsName);
|
||||
MetaDataUpdate md =
|
||||
new MetaDataUpdate(GitReferenceUpdated.DISABLED, allProjectsName, git)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
|
||||
GroupReference registered = systemGroupBackend.getGroup(REGISTERED_USERS);
|
||||
AccessSection refsFor = config.getAccessSection("refs/for/*", true);
|
||||
|
||||
@@ -38,15 +38,18 @@ public class Schema_131 extends SchemaVersion {
|
||||
"Rename 'Push Annotated/Signed Tag' permission to 'Create Annotated/Signed Tag'";
|
||||
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
Schema_131(
|
||||
Provider<Schema_130> prior,
|
||||
GitRepositoryManager repoManager,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -58,7 +61,7 @@ public class Schema_131 extends SchemaVersion {
|
||||
for (Project.NameKey projectName : repoList) {
|
||||
try (Repository git = repoManager.openRepository(projectName);
|
||||
MetaDataUpdate md = new MetaDataUpdate(GitReferenceUpdated.DISABLED, projectName, git)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
if (config.hasLegacyPermissions()) {
|
||||
md.getCommitBuilder().setAuthor(serverUser);
|
||||
md.getCommitBuilder().setCommitter(serverUser);
|
||||
|
||||
@@ -48,6 +48,7 @@ public class Schema_135 extends SchemaVersion {
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final AllProjectsName allProjectsName;
|
||||
private final SystemGroupBackend systemGroupBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
@@ -56,11 +57,13 @@ public class Schema_135 extends SchemaVersion {
|
||||
GitRepositoryManager repoManager,
|
||||
AllProjectsName allProjectsName,
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.allProjectsName = allProjectsName;
|
||||
this.systemGroupBackend = systemGroupBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -69,7 +72,7 @@ public class Schema_135 extends SchemaVersion {
|
||||
try (Repository git = repoManager.openRepository(allProjectsName);
|
||||
MetaDataUpdate md =
|
||||
new MetaDataUpdate(GitReferenceUpdated.DISABLED, allProjectsName, git)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
|
||||
AccessSection meta = config.getAccessSection(RefNames.REFS_CONFIG, true);
|
||||
Permission createRefsMetaConfigPermission = meta.getPermission(Permission.CREATE, true);
|
||||
|
||||
@@ -34,6 +34,7 @@ public class Schema_162 extends SchemaVersion {
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final AllProjectsName allProjectsName;
|
||||
private final AllUsersName allUsersName;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
@@ -42,11 +43,13 @@ public class Schema_162 extends SchemaVersion {
|
||||
GitRepositoryManager repoManager,
|
||||
AllProjectsName allProjectsName,
|
||||
AllUsersName allUsersName,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.allProjectsName = allProjectsName;
|
||||
this.allUsersName = allUsersName;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -54,7 +57,7 @@ public class Schema_162 extends SchemaVersion {
|
||||
protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException {
|
||||
try (Repository git = repoManager.openRepository(allUsersName);
|
||||
MetaDataUpdate md = new MetaDataUpdate(GitReferenceUpdated.DISABLED, allUsersName, git)) {
|
||||
ProjectConfig cfg = ProjectConfig.read(md);
|
||||
ProjectConfig cfg = projectConfigFactory.read(md);
|
||||
if (allProjectsName.equals(cfg.getProject().getParent(allProjectsName))) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ public class Schema_164 extends SchemaVersion {
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final AllUsersName allUsersName;
|
||||
private final SystemGroupBackend systemGroupBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
@@ -52,11 +53,13 @@ public class Schema_164 extends SchemaVersion {
|
||||
GitRepositoryManager repoManager,
|
||||
AllUsersName allUsersName,
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.allUsersName = allUsersName;
|
||||
this.systemGroupBackend = systemGroupBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -68,7 +71,7 @@ public class Schema_164 extends SchemaVersion {
|
||||
md.getCommitBuilder().setCommitter(serverUser);
|
||||
md.setMessage(COMMIT_MSG);
|
||||
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
AccessSection groups = config.getAccessSection(RefNames.REFS_GROUPS + "*", true);
|
||||
grant(
|
||||
config,
|
||||
|
||||
@@ -48,6 +48,7 @@ public class Schema_165 extends SchemaVersion {
|
||||
private final GitRepositoryManager repoManager;
|
||||
private final AllUsersName allUsersName;
|
||||
private final SystemGroupBackend systemGroupBackend;
|
||||
private final ProjectConfig.Factory projectConfigFactory;
|
||||
private final PersonIdent serverUser;
|
||||
|
||||
@Inject
|
||||
@@ -56,11 +57,13 @@ public class Schema_165 extends SchemaVersion {
|
||||
GitRepositoryManager repoManager,
|
||||
AllUsersName allUsersName,
|
||||
SystemGroupBackend systemGroupBackend,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@GerritPersonIdent PersonIdent serverUser) {
|
||||
super(prior);
|
||||
this.repoManager = repoManager;
|
||||
this.allUsersName = allUsersName;
|
||||
this.systemGroupBackend = systemGroupBackend;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.serverUser = serverUser;
|
||||
}
|
||||
|
||||
@@ -68,7 +71,7 @@ public class Schema_165 extends SchemaVersion {
|
||||
protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException, SQLException {
|
||||
try (Repository git = repoManager.openRepository(allUsersName);
|
||||
MetaDataUpdate md = new MetaDataUpdate(GitReferenceUpdated.DISABLED, allUsersName, git)) {
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
ProjectConfig config = projectConfigFactory.read(md);
|
||||
Optional<Permission> permission = findDefaultPermission(config);
|
||||
if (!permission.isPresent()) {
|
||||
// the default permission was not found, hence it cannot be fixed
|
||||
|
||||
@@ -46,6 +46,7 @@ import com.google.gerrit.server.git.validators.OnSubmitValidators;
|
||||
import com.google.gerrit.server.logging.RequestId;
|
||||
import com.google.gerrit.server.patch.PatchSetInfoFactory;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gerrit.server.project.ProjectConfig;
|
||||
import com.google.gerrit.server.project.ProjectState;
|
||||
import com.google.gerrit.server.query.change.InternalChangeQuery;
|
||||
import com.google.gerrit.server.submit.MergeOp.CommitStatus;
|
||||
@@ -115,6 +116,7 @@ public abstract class SubmitStrategy {
|
||||
final OnSubmitValidators.Factory onSubmitValidatorsFactory;
|
||||
final TagCache tagCache;
|
||||
final Provider<InternalChangeQuery> queryProvider;
|
||||
final ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
final Branch.NameKey destBranch;
|
||||
final CodeReviewRevWalk rw;
|
||||
@@ -154,6 +156,7 @@ public abstract class SubmitStrategy {
|
||||
OnSubmitValidators.Factory onSubmitValidatorsFactory,
|
||||
TagCache tagCache,
|
||||
Provider<InternalChangeQuery> queryProvider,
|
||||
ProjectConfig.Factory projectConfigFactory,
|
||||
@Assisted Branch.NameKey destBranch,
|
||||
@Assisted CommitStatus commitStatus,
|
||||
@Assisted CodeReviewRevWalk rw,
|
||||
@@ -176,6 +179,7 @@ public abstract class SubmitStrategy {
|
||||
this.repoManager = repoManager;
|
||||
this.cmUtil = cmUtil;
|
||||
this.labelNormalizer = labelNormalizer;
|
||||
this.projectConfigFactory = projectConfigFactory;
|
||||
this.patchSetInfoFactory = patchSetInfoFactory;
|
||||
this.psUtil = psUtil;
|
||||
this.projectCache = projectCache;
|
||||
|
||||
@@ -145,7 +145,7 @@ abstract class SubmitStrategyOp implements BatchUpdateOp {
|
||||
if (RefNames.REFS_CONFIG.equals(refName)) {
|
||||
logger.atFine().log("Loading new configuration from %s", RefNames.REFS_CONFIG);
|
||||
try {
|
||||
ProjectConfig cfg = new ProjectConfig(getProject());
|
||||
ProjectConfig cfg = args.projectConfigFactory.create(getProject());
|
||||
cfg.load(ctx.getRevWalk(), commit);
|
||||
} catch (Exception e) {
|
||||
throw new IntegrationException(
|
||||
|
||||
@@ -189,7 +189,7 @@ public abstract class AbstractSubmoduleSubscription extends AbstractDaemonTest {
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(sub)) {
|
||||
md.setMessage("Added superproject subscription");
|
||||
SubscribeSection s;
|
||||
ProjectConfig pc = ProjectConfig.read(md);
|
||||
ProjectConfig pc = projectConfigFactory.read(md);
|
||||
if (pc.getSubscribeSections().containsKey(superName)) {
|
||||
s = pc.getSubscribeSections().get(superName);
|
||||
} else {
|
||||
|
||||
@@ -74,6 +74,7 @@ public class LabelNormalizerTest {
|
||||
@Inject private SchemaCreator schemaCreator;
|
||||
@Inject protected ThreadLocalRequestContext requestContext;
|
||||
@Inject private ChangeNotes.Factory changeNotesFactory;
|
||||
@Inject private ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
private LifecycleManager lifecycle;
|
||||
private ReviewDb db;
|
||||
@@ -198,7 +199,7 @@ public class LabelNormalizerTest {
|
||||
|
||||
private ProjectConfig loadAllProjects() throws Exception {
|
||||
try (Repository repo = repoManager.openRepository(allProjects)) {
|
||||
ProjectConfig pc = new ProjectConfig(allProjects);
|
||||
ProjectConfig pc = projectConfigFactory.create(allProjects);
|
||||
pc.load(repo);
|
||||
return pc;
|
||||
}
|
||||
|
||||
@@ -206,6 +206,7 @@ public class RefControlTest {
|
||||
@Inject private DefaultRefFilter.Factory refFilterFactory;
|
||||
@Inject private TransferConfig transferConfig;
|
||||
@Inject private MetricMaker metricMaker;
|
||||
@Inject private ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
@@ -274,7 +275,8 @@ public class RefControlTest {
|
||||
|
||||
try {
|
||||
Repository repo = repoManager.createRepository(allProjectsName);
|
||||
ProjectConfig allProjects = new ProjectConfig(new Project.NameKey(allProjectsName.get()));
|
||||
ProjectConfig allProjects =
|
||||
projectConfigFactory.create(new Project.NameKey(allProjectsName.get()));
|
||||
allProjects.load(repo);
|
||||
LabelType cr = Util.codeReview();
|
||||
allProjects.getLabelSections().put(cr.getName(), cr);
|
||||
@@ -295,11 +297,11 @@ public class RefControlTest {
|
||||
CacheBuilder.newBuilder().build();
|
||||
sectionSorter = new PermissionCollection.Factory(new SectionSortCache(c), metricMaker);
|
||||
|
||||
parent = new ProjectConfig(parentKey);
|
||||
parent = projectConfigFactory.create(parentKey);
|
||||
parent.load(newRepository(parentKey));
|
||||
add(parent);
|
||||
|
||||
local = new ProjectConfig(localKey);
|
||||
local = projectConfigFactory.create(localKey);
|
||||
local.load(newRepository(localKey));
|
||||
add(local);
|
||||
local.getProject().setParentName(parentKey);
|
||||
@@ -455,7 +457,7 @@ public class RefControlTest {
|
||||
allow(local, READ, DEVS, "refs/heads/*");
|
||||
assertCanAccess(user(local, "a", ADMIN));
|
||||
|
||||
local = new ProjectConfig(localKey);
|
||||
local = projectConfigFactory.create(localKey);
|
||||
local.load(newRepository(localKey));
|
||||
local.getProject().setParentName(parentKey);
|
||||
allow(local, READ, DEVS, "refs/*");
|
||||
|
||||
@@ -57,6 +57,7 @@ public class CommitsCollectionTest {
|
||||
@Inject protected MetaDataUpdate.Server metaDataUpdateFactory;
|
||||
@Inject protected AllProjectsName allProjects;
|
||||
@Inject private CommitsCollection commits;
|
||||
@Inject private ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
private TestRepository<InMemoryRepository> repo;
|
||||
private ProjectConfig project;
|
||||
@@ -70,7 +71,7 @@ public class CommitsCollectionTest {
|
||||
|
||||
Project.NameKey name = new Project.NameKey("project");
|
||||
InMemoryRepository inMemoryRepo = repoManager.createRepository(name);
|
||||
project = new ProjectConfig(name);
|
||||
project = projectConfigFactory.create(name);
|
||||
project.load(inMemoryRepo);
|
||||
repo = new TestRepository<>(inMemoryRepo);
|
||||
}
|
||||
|
||||
@@ -78,11 +78,13 @@ public class ProjectConfigTest extends GerritBaseTests {
|
||||
new GroupReference(new AccountGroup.UUID("X"), "Developers");
|
||||
private final GroupReference staff = new GroupReference(new AccountGroup.UUID("Y"), "Staff");
|
||||
|
||||
private ProjectConfig.Factory factory;
|
||||
private Repository db;
|
||||
private TestRepository<?> tr;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
factory = new ProjectConfig.Factory();
|
||||
db = new InMemoryRepository(new DfsRepositoryDescription("repo"));
|
||||
tr = new TestRepository<>(db);
|
||||
}
|
||||
@@ -404,7 +406,7 @@ public class ProjectConfigTest extends GerritBaseTests {
|
||||
|
||||
@Test
|
||||
public void readUnexistingPluginConfig() throws Exception {
|
||||
ProjectConfig cfg = new ProjectConfig(new Project.NameKey("test"));
|
||||
ProjectConfig cfg = factory.create(new Project.NameKey("test"));
|
||||
cfg.load(db);
|
||||
PluginConfig pluginCfg = cfg.getPluginConfig("somePlugin");
|
||||
assertThat(pluginCfg.getNames()).isEmpty();
|
||||
@@ -592,7 +594,7 @@ public class ProjectConfigTest extends GerritBaseTests {
|
||||
}
|
||||
|
||||
private ProjectConfig read(RevCommit rev) throws IOException, ConfigInvalidException {
|
||||
ProjectConfig cfg = new ProjectConfig(new Project.NameKey("test"));
|
||||
ProjectConfig cfg = factory.create(new Project.NameKey("test"));
|
||||
cfg.load(db, rev);
|
||||
return cfg;
|
||||
}
|
||||
|
||||
@@ -50,6 +50,8 @@ public class SchemaCreatorTest {
|
||||
|
||||
@Inject private InMemoryDatabase db;
|
||||
|
||||
@Inject private ProjectConfig.Factory projectConfigFactory;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
new InMemoryModule().inject(this);
|
||||
@@ -85,7 +87,7 @@ public class SchemaCreatorTest {
|
||||
|
||||
private LabelTypes getLabelTypes() throws Exception {
|
||||
db.create();
|
||||
ProjectConfig c = new ProjectConfig(allProjects);
|
||||
ProjectConfig c = projectConfigFactory.create(allProjects);
|
||||
try (Repository repo = repoManager.openRepository(allProjects)) {
|
||||
c.load(repo);
|
||||
return new LabelTypes(ImmutableList.copyOf(c.getLabelSections().values()));
|
||||
|
||||
@@ -47,6 +47,7 @@ public class Schema_161_to_162_Test {
|
||||
@Inject private GitRepositoryManager repoManager;
|
||||
@Inject private Schema_162 schema162;
|
||||
@Inject private ReviewDb db;
|
||||
@Inject private ProjectConfig.Factory projectConfigFactory;
|
||||
@Inject @GerritPersonIdent private PersonIdent serverUser;
|
||||
|
||||
@Test
|
||||
@@ -73,7 +74,7 @@ public class Schema_161_to_162_Test {
|
||||
|
||||
try (Repository git = repoManager.openRepository(allUsersName);
|
||||
MetaDataUpdate md = new MetaDataUpdate(GitReferenceUpdated.DISABLED, allUsersName, git)) {
|
||||
ProjectConfig cfg = ProjectConfig.read(md);
|
||||
ProjectConfig cfg = projectConfigFactory.read(md);
|
||||
cfg.getProject().setParentName(testProject);
|
||||
md.getCommitBuilder().setCommitter(serverUser);
|
||||
md.getCommitBuilder().setAuthor(serverUser);
|
||||
|
||||
Reference in New Issue
Block a user