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
	 Dave Borowitz
					Dave Borowitz