Make MergeSuperSet not a singleton
The plan is to add per-instance caching to improve performance. Change-Id: I5f086adf4cc24eb2075091641d24f751d8f816be
This commit is contained in:
@@ -30,6 +30,7 @@ import com.google.gerrit.server.query.change.ChangeData;
|
||||
import com.google.gerrit.testutil.ConfigSuite;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
|
||||
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
|
||||
import org.eclipse.jgit.errors.MissingObjectException;
|
||||
@@ -47,7 +48,7 @@ import java.util.List;
|
||||
@NoHttpd
|
||||
public class SubmitResolvingMergeCommitIT extends AbstractDaemonTest {
|
||||
@Inject
|
||||
private MergeSuperSet mergeSuperSet;
|
||||
private Provider<MergeSuperSet> mergeSuperSet;
|
||||
|
||||
@Inject
|
||||
private Submit submit;
|
||||
@@ -293,7 +294,7 @@ public class SubmitResolvingMergeCommitIT extends AbstractDaemonTest {
|
||||
throws MissingObjectException, IncorrectObjectTypeException, IOException,
|
||||
OrmException {
|
||||
ChangeSet cs =
|
||||
mergeSuperSet.completeChangeSet(db, change.change(), user(admin));
|
||||
mergeSuperSet.get().completeChangeSet(db, change.change(), user(admin));
|
||||
assertThat(submit.unmergeableChanges(cs).isEmpty()).isEqualTo(expected);
|
||||
}
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ public class Submit implements RestModifyView<RevisionResource, SubmitInput>,
|
||||
private final ChangeMessagesUtil cmUtil;
|
||||
private final ChangeNotes.Factory changeNotesFactory;
|
||||
private final Provider<MergeOp> mergeOpProvider;
|
||||
private final MergeSuperSet mergeSuperSet;
|
||||
private final Provider<MergeSuperSet> mergeSuperSet;
|
||||
private final AccountsCollection accounts;
|
||||
private final ChangesCollection changes;
|
||||
private final String label;
|
||||
@@ -154,7 +154,7 @@ public class Submit implements RestModifyView<RevisionResource, SubmitInput>,
|
||||
ChangeMessagesUtil cmUtil,
|
||||
ChangeNotes.Factory changeNotesFactory,
|
||||
Provider<MergeOp> mergeOpProvider,
|
||||
MergeSuperSet mergeSuperSet,
|
||||
Provider<MergeSuperSet> mergeSuperSet,
|
||||
AccountsCollection accounts,
|
||||
ChangesCollection changes,
|
||||
@GerritServerConfig Config cfg,
|
||||
@@ -345,7 +345,7 @@ public class Submit implements RestModifyView<RevisionResource, SubmitInput>,
|
||||
|
||||
ChangeSet cs;
|
||||
try {
|
||||
cs = mergeSuperSet.completeChangeSet(
|
||||
cs = mergeSuperSet.get().completeChangeSet(
|
||||
db, cd.change(), resource.getControl().getUser());
|
||||
} catch (OrmException | IOException e) {
|
||||
throw new OrmRuntimeException("Could not determine complete set of " +
|
||||
|
||||
@@ -54,7 +54,7 @@ public class SubmittedTogether implements RestReadView<ChangeResource> {
|
||||
private final ChangeJson.Factory json;
|
||||
private final Provider<ReviewDb> dbProvider;
|
||||
private final Provider<InternalChangeQuery> queryProvider;
|
||||
private final MergeSuperSet mergeSuperSet;
|
||||
private final Provider<MergeSuperSet> mergeSuperSet;
|
||||
private final Provider<WalkSorter> sorter;
|
||||
|
||||
@Option(name = "-o", usage = "Output options")
|
||||
@@ -66,7 +66,7 @@ public class SubmittedTogether implements RestReadView<ChangeResource> {
|
||||
SubmittedTogether(ChangeJson.Factory json,
|
||||
Provider<ReviewDb> dbProvider,
|
||||
Provider<InternalChangeQuery> queryProvider,
|
||||
MergeSuperSet mergeSuperSet,
|
||||
Provider<MergeSuperSet> mergeSuperSet,
|
||||
Provider<WalkSorter> sorter) {
|
||||
this.json = json;
|
||||
this.dbProvider = dbProvider;
|
||||
@@ -96,7 +96,7 @@ public class SubmittedTogether implements RestReadView<ChangeResource> {
|
||||
|
||||
if (c.getStatus().isOpen()) {
|
||||
ChangeSet cs =
|
||||
mergeSuperSet.completeChangeSet(
|
||||
mergeSuperSet.get().completeChangeSet(
|
||||
dbProvider.get(), c, resource.getControl().getUser());
|
||||
cds = cs.changes().asList();
|
||||
hidden = cs.nonVisibleChanges().size();
|
||||
|
||||
@@ -39,7 +39,6 @@ import com.google.gerrit.server.query.change.InternalChangeQuery;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
import com.google.inject.Singleton;
|
||||
|
||||
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
|
||||
import org.eclipse.jgit.errors.MissingObjectException;
|
||||
@@ -69,7 +68,6 @@ import java.util.Set;
|
||||
* If change.submitWholeTopic is enabled, also all changes of the topic
|
||||
* and their parents are included.
|
||||
*/
|
||||
@Singleton
|
||||
public class MergeSuperSet {
|
||||
private static final Logger log = LoggerFactory.getLogger(MergeOp.class);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user