Define Provider<ProjectLevelConfig.Bare>, reduce code repetition
Change-Id: I854b8f8722c1cc25d1334b256d4ae201ffb11e3f
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
index defb457..13ff20c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
@@ -78,7 +78,7 @@
}
private final PluginConfig cfg;
- private final String pluginName;
+ private final Provider<ProjectLevelConfig.Bare> configProvider;
private final CreateAccount createAccount;
private final List<String> blockedNames;
private final Provider<CurrentUser> userProvider;
@@ -91,6 +91,7 @@
@Inject
CreateServiceUser(
PluginConfigFactory cfgFactory,
+ Provider<ProjectLevelConfig.Bare> configProvider,
@PluginName String pluginName,
CreateAccount createAccount,
Provider<CurrentUser> userProvider,
@@ -100,7 +101,7 @@
Provider<GetConfig> getConfig,
AccountLoader.Factory accountLoader) {
this.cfg = cfgFactory.getFromGerritConfig(pluginName);
- this.pluginName = pluginName;
+ this.configProvider = configProvider;
this.createAccount = createAccount;
this.blockedNames =
Lists.transform(
@@ -179,7 +180,7 @@
String creationDate = rfc2822DateFormatter.format(new Date());
try (MetaDataUpdate md = metaDataUpdateFactory.create(allProjects)) {
- ProjectLevelConfig.Bare update = new ProjectLevelConfig.Bare(pluginName + ".db");
+ ProjectLevelConfig.Bare update = configProvider.get();
update.load(md);
Config db = update.getConfig();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
index 56d14e1..9dc32a4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
@@ -19,13 +19,16 @@
import static com.googlesource.gerrit.plugins.serviceuser.ServiceUserResource.SERVICE_USER_SSH_KEY_KIND;
import com.google.gerrit.extensions.annotations.Exports;
+import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.config.CapabilityDefinition;
import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.RestApiModule;
import com.google.gerrit.server.git.validators.CommitValidationListener;
+import com.google.gerrit.server.project.ProjectLevelConfig;
import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
import com.google.inject.assistedinject.FactoryModuleBuilder;
class Module extends AbstractModule {
@@ -72,4 +75,9 @@
});
install(new HttpModule());
}
+
+ @Provides
+ ProjectLevelConfig.Bare createProjectLevelConfig(@PluginName String pluginName) {
+ return new ProjectLevelConfig.Bare(pluginName + ".db");
+ }
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java
index 065e2ea..120c464 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java
@@ -24,7 +24,6 @@
import com.google.gerrit.entities.AccountGroup.UUID;
import com.google.gerrit.entities.GroupDescription;
import com.google.gerrit.entities.Project;
-import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.common.GroupInfo;
import com.google.gerrit.extensions.restapi.DefaultInput;
import com.google.gerrit.extensions.restapi.IdString;
@@ -58,7 +57,7 @@
private final Provider<GetConfig> getConfig;
private final GroupsCollection groups;
- private final String pluginName;
+ private final Provider<ProjectLevelConfig.Bare> configProvider;
private final Project.NameKey allProjects;
private final MetaDataUpdate.User metaDataUpdateFactory;
private final GroupJson json;
@@ -69,7 +68,7 @@
PutOwner(
Provider<GetConfig> getConfig,
GroupsCollection groups,
- @PluginName String pluginName,
+ Provider<ProjectLevelConfig.Bare> configProvider,
ProjectCache projectCache,
MetaDataUpdate.User metaDataUpdateFactory,
GroupJson json,
@@ -77,7 +76,7 @@
PermissionBackend permissionBackend) {
this.getConfig = getConfig;
this.groups = groups;
- this.pluginName = pluginName;
+ this.configProvider = configProvider;
this.allProjects = projectCache.getAllProjects().getProject().getNameKey();
this.metaDataUpdateFactory = metaDataUpdateFactory;
this.json = json;
@@ -105,7 +104,7 @@
GroupDescription.Basic group = null;
String oldGroup;
try (MetaDataUpdate md = metaDataUpdateFactory.create(allProjects)) {
- ProjectLevelConfig.Bare update = new ProjectLevelConfig.Bare(pluginName + ".db");
+ ProjectLevelConfig.Bare update = configProvider.get();
update.load(md);
Config db = update.getConfig();