diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2023-06-07 12:30:33 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-06-20 13:10:18 +0000 |
commit | 667618747b9e64f552eda5fc24df8398ca7afbef (patch) | |
tree | 642f7d84c3888e4081daff283acbbfe07116aff7 /server/sonar-ce/src/main/java/org | |
parent | 93734208da4519e1872e80c59f7edd1612dac5da (diff) | |
download | sonarqube-667618747b9e64f552eda5fc24df8398ca7afbef.tar.gz sonarqube-667618747b9e64f552eda5fc24df8398ca7afbef.zip |
SONAR-19556 Refactor use of DB columns referencing projects or branches for Entities
Diffstat (limited to 'server/sonar-ce/src/main/java/org')
4 files changed, 8 insertions, 14 deletions
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java index 8c9335249e1..aba8eb7378b 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java @@ -77,7 +77,7 @@ public class CEQueueStatusImpl implements CEQueueStatus { @Override public Optional<Long> getLongestTimePending() { try (DbSession dbSession = dbClient.openSession(false)) { - return dbClient.ceQueueDao().selectCreationDateOfOldestPendingByMainComponentUuid(dbSession, null) + return dbClient.ceQueueDao().selectCreationDateOfOldestPendingByEntityUuid(dbSession, null) .map(creationDate -> system.now() - creationDate); } } diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java index 51092ed94cc..5e42f5f2f10 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java @@ -29,7 +29,6 @@ import java.util.Optional; import java.util.Set; import javax.annotation.CheckForNull; import javax.annotation.Nullable; - import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.utils.System2; import org.slf4j.Logger; @@ -46,14 +45,12 @@ import org.sonar.db.DbSession; import org.sonar.db.ce.CeActivityDto; import org.sonar.db.ce.CeQueueDto; import org.sonar.db.ce.CeTaskCharacteristicDto; -import org.sonar.db.component.ComponentDto; import org.sonar.server.platform.NodeInformation; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.util.Collections.singletonList; import static java.util.Objects.requireNonNull; -import static java.util.Optional.ofNullable; import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex; @ComputeEngineSide @@ -88,13 +85,10 @@ public class InternalCeQueueImpl extends CeQueueImpl implements InternalCeQueue return Optional.empty(); } CeQueueDto taskDto = opt.get(); - Map<String, ComponentDto> componentsByUuid = loadComponentDtos(dbSession, taskDto); Map<String, String> characteristics = dbClient.ceTaskCharacteristicsDao().selectByTaskUuids(dbSession, singletonList(taskDto.getUuid())).stream() .collect(uniqueIndex(CeTaskCharacteristicDto::getKey, CeTaskCharacteristicDto::getValue)); - CeTask task = convertToTask(dbSession, taskDto, characteristics, - ofNullable(taskDto.getComponentUuid()).map(componentsByUuid::get).orElse(null), - ofNullable(taskDto.getMainComponentUuid()).map(componentsByUuid::get).orElse(null)); + CeTask task = convertToTask(dbSession, taskDto, characteristics); queueStatus.addInProgress(); return Optional.of(task); } diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/queue/NextPendingTaskPicker.java b/server/sonar-ce/src/main/java/org/sonar/ce/queue/NextPendingTaskPicker.java index 897267552ee..4de52967eb5 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/queue/NextPendingTaskPicker.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/queue/NextPendingTaskPicker.java @@ -108,8 +108,8 @@ public class NextPendingTaskPicker { } private static List<PrOrBranchTask> filterOldestPerProject(List<PrOrBranchTask> queuedPrOrBranches) { - Set<String> mainComponentUuidsSeen = new HashSet<>(); - return queuedPrOrBranches.stream().filter(t -> mainComponentUuidsSeen.add(t.getMainComponentUuid())).toList(); + Set<String> entityUuidsSeen = new HashSet<>(); + return queuedPrOrBranches.stream().filter(t -> entityUuidsSeen.add(t.getEntityUuid())).toList(); } /** @@ -120,9 +120,9 @@ public class NextPendingTaskPicker { * This method returns the longest waiting branch in the queue which can be scheduled concurrently with pull requests. */ private static boolean canRunBranch(PrOrBranchTask task, List<PrOrBranchTask> inProgress) { - String mainComponentUuid = task.getMainComponentUuid(); + String entityUuid = task.getEntityUuid(); List<PrOrBranchTask> sameComponentTasks = inProgress.stream() - .filter(t -> t.getMainComponentUuid().equals(mainComponentUuid)) + .filter(t -> t.getEntityUuid().equals(entityUuid)) .toList(); //we can peek branch analysis task only if all the other in progress tasks for this component uuid are pull requests return sameComponentTasks.stream().map(PrOrBranchTask::getBranchType).allMatch(s -> Objects.equals(s, PULL_REQUEST)); @@ -135,7 +135,7 @@ public class NextPendingTaskPicker { private static boolean canRunPr(PrOrBranchTask task, List<PrOrBranchTask> inProgress) { // return true unless the same PR is already in progress return inProgress.stream() - .noneMatch(pr -> pr.getMainComponentUuid().equals(task.getMainComponentUuid()) && Objects.equals(pr.getBranchType(), PULL_REQUEST) && + .noneMatch(pr -> pr.getEntityUuid().equals(task.getEntityUuid()) && Objects.equals(pr.getBranchType(), PULL_REQUEST) && Objects.equals(pr.getComponentUuid(), (task.getComponentUuid()))); } } diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java index a5f5d0e728d..c396d637496 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java @@ -270,7 +270,7 @@ public class CeWorkerImpl implements CeWorker { private static Profiler startLogProfiler(CeTask task) { Profiler profiler = Profiler.create(LOG) .logTimeLast(true) - .addContext("project", task.getMainComponent().flatMap(CeTask.Component::getKey).orElse(null)) + .addContext("project", task.getEntity().flatMap(CeTask.Component::getKey).orElse(null)) .addContext("type", task.getType()); for (Map.Entry<String, String> characteristic : task.getCharacteristics().entrySet()) { profiler.addContext(characteristic.getKey(), characteristic.getValue()); |