MergeOp: Use factories of the subscription components
After this, submoduleOp is not the instantiator of all this classes and
can focus on what it does: updating superprojects.
Change-Id: Ie5d1b547fc3815356591c4ccefa9944ec0867559
diff --git a/java/com/google/gerrit/server/submit/MergeOp.java b/java/com/google/gerrit/server/submit/MergeOp.java
index 354bd49..b304dd0 100644
--- a/java/com/google/gerrit/server/submit/MergeOp.java
+++ b/java/com/google/gerrit/server/submit/MergeOp.java
@@ -226,7 +226,9 @@
private final MergeValidators.Factory mergeValidatorsFactory;
private final Provider<InternalChangeQuery> queryProvider;
private final SubmitStrategyFactory submitStrategyFactory;
+ private final SubscriptionGraph.Factory subscriptionGraphFactory;
private final SubmoduleOp.Factory subOpFactory;
+ private final SubmoduleCommits.Factory submoduleCommitsFactory;
private final Provider<MergeOpRepoManager> ormProvider;
private final NotifyResolver notifyResolver;
private final RetryHelper retryHelper;
@@ -256,6 +258,8 @@
MergeValidators.Factory mergeValidatorsFactory,
Provider<InternalChangeQuery> queryProvider,
SubmitStrategyFactory submitStrategyFactory,
+ SubmoduleCommits.Factory submoduleCommitsFactory,
+ SubscriptionGraph.Factory subscriptionGraphFactory,
SubmoduleOp.Factory subOpFactory,
Provider<MergeOpRepoManager> ormProvider,
NotifyResolver notifyResolver,
@@ -269,6 +273,8 @@
this.mergeValidatorsFactory = mergeValidatorsFactory;
this.queryProvider = queryProvider;
this.submitStrategyFactory = submitStrategyFactory;
+ this.submoduleCommitsFactory = submoduleCommitsFactory;
+ this.subscriptionGraphFactory = subscriptionGraphFactory;
this.subOpFactory = subOpFactory;
this.ormProvider = ormProvider;
this.notifyResolver = notifyResolver;
@@ -605,10 +611,9 @@
commitStatus.maybeFailVerbose();
try {
- SubmoduleOp submoduleOp = subOpFactory.create(branches, orm);
- UpdateOrderCalculator updateOrderCalculator = submoduleOp.getUpdateOrderCalculator();
- SubscriptionGraph subscriptionGraph = submoduleOp.getSubscriptionGraph();
- SubmoduleCommits submoduleCommits = submoduleOp.getSubmoduleCommits();
+ SubscriptionGraph subscriptionGraph = subscriptionGraphFactory.compute(branches, orm);
+ SubmoduleCommits submoduleCommits = submoduleCommitsFactory.create(orm);
+ UpdateOrderCalculator updateOrderCalculator = new UpdateOrderCalculator(subscriptionGraph);
List<SubmitStrategy> strategies =
getSubmitStrategies(
toSubmit, updateOrderCalculator, submoduleCommits, subscriptionGraph, dryrun);
diff --git a/java/com/google/gerrit/server/submit/SubmoduleOp.java b/java/com/google/gerrit/server/submit/SubmoduleOp.java
index 94a432a..8bfcd51 100644
--- a/java/com/google/gerrit/server/submit/SubmoduleOp.java
+++ b/java/com/google/gerrit/server/submit/SubmoduleOp.java
@@ -70,20 +70,6 @@
this.updateOrderCalculator = new UpdateOrderCalculator(subscriptionGraph);
}
- // TODO(ifrade): subscription graph should be instantiated somewhere else and passed to
- // SubmoduleOp
- SubscriptionGraph getSubscriptionGraph() {
- return subscriptionGraph;
- }
-
- SubmoduleCommits getSubmoduleCommits() {
- return submoduleCommits;
- }
-
- UpdateOrderCalculator getUpdateOrderCalculator() {
- return updateOrderCalculator;
- }
-
@UsedAt(UsedAt.Project.PLUGIN_DELETE_PROJECT)
public boolean hasSuperproject(BranchNameKey branch) {
return subscriptionGraph.hasSuperproject(branch);