Accomodate for API change in the replication plugin
The introduction of `ConfigResource` and `ConfigResourceOverrides`[1]
required API chagnes in the replication plugin which in turn forced
changes in the pull-replication to fix the compliation errors.
[1] https://issues.gerritcodereview.com/issues/310510978
Bug: Issue 319053155
Change-Id: I01c398e437ffbb31105db02de05cab8188f1c9ac
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
index cbdfe1b..fdd2a0f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
@@ -25,25 +25,19 @@
import com.google.gerrit.extensions.events.ProjectDeletedListener;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.metrics.MetricMaker;
-import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.events.EventListener;
import com.google.gerrit.server.events.EventTypes;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
-import com.google.inject.ProvisionException;
import com.google.inject.Scopes;
import com.google.inject.assistedinject.FactoryModuleBuilder;
import com.google.inject.internal.UniqueAnnotations;
import com.google.inject.name.Names;
-import com.googlesource.gerrit.plugins.replication.AutoReloadConfigDecorator;
import com.googlesource.gerrit.plugins.replication.AutoReloadSecureCredentialsFactoryDecorator;
import com.googlesource.gerrit.plugins.replication.ConfigParser;
import com.googlesource.gerrit.plugins.replication.CredentialsFactory;
-import com.googlesource.gerrit.plugins.replication.FanoutReplicationConfig;
-import com.googlesource.gerrit.plugins.replication.MainReplicationConfig;
import com.googlesource.gerrit.plugins.replication.ObservableQueue;
-import com.googlesource.gerrit.plugins.replication.ReplicationConfig;
-import com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigModule;
import com.googlesource.gerrit.plugins.replication.StartReplicationCapability;
import com.googlesource.gerrit.plugins.replication.pull.api.FetchApiCapability;
import com.googlesource.gerrit.plugins.replication.pull.api.FetchJob;
@@ -55,24 +49,17 @@
import com.googlesource.gerrit.plugins.replication.pull.event.EventsBrokerConsumerModule;
import com.googlesource.gerrit.plugins.replication.pull.event.StreamEventModule;
import com.googlesource.gerrit.plugins.replication.pull.fetch.ApplyObject;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.Config;
-import org.eclipse.jgit.storage.file.FileBasedConfig;
-import org.eclipse.jgit.util.FS;
class PullReplicationModule extends AbstractModule {
- private final SitePaths site;
- private final Path cfgPath;
+
private final MetricMaker pluginMetricMaker;
+ private final ReplicationConfigModule configModule;
@Inject
- public PullReplicationModule(SitePaths site, MetricMaker pluginMetricMaker) {
- this.site = site;
- cfgPath = site.etc_dir.resolve("replication.config");
+ public PullReplicationModule(
+ ReplicationConfigModule configModule, MetricMaker pluginMetricMaker) {
+ this.configModule = configModule;
this.pluginMetricMaker = pluginMetricMaker;
}
@@ -86,6 +73,7 @@
.annotatedWith(Exports.named(CALL_FETCH_ACTION))
.to(FetchApiCapability.class);
+ install(configModule);
install(new PullReplicationGroupModule());
bind(BearerTokenProvider.class).in(Scopes.SINGLETON);
bind(RevisionReader.class).in(Scopes.SINGLETON);
@@ -136,19 +124,7 @@
bind(ConfigParser.class).to(SourceConfigParser.class).in(Scopes.SINGLETON);
- Config replicationConfig = getReplicationConfig();
- if (replicationConfig.getBoolean("gerrit", "autoReload", false)) {
- bind(ReplicationConfig.class)
- .annotatedWith(MainReplicationConfig.class)
- .to(getReplicationConfigClass());
- bind(ReplicationConfig.class).to(AutoReloadConfigDecorator.class).in(Scopes.SINGLETON);
- bind(LifecycleListener.class)
- .annotatedWith(UniqueAnnotations.create())
- .to(AutoReloadConfigDecorator.class);
- } else {
- bind(ReplicationConfig.class).to(getReplicationConfigClass()).in(Scopes.SINGLETON);
- }
-
+ Config replicationConfig = configModule.getReplicationConfig();
String eventBrokerTopic = replicationConfig.getString("replication", null, "eventBrokerTopic");
if (replicationConfig.getBoolean("replication", "consumeStreamEvents", false)) {
install(new StreamEventModule());
@@ -162,22 +138,4 @@
EventTypes.register(FetchRefReplicationDoneEvent.TYPE, FetchRefReplicationDoneEvent.class);
EventTypes.register(FetchReplicationScheduledEvent.TYPE, FetchReplicationScheduledEvent.class);
}
-
- private FileBasedConfig getReplicationConfig() {
- File replicationConfigFile = cfgPath.toFile();
- FileBasedConfig config = new FileBasedConfig(replicationConfigFile, FS.DETECTED);
- try {
- config.load();
- } catch (IOException | ConfigInvalidException e) {
- throw new ProvisionException("Unable to load " + replicationConfigFile.getAbsolutePath(), e);
- }
- return config;
- }
-
- private Class<? extends ReplicationConfig> getReplicationConfigClass() {
- if (Files.exists(site.etc_dir.resolve("replication"))) {
- return FanoutReplicationConfig.class;
- }
- return ReplicationFileBasedConfig.class;
- }
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/Source.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/Source.java
index 98e8d1d..218592b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/Source.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/Source.java
@@ -14,7 +14,7 @@
package com.googlesource.gerrit.plugins.replication.pull;
-import static com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig.replaceName;
+import static com.googlesource.gerrit.plugins.replication.ReplicationConfigImpl.replaceName;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FetchITBase.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FetchITBase.java
index 3429983..fc329bf 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FetchITBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/FetchITBase.java
@@ -23,14 +23,18 @@
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.entities.Project;
import com.google.gerrit.extensions.config.FactoryModule;
+import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.server.config.SitePaths;
import com.google.inject.Inject;
import com.google.inject.Scopes;
import com.google.inject.assistedinject.FactoryModuleBuilder;
import com.googlesource.gerrit.plugins.replication.AutoReloadSecureCredentialsFactoryDecorator;
+import com.googlesource.gerrit.plugins.replication.ConfigResource;
import com.googlesource.gerrit.plugins.replication.CredentialsFactory;
+import com.googlesource.gerrit.plugins.replication.FileConfigResource;
import com.googlesource.gerrit.plugins.replication.ReplicationConfig;
-import com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigImpl;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigOverrides;
import com.googlesource.gerrit.plugins.replication.pull.fetch.Fetch;
import com.googlesource.gerrit.plugins.replication.pull.fetch.FetchClientImplementation;
import com.googlesource.gerrit.plugins.replication.pull.fetch.FetchFactory;
@@ -117,7 +121,9 @@
try {
RemoteConfig remoteConfig = new RemoteConfig(cf(), "test_config");
SourceConfiguration sourceConfig = new SourceConfiguration(remoteConfig, cf());
- bind(ReplicationConfig.class).to(ReplicationFileBasedConfig.class);
+ DynamicItem.itemOf(binder(), ReplicationConfigOverrides.class);
+ bind(ConfigResource.class).to(FileConfigResource.class);
+ bind(ReplicationConfig.class).to(ReplicationConfigImpl.class);
bind(CredentialsFactory.class)
.to(AutoReloadSecureCredentialsFactoryDecorator.class)
.in(Scopes.SINGLETON);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationBatchRefUpdatedIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationBatchRefUpdatedIT.java
index 2e727d1..38f2b83 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationBatchRefUpdatedIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationBatchRefUpdatedIT.java
@@ -22,7 +22,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public class PullReplicationBatchRefUpdatedIT extends PullReplicationITBase {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigBatchRefUpdateEventIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigBatchRefUpdateEventIT.java
index 7babf34..994ef36 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigBatchRefUpdateEventIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigBatchRefUpdateEventIT.java
@@ -21,7 +21,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public class PullReplicationFanoutConfigBatchRefUpdateEventIT
extends PullReplicationFanoutConfigBase {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigRefUpdatedEventIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigRefUpdatedEventIT.java
index 16b0b02..c5273ee 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigRefUpdatedEventIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationFanoutConfigRefUpdatedEventIT.java
@@ -21,7 +21,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public class PullReplicationFanoutConfigRefUpdatedEventIT extends PullReplicationFanoutConfigBase {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationITAbstract.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationITAbstract.java
index 130bb41..c791770 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationITAbstract.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationITAbstract.java
@@ -34,13 +34,14 @@
import com.google.gerrit.extensions.events.ProjectDeletedListener;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.RestApiException;
-import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.events.EventListener;
import com.google.gerrit.server.events.ProjectEvent;
import com.google.inject.Inject;
import com.google.inject.Singleton;
+import com.googlesource.gerrit.plugins.replication.ApiModule;
import com.googlesource.gerrit.plugins.replication.AutoReloadConfigDecorator;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigModule;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
@@ -70,13 +71,15 @@
public static class PullReplicationTestModule extends PullReplicationModule {
@Inject
- public PullReplicationTestModule(SitePaths site, InMemoryMetricMaker memMetric) {
- super(site, memMetric);
+ public PullReplicationTestModule(
+ ReplicationConfigModule configModule, InMemoryMetricMaker memMetric) {
+ super(configModule, memMetric);
}
@Override
protected void configure() {
super.configure();
+ install(new ApiModule());
DynamicSet.bind(binder(), EventListener.class)
.to(BufferedEventListener.class)
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationRefUpdatedIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationRefUpdatedIT.java
index 6e7c369..c6f4b8d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationRefUpdatedIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationRefUpdatedIT.java
@@ -22,7 +22,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public class PullReplicationRefUpdatedIT extends PullReplicationITBase {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBase.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBase.java
index 2e95ef1..d0c25e4 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBase.java
@@ -35,7 +35,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public abstract class PullReplicationWithGitHttpTransportProtocolBase
extends PullReplicationSetupBase {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBatchRefUpdatedIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBatchRefUpdatedIT.java
index 8c8ca37..2d36f1a 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBatchRefUpdatedIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolBatchRefUpdatedIT.java
@@ -22,7 +22,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public class PullReplicationWithGitHttpTransportProtocolBatchRefUpdatedIT
extends PullReplicationWithGitHttpTransportProtocolBase {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolRefUpdatedIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolRefUpdatedIT.java
index 5f3c7b6..8c93bc4 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolRefUpdatedIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationWithGitHttpTransportProtocolRefUpdatedIT.java
@@ -22,7 +22,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public class PullReplicationWithGitHttpTransportProtocolRefUpdatedIT
extends PullReplicationWithGitHttpTransportProtocolBase {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java
index e3eb65b..84fee55 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueueTest.java
@@ -47,8 +47,10 @@
import com.google.gerrit.server.events.RefUpdatedEvent;
import com.google.gerrit.server.git.WorkQueue;
import com.google.inject.Provider;
+import com.googlesource.gerrit.plugins.replication.FileConfigResource;
+import com.googlesource.gerrit.plugins.replication.MergedConfigResource;
import com.googlesource.gerrit.plugins.replication.ReplicationConfig;
-import com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigImpl;
import com.googlesource.gerrit.plugins.replication.pull.api.data.BatchApplyObjectData;
import com.googlesource.gerrit.plugins.replication.pull.api.data.RevisionData;
import com.googlesource.gerrit.plugins.replication.pull.client.FetchApiClient;
@@ -127,7 +129,11 @@
Path sitePath = createTempPath("site");
sitePaths = new SitePaths(sitePath);
Path pluginDataPath = createTempPath("data");
- ReplicationConfig replicationConfig = new ReplicationFileBasedConfig(sitePaths, pluginDataPath);
+ ReplicationConfig replicationConfig =
+ new ReplicationConfigImpl(
+ MergedConfigResource.withBaseOnly(new FileConfigResource(sitePaths)),
+ sitePaths,
+ pluginDataPath);
refsFilter = new ExcludedRefsFilter(replicationConfig);
when(source.getConnectionTimeout()).thenReturn(CONNECTION_TIMEOUT);
when(source.wouldFetchProject(any())).thenReturn(true);
@@ -507,7 +513,11 @@
new FileBasedConfig(sitePaths.etc_dir.resolve("replication.config").toFile(), FS.DETECTED);
fileConfig.setString("replication", null, "excludeRefs", "refs/multi-site/version");
fileConfig.save();
- ReplicationConfig replicationConfig = new ReplicationFileBasedConfig(sitePaths, pluginDataPath);
+ ReplicationConfig replicationConfig =
+ new ReplicationConfigImpl(
+ MergedConfigResource.withBaseOnly(new FileConfigResource(sitePaths)),
+ sitePaths,
+ pluginDataPath);
refsFilter = new ExcludedRefsFilter(replicationConfig);
objectUnderTest =
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/RevisionReaderIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/RevisionReaderIT.java
index 8e7dc35..f1fbfe2 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/RevisionReaderIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/RevisionReaderIT.java
@@ -35,8 +35,11 @@
import com.google.gerrit.extensions.config.FactoryModule;
import com.google.gerrit.server.Sequence;
import com.google.inject.Scopes;
+import com.googlesource.gerrit.plugins.replication.ApiModule;
+import com.googlesource.gerrit.plugins.replication.ConfigResource;
+import com.googlesource.gerrit.plugins.replication.FileConfigResource;
import com.googlesource.gerrit.plugins.replication.ReplicationConfig;
-import com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigImpl;
import com.googlesource.gerrit.plugins.replication.pull.api.data.RevisionData;
import com.googlesource.gerrit.plugins.replication.pull.api.data.RevisionObjectData;
import com.googlesource.gerrit.plugins.replication.pull.fetch.ApplyObject;
@@ -60,12 +63,12 @@
public class RevisionReaderIT extends LightweightPluginDaemonTest {
RevisionReader objectUnderTest;
- ReplicationFileBasedConfig replicationConfig;
+ ReplicationConfigImpl replicationConfig;
@Before
public void setup() {
objectUnderTest = plugin.getSysInjector().getInstance(RevisionReader.class);
- replicationConfig = plugin.getSysInjector().getInstance(ReplicationFileBasedConfig.class);
+ replicationConfig = plugin.getSysInjector().getInstance(ReplicationConfigImpl.class);
}
@Test
@@ -305,7 +308,9 @@
private static class TestModule extends FactoryModule {
@Override
protected void configure() {
- bind(ReplicationConfig.class).to(ReplicationFileBasedConfig.class);
+ install(new ApiModule());
+ bind(ConfigResource.class).to(FileConfigResource.class);
+ bind(ReplicationConfig.class).to(ReplicationConfigImpl.class);
bind(RevisionReader.class).in(Scopes.SINGLETON);
bind(ApplyObject.class);
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/TestPullReplicationModule.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/TestPullReplicationModule.java
new file mode 100644
index 0000000..a20f617
--- /dev/null
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/TestPullReplicationModule.java
@@ -0,0 +1,21 @@
+package com.googlesource.gerrit.plugins.replication.pull;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.googlesource.gerrit.plugins.replication.ApiModule;
+
+public class TestPullReplicationModule extends AbstractModule {
+
+ private final PullReplicationModule pullReplicationModule;
+
+ @Inject
+ TestPullReplicationModule(PullReplicationModule pullReplicationModule) {
+ this.pullReplicationModule = pullReplicationModule;
+ }
+
+ @Override
+ protected void configure() {
+ install(new ApiModule());
+ install(pullReplicationModule);
+ }
+}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ActionITBase.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ActionITBase.java
index f8110d1..6c83d93 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ActionITBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ActionITBase.java
@@ -62,7 +62,7 @@
@UseLocalDisk
@TestPlugin(
name = "pull-replication",
- sysModule = "com.googlesource.gerrit.plugins.replication.pull.PullReplicationModule",
+ sysModule = "com.googlesource.gerrit.plugins.replication.pull.TestPullReplicationModule",
httpModule = "com.googlesource.gerrit.plugins.replication.pull.api.HttpModule")
public abstract class ActionITBase extends LightweightPluginDaemonTest {
protected static final Optional<String> ALL_PROJECTS = Optional.empty();
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClientBase.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClientBase.java
index b061de0..087920b 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClientBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClientBase.java
@@ -28,7 +28,7 @@
import com.google.gerrit.entities.Project;
import com.google.gerrit.entities.RefNames;
import com.googlesource.gerrit.plugins.replication.CredentialsFactory;
-import com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfig;
import com.googlesource.gerrit.plugins.replication.pull.BearerTokenProvider;
import com.googlesource.gerrit.plugins.replication.pull.Source;
import com.googlesource.gerrit.plugins.replication.pull.api.data.BatchApplyObjectData;
@@ -67,7 +67,7 @@
@Mock HttpClient httpClient;
@Mock SourceHttpClient.Factory httpClientFactory;
@Mock FileBasedConfig config;
- @Mock ReplicationFileBasedConfig replicationConfig;
+ @Mock ReplicationConfig replicationConfig;
@Mock Source source;
@Mock BearerTokenProvider bearerTokenProvider;
@Captor ArgumentCaptor<HttpPost> httpPostCaptor;
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/fetch/ApplyObjectIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/fetch/ApplyObjectIT.java
index b562933..0a01e21 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/fetch/ApplyObjectIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/fetch/ApplyObjectIT.java
@@ -36,10 +36,14 @@
import com.google.gerrit.extensions.api.changes.ReviewInput.CommentInput;
import com.google.gerrit.extensions.client.Comment;
import com.google.gerrit.extensions.config.FactoryModule;
+import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.inject.Inject;
import com.google.inject.Scopes;
+import com.googlesource.gerrit.plugins.replication.ConfigResource;
+import com.googlesource.gerrit.plugins.replication.FileConfigResource;
import com.googlesource.gerrit.plugins.replication.ReplicationConfig;
-import com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigImpl;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfigOverrides;
import com.googlesource.gerrit.plugins.replication.pull.RevisionReader;
import com.googlesource.gerrit.plugins.replication.pull.api.data.RevisionData;
import com.googlesource.gerrit.plugins.replication.pull.api.data.RevisionObjectData;
@@ -256,7 +260,9 @@
private static class TestModule extends FactoryModule {
@Override
protected void configure() {
- bind(ReplicationConfig.class).to(ReplicationFileBasedConfig.class);
+ DynamicItem.itemOf(binder(), ReplicationConfigOverrides.class);
+ bind(ConfigResource.class).to(FileConfigResource.class);
+ bind(ReplicationConfig.class).to(ReplicationConfigImpl.class);
bind(RevisionReader.class).in(Scopes.SINGLETON);
bind(ApplyObject.class);
}