diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2019-04-03 11:38:14 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2019-04-23 20:21:08 +0200 |
commit | 2a87f9a8efb518b1a5b6fa611bb0a694503c559c (patch) | |
tree | a7ba90e98fe1c8364fdf030f9b6f31514386dc36 | |
parent | bec219de08fb555f4472865f7041746de612f5f5 (diff) | |
download | sonarqube-2a87f9a8efb518b1a5b6fa611bb0a694503c559c.tar.gz sonarqube-2a87f9a8efb518b1a5b6fa611bb0a694503c559c.zip |
SONAR-11858 Fix quality issues
6 files changed, 48 insertions, 99 deletions
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/IssueLifecycle.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/IssueLifecycle.java index 55c4305918f..89dd50d97e1 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/IssueLifecycle.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/IssueLifecycle.java @@ -25,21 +25,21 @@ import java.util.Date; import java.util.Optional; import org.sonar.api.issue.Issue; import org.sonar.api.rules.RuleType; +import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder; import org.sonar.core.issue.DefaultIssue; import org.sonar.core.issue.DefaultIssueComment; import org.sonar.core.issue.FieldDiffs; import org.sonar.core.issue.IssueChangeContext; import org.sonar.core.util.Uuids; -import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder; import org.sonar.server.issue.IssueFieldsSetter; import org.sonar.server.issue.workflow.IssueWorkflow; /** * Sets the appropriate fields when an issue is : * <ul> - * <li>newly created</li> - * <li>merged the related base issue</li> - * <li>relocated (only manual issues)</li> + * <li>newly created</li> + * <li>merged the related base issue</li> + * <li>relocated (only manual issues)</li> * </ul> */ public class IssueLifecycle { @@ -94,7 +94,8 @@ public class IssueLifecycle { public void mergeConfirmedOrResolvedFromShortLivingBranch(DefaultIssue raw, DefaultIssue base, String fromShortBranchName) { copyAttributesOfIssueFromOtherBranch(raw, base); - raw.setFieldChange(changeContext, IssueFieldsSetter.FROM_SHORT_BRANCH, fromShortBranchName, analysisMetadataHolder.isPullRequest() ? analysisMetadataHolder.getPullRequestKey() : analysisMetadataHolder.getBranch().getName()); + raw.setFieldChange(changeContext, IssueFieldsSetter.FROM_SHORT_BRANCH, fromShortBranchName, + analysisMetadataHolder.isPullRequest() ? analysisMetadataHolder.getPullRequestKey() : analysisMetadataHolder.getBranch().getName()); } private void copyAttributesOfIssueFromOtherBranch(DefaultIssue to, DefaultIssue from) { diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchPersisterImplTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchPersisterImplTest.java index cb4764c1b7b..fb4e6a51e92 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchPersisterImplTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchPersisterImplTest.java @@ -62,7 +62,7 @@ public class BranchPersisterImplTest { @Rule public ExpectedException exception = ExpectedException.none(); - BranchPersister underTest = new BranchPersisterImpl(dbTester.getDbClient(), treeRootHolder, analysisMetadataHolder); + private BranchPersister underTest = new BranchPersisterImpl(dbTester.getDbClient(), treeRootHolder, analysisMetadataHolder); @Test public void persist_fails_with_ISE_if_no_component_for_main_branches() { diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java index 2d219d0825c..c2b3b13c679 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadPeriodsStepTest.java @@ -63,6 +63,7 @@ import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -139,7 +140,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); String textDate = "2008-11-22"; settings.setProperty("sonar.leak.period", textDate); @@ -161,7 +162,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "100"); underTest.execute(new TestComputationStepContext()); @@ -182,7 +183,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); String textDate = "2008-11-22"; settings.setProperty("sonar.leak.period", textDate); @@ -209,7 +210,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { dbTester.commit(); when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(branch)); + setBranchOf(branch); setupRoot(branch); String textDate = "2008-11-22"; @@ -243,8 +244,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); - Branch branch = mockBranch(BranchType.LONG); - when(analysisMetadataHolder.getBranch()).thenReturn(branch); + setMetadataBranch(BranchType.LONG); setupRoot(project); settings.setProperty("sonar.leak.period", leakPeriodSettingValue); @@ -257,7 +257,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { OrganizationDto organization = dbTester.organizations().insert(); ComponentDto project = dbTester.components().insertMainBranch(organization); dbTester.components().setManualBaseline(project, new SnapshotDto().setUuid("nonexistent")); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); + setBranchOf(project); setupRoot(project); expectedException.expect(IllegalStateException.class); @@ -275,7 +275,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { ComponentDto otherProject = dbTester.components().insertMainBranch(organization); SnapshotDto otherProjectAnalysis = dbTester.components().insertSnapshot(otherProject); dbTester.components().setManualBaseline(project, otherProjectAnalysis); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); + setBranchOf(project); setupRoot(project); expectedException.expect(IllegalStateException.class); @@ -299,7 +299,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); dbTester.components().setManualBaseline(project, manualBaselineAnalysis); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); + setBranchOf(project); setupRoot(project); settings.setProperty("sonar.leak.period", leakPeriodSettingValue); @@ -324,7 +324,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); dbTester.components().setManualBaseline(branch, manualBaselineAnalysis); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(branch)); + setBranchOf(branch); setupRoot(branch); settings.setProperty("sonar.leak.period", leakPeriodSettingValue); @@ -355,7 +355,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { ComponentDto project = dbTester.components().insertMainBranch(organization); SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project); dbTester.components().setManualBaseline(project, manualBaselineAnalysis); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); + setBranchOf(project); setupRoot(project); settings.setProperty("sonar.leak.period", "ignored"); @@ -371,7 +371,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { ComponentDto project = dbTester.components().insertMainBranch(organization); SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(version).setProjectVersion(version)); dbTester.components().setManualBaseline(project, manualBaselineAnalysis); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); + setBranchOf(project); setupRoot(project); settings.setProperty("sonar.leak.period", "ignored"); @@ -387,7 +387,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { ComponentDto project = dbTester.components().insertMainBranch(organization); SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(projectVersion)); dbTester.components().setManualBaseline(project, manualBaselineAnalysis); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); + setBranchOf(project); setupRoot(project); settings.setProperty("sonar.leak.period", "ignored"); @@ -405,7 +405,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(projectVersion)); dbTester.events().insertEvent(EventTesting.newEvent(manualBaselineAnalysis).setCategory(CATEGORY_VERSION).setName(eventVersion)); dbTester.components().setManualBaseline(project, manualBaselineAnalysis); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); + setBranchOf(project); setupRoot(project); settings.setProperty("sonar.leak.period", "ignored"); @@ -422,60 +422,18 @@ public class LoadPeriodsStepTest extends BaseStepTest { }; } - private Branch branchOf(ComponentDto project) { + private Branch setBranchOf(ComponentDto project) { BranchDto branchDto = dbTester.getDbClient().branchDao().selectByUuid(dbTester.getSession(), project.uuid()).get(); - return new Branch() { - @Override - public BranchType getType() { - return branchDto.getBranchType(); - } - - @Override - public boolean isMain() { - throw new UnsupportedOperationException("isMain not implemented"); - } - - @Override - public boolean isLegacyFeature() { - throw new UnsupportedOperationException("isLegacyFeature not implemented"); - } - - @Override - public String getName() { - throw new UnsupportedOperationException("getName not implemented"); - } - - @Override - public String getMergeBranchUuid() { - throw new UnsupportedOperationException("getMergeBranchUuid not implemented"); - } - - @Override - public boolean supportsCrossProjectCpd() { - throw new UnsupportedOperationException("supportsCrossProjectCpd not implemented"); - } - - @Override - public String getPullRequestKey() { - throw new UnsupportedOperationException("getPullRequestKey not implemented"); - } - - @Override - public String getTargetBranchName() { - throw new UnsupportedOperationException(); - } - - @Override - public String generateKey(String projectKey, @Nullable String fileOrDirPath) { - throw new UnsupportedOperationException("generateKey not implemented"); - } - }; + return setMetadataBranch(branchDto.getBranchType()); } - private Branch mockBranch(BranchType branchType) { - Branch mock = mock(Branch.class); - when(mock.getType()).thenReturn(branchType); - return mock; + private Branch setMetadataBranch(BranchType branchType) { + Branch branch = mock(Branch.class, invoc -> { + throw new UnsupportedOperationException(); + }); + doReturn(branchType).when(branch).getType(); + when(analysisMetadataHolder.getBranch()).thenReturn(branch); + return branch; } @Test @@ -490,7 +448,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); String date = "2008-11-13"; settings.setProperty("sonar.leak.period", date); @@ -509,7 +467,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); String propertyValue = "2008-12-01"; settings.setProperty("sonar.leak.period", propertyValue); @@ -525,7 +483,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); String propertyValue = "2008-11-31"; settings.setProperty("sonar.leak.period", propertyValue); @@ -541,7 +499,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); String propertyValue = "2008-11-30"; settings.setProperty("sonar.leak.period", propertyValue); @@ -558,7 +516,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); String propertyValue = String.valueOf(zeroOrLess); settings.setProperty("sonar.leak.period", propertyValue); @@ -581,7 +539,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "previous_version"); expectedException.expect(IllegalStateException.class); @@ -606,7 +564,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", propertyValue); try { @@ -680,7 +638,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "10"); underTest.execute(new TestComputationStepContext()); @@ -709,7 +667,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project, "1.1"); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "previous_version"); underTest.execute(new TestComputationStepContext()); @@ -733,7 +691,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project, "1.1"); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "previous_version"); underTest.execute(new TestComputationStepContext()); @@ -752,7 +710,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project, "1.1"); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "previous_version"); underTest.execute(new TestComputationStepContext()); @@ -771,7 +729,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project, "1.1"); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "previous_version"); underTest.execute(new TestComputationStepContext()); @@ -795,7 +753,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project, "1.1"); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "1.0"); underTest.execute(new TestComputationStepContext()); @@ -817,7 +775,7 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); setupRoot(project, "0.9"); - setupBranchWithNoManualBaseline(analysisMetadataHolder, project); + setupBranchWithNoManualBaseline(project); settings.setProperty("sonar.leak.period", "0.9"); underTest.execute(new TestComputationStepContext()); @@ -863,9 +821,9 @@ public class LoadPeriodsStepTest extends BaseStepTest { when(configurationRepository.getConfiguration()).thenReturn(settings.asConfig()); } - private void setupBranchWithNoManualBaseline(AnalysisMetadataHolder analysisMetadataHolder, ComponentDto projectOrLongBranch) { + private void setupBranchWithNoManualBaseline(ComponentDto projectOrLongBranch) { dbTester.components().unsetManualBaseline(projectOrLongBranch); - when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(projectOrLongBranch)); + setBranchOf(projectOrLongBranch); } private static void verifyInvalidValueMessage(MessageException e, String propertyValue) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/branch/pr/ws/ListAction.java b/server/sonar-server/src/main/java/org/sonar/server/branch/pr/ws/ListAction.java index 4ee21954cdb..109e3f780f9 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/branch/pr/ws/ListAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/branch/pr/ws/ListAction.java @@ -108,6 +108,7 @@ public class ListAction implements PullRequestWsAction { Map<String, BranchDto> mergeBranchesByUuid = dbClient.branchDao() .selectByUuids(dbSession, pullRequests.stream().map(BranchDto::getMergeBranchUuid).filter(Objects::nonNull).collect(toList())) .stream().collect(uniqueIndex(BranchDto::getUuid)); + Map<String, BranchStatistics> branchStatisticsByBranchUuid = issueIndex.searchBranchStatistics(project.uuid(), pullRequestUuids).stream() .collect(uniqueIndex(BranchStatistics::getBranchUuid, Function.identity())); Map<String, LiveMeasureDto> qualityGateMeasuresByComponentUuids = dbClient.liveMeasureDao() diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java index 53473607f24..8e53bab6487 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/AbstractTracker.java @@ -56,17 +56,6 @@ public class AbstractTracker<RAW extends Trackable, BASE extends Trackable> { }); } - private int statusRank(BASE i) { - switch (i.getStatus()) { - case Issue.STATUS_RESOLVED: - return 2; - case Issue.STATUS_CONFIRMED: - return 1; - default: - return 0; - } - } - protected interface SearchKey { } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/StatusPredicate.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/StatusPredicate.java index d6c17571fac..7aaaf4cba56 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/StatusPredicate.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/StatusPredicate.java @@ -22,10 +22,10 @@ package org.sonar.api.batch.fs.internal; import javax.annotation.Nullable; import org.sonar.api.batch.fs.InputFile; -@Deprecated /** * @deprecated since 7.8 */ +@Deprecated public class StatusPredicate extends AbstractFilePredicate { private final InputFile.Status status; |