diff options
46 files changed, 180 insertions, 91 deletions
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/BranchLoader.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/BranchLoader.java index 3eb24b243ac..b0e79f88490 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/BranchLoader.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/BranchLoader.java @@ -19,13 +19,14 @@ */ package org.sonar.ce.task.projectanalysis.component; +import javax.annotation.Nullable; +import javax.inject.Inject; import org.sonar.api.utils.MessageException; import org.sonar.ce.task.projectanalysis.analysis.MutableAnalysisMetadataHolder; import org.sonar.scanner.protocol.output.ScannerReport; -import static org.sonar.scanner.protocol.output.ScannerReport.Metadata.BranchType.UNSET; -import javax.annotation.Nullable; -import javax.inject.Inject; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; +import static org.sonar.scanner.protocol.output.ScannerReport.Metadata.BranchType.UNSET; public class BranchLoader { private final MutableAnalysisMetadataHolder metadataHolder; @@ -47,7 +48,7 @@ public class BranchLoader { } else if (hasBranchProperties(metadata)) { throw MessageException.of("Current edition does not support branch feature"); } else { - metadataHolder.setBranch(new DefaultBranchImpl()); + metadataHolder.setBranch(new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME)); } } diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImpl.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImpl.java index b7d3c0d5808..67f12196ef0 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImpl.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImpl.java @@ -20,7 +20,6 @@ package org.sonar.ce.task.projectanalysis.component; import org.sonar.ce.task.projectanalysis.analysis.Branch; -import org.sonar.db.component.BranchDto; import org.sonar.db.component.BranchType; /** @@ -30,8 +29,8 @@ import org.sonar.db.component.BranchType; public class DefaultBranchImpl implements Branch { private final String branchName; - public DefaultBranchImpl() { - this.branchName = BranchDto.DEFAULT_MAIN_BRANCH_NAME; + public DefaultBranchImpl(String branch) { + this.branchName = branch; } @Override diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImplTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImplTest.java index 0016009a0b3..6362ab8ca68 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImplTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/analysis/AnalysisMetadataHolderImplTest.java @@ -38,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.sonar.core.platform.EditionProvider.Edition; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; @RunWith(DataProviderRunner.class) @@ -210,9 +211,9 @@ public class AnalysisMetadataHolderImplTest { public void set_branch() { AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl(editionProvider); - underTest.setBranch(new DefaultBranchImpl()); + underTest.setBranch(new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME)); - assertThat(underTest.getBranch().getName()).isEqualTo("master"); + assertThat(underTest.getBranch().getName()).isEqualTo("main"); } @Test @@ -225,9 +226,9 @@ public class AnalysisMetadataHolderImplTest { @Test public void setBranch_throws_ISE_when_called_twice() { AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl(editionProvider); - underTest.setBranch(new DefaultBranchImpl()); + underTest.setBranch(new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME)); - assertThatThrownBy(() -> underTest.setBranch(new DefaultBranchImpl())) + assertThatThrownBy(() -> underTest.setBranch(new DefaultBranchImpl("main"))) .isInstanceOf(IllegalStateException.class) .hasMessage("Branch has already been set"); } diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchLoaderTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchLoaderTest.java index 1ef830545c3..fd0787729ac 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchLoaderTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/BranchLoaderTest.java @@ -60,7 +60,7 @@ public class BranchLoaderTest { Branch branch = metadataHolder.getBranch(); assertThat(branch.isMain()).isTrue(); - assertThat(branch.getName()).isEqualTo(BranchDto.DEFAULT_MAIN_BRANCH_NAME); + assertThat(branch.getName()).isEqualTo(BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME); } @Test diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentUuidFactoryWithMigrationTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentUuidFactoryWithMigrationTest.java index 7f3839bab0f..c2ff3c08ab7 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentUuidFactoryWithMigrationTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/ComponentUuidFactoryWithMigrationTest.java @@ -32,9 +32,10 @@ import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; import static org.assertj.core.api.Assertions.assertThat; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; public class ComponentUuidFactoryWithMigrationTest { - private final Branch mainBranch = new DefaultBranchImpl(); + private final Branch mainBranch = new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME); @Rule public DbTester db = DbTester.create(System2.INSTANCE); private Function<String, String> pathToKey = path -> path != null ? "project:" + path : "project"; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImplTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImplTest.java index b8182111459..e8bfcd84658 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImplTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/component/DefaultBranchImplTest.java @@ -20,12 +20,12 @@ package org.sonar.ce.task.projectanalysis.component; import org.junit.Test; -import org.sonar.db.component.BranchDto; import org.sonar.db.component.BranchType; import org.sonar.scanner.protocol.output.ScannerReport; import org.sonar.scanner.protocol.output.ScannerReport.Component.ComponentType; import static org.assertj.core.api.Assertions.assertThat; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; public class DefaultBranchImplTest { private static final String PROJECT_KEY = "P"; @@ -34,11 +34,11 @@ public class DefaultBranchImplTest { @Test public void default_branch_represents_the_project() { - DefaultBranchImpl branch = new DefaultBranchImpl(); + DefaultBranchImpl branch = new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME); assertThat(branch.isMain()).isTrue(); assertThat(branch.getType()).isEqualTo(BranchType.BRANCH); - assertThat(branch.getName()).isEqualTo(BranchDto.DEFAULT_MAIN_BRANCH_NAME); + assertThat(branch.getName()).isEqualTo(DEFAULT_PROJECT_MAIN_BRANCH_NAME); assertThat(branch.supportsCrossProjectCpd()).isTrue(); assertThat(branch.generateKey(PROJECT_KEY, null)).isEqualTo("P"); diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStepTest.java index b94d867192d..00ab641116e 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/BuildComponentTreeStepTest.java @@ -56,6 +56,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentTesting.newDirectory; import static org.sonar.db.component.ComponentTesting.newFileDto; import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; @@ -558,7 +559,7 @@ public class BuildComponentTreeStepTest { } private void setAnalysisMetadataHolder(boolean isPr) { - Branch branch = isPr ? new PrBranch() : new DefaultBranchImpl(); + Branch branch = isPr ? new PrBranch(DEFAULT_PROJECT_MAIN_BRANCH_NAME) : new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME); analysisMetadataHolder.setRootComponentRef(ROOT_REF) .setAnalysisDate(ANALYSIS_DATE) .setBranch(branch) @@ -575,6 +576,10 @@ public class BuildComponentTreeStepTest { } private static class PrBranch extends DefaultBranchImpl { + public PrBranch(String branch) { + super(branch); + } + @Override public BranchType getType() { return BranchType.PULL_REQUEST; diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStepTest.java index 0ae78766c07..8b7bee5e225 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/QualityGateEventsStepTest.java @@ -59,6 +59,7 @@ import static org.mockito.Mockito.when; import static org.sonar.api.measures.CoreMetrics.ALERT_STATUS_KEY; import static org.sonar.ce.task.projectanalysis.measure.Measure.Level.ERROR; import static org.sonar.ce.task.projectanalysis.measure.Measure.Level.OK; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; public class QualityGateEventsStepTest { private static final String PROJECT_VERSION = randomAlphabetic(19); @@ -250,7 +251,7 @@ public class QualityGateEventsStepTest { @Test public void verify_branch_name_is_not_set_in_notification_when_main() { - analysisMetadataHolder.setBranch(new DefaultBranchImpl()); + analysisMetadataHolder.setBranch(new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME)); when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)) .thenReturn(of(Measure.newMeasureBuilder().setQualityGateStatus(OK_QUALITY_GATE_STATUS).createNoValue())); diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java index ec94c781441..f725c5437b2 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ReportPersistComponentsStepTest.java @@ -43,10 +43,8 @@ import org.sonar.ce.task.step.ComputationStep; import org.sonar.ce.task.step.TestComputationStepContext; import org.sonar.db.DbClient; import org.sonar.db.DbTester; -import org.sonar.db.component.BranchDto; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; -import org.sonar.db.project.ProjectDto; import org.sonar.server.project.Project; import static org.assertj.core.api.Assertions.assertThat; @@ -57,6 +55,7 @@ import static org.sonar.ce.task.projectanalysis.component.Component.Type.DIRECTO import static org.sonar.ce.task.projectanalysis.component.Component.Type.FILE; import static org.sonar.ce.task.projectanalysis.component.Component.Type.PROJECT; import static org.sonar.ce.task.projectanalysis.component.ReportComponent.builder; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentDto.UUID_PATH_OF_ROOT; import static org.sonar.db.component.ComponentDto.UUID_PATH_SEPARATOR; import static org.sonar.db.component.ComponentTesting.newDirectory; @@ -623,7 +622,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest { private ComponentDto prepareProject(Consumer<ComponentDto> populators) { ComponentDto dto = db.components().insertPrivateProject(populators); analysisMetadataHolder.setProject(Project.from(dto)); - analysisMetadataHolder.setBranch(new DefaultBranchImpl()); + analysisMetadataHolder.setBranch(new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME)); return dto; } diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java index a0b7c98b26b..d3e15488558 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java @@ -98,6 +98,7 @@ import static org.sonar.api.rules.RuleType.SECURITY_HOTSPOT; import static org.sonar.ce.task.projectanalysis.component.Component.Type; import static org.sonar.ce.task.projectanalysis.component.ReportComponent.builder; import static org.sonar.ce.task.projectanalysis.step.SendIssueNotificationsStep.NOTIF_TYPES; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.BRANCH; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newBranchComponent; @@ -127,7 +128,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { .setRoot(PROJECT); @Rule public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule() - .setBranch(new DefaultBranchImpl()) + .setBranch(new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME)) .setAnalysisDate(new Date(ANALYSE_DATE)); @Rule public TemporaryFolder temp = new TemporaryFolder(); diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStepTest.java index fdc355dfe2a..a1eaf07b4c2 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ValidateProjectStepTest.java @@ -43,13 +43,14 @@ import org.sonar.db.component.SnapshotTesting; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; public class ValidateProjectStepTest { static long PAST_ANALYSIS_TIME = 1_420_088_400_000L; // 2015-01-01 static long DEFAULT_ANALYSIS_TIME = 1_433_131_200_000L; // 2015-06-01 static final String PROJECT_KEY = "PROJECT_KEY"; - static final Branch DEFAULT_BRANCH = new DefaultBranchImpl(); + static final Branch DEFAULT_BRANCH = new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME); @Rule public DbTester db = DbTester.create(System2.INSTANCE); diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java index 52e02ab9b0a..9690ef6f783 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java @@ -56,6 +56,7 @@ import static org.mockito.Mockito.when; import static org.sonar.ce.task.projectanalysis.component.ViewAttributes.Type.APPLICATION; import static org.sonar.ce.task.projectanalysis.component.ViewAttributes.Type.PORTFOLIO; import static org.sonar.ce.task.projectanalysis.component.ViewsComponent.builder; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; import static org.sonar.db.component.ComponentTesting.newProjectCopy; import static org.sonar.db.component.ComponentTesting.newSubPortfolio; @@ -96,7 +97,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest { now = DATE_FORMAT.parse("2015-06-02"); when(system2.now()).thenReturn(now.getTime()); - analysisMetadataHolder.setBranch(new DefaultBranchImpl()); + analysisMetadataHolder.setBranch(new DefaultBranchImpl(DEFAULT_PROJECT_MAIN_BRANCH_NAME)); BranchPersister branchPersister = mock(BranchPersister.class); ProjectPersister projectPersister = mock(ProjectPersister.class); underTest = new PersistComponentsStep(dbClient, treeRootHolder, system2, disabledComponentsHolder, analysisMetadataHolder, branchPersister, projectPersister); diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/branches/ExportBranchesStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/branches/ExportBranchesStepTest.java index ace1622934d..7e622600604 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/branches/ExportBranchesStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectexport/branches/ExportBranchesStepTest.java @@ -125,12 +125,12 @@ public class ExportBranchesStepTest { .stream() .collect(toMap(ProjectDump.Branch::getUuid, Function.identity())); assertThat(branches).hasSize(3); - ProjectDump.Branch masterBranch = branches.get(PROJECT_UUID); - assertThat(masterBranch).isNotNull(); - assertThat(masterBranch.getKee()).isEqualTo("master"); - assertThat(masterBranch.getProjectUuid()).isEqualTo(PROJECT_UUID); - assertThat(masterBranch.getMergeBranchUuid()).isEmpty(); - assertThat(masterBranch.getBranchType()).isEqualTo("BRANCH"); + ProjectDump.Branch mainBranch = branches.get(PROJECT_UUID); + assertThat(mainBranch).isNotNull(); + assertThat(mainBranch.getKee()).isEqualTo(BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME); + assertThat(mainBranch.getProjectUuid()).isEqualTo(PROJECT_UUID); + assertThat(mainBranch.getMergeBranchUuid()).isEmpty(); + assertThat(mainBranch.getBranchType()).isEqualTo("BRANCH"); ProjectDump.Branch branch1 = branches.get("branch-1-uuid"); assertThat(branch1.getKee()).isEqualTo("branch-1"); assertThat(branch1.getProjectUuid()).isEqualTo(PROJECT_UUID); diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java index 8e5708e2589..c6e84e7209c 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java @@ -130,6 +130,7 @@ import org.sonar.server.platform.serverid.JdbcUrlSanitizer; import org.sonar.server.platform.serverid.ServerIdChecksum; import org.sonar.server.plugins.InstalledPluginReferentialFactory; import org.sonar.server.plugins.ServerExtensionInstaller; +import org.sonar.server.project.DefaultBranchNameResolver; import org.sonar.server.property.InternalPropertiesImpl; import org.sonar.server.qualitygate.QualityGateEvaluatorImpl; import org.sonar.server.qualitygate.QualityGateFinder; @@ -443,6 +444,7 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer { InternalPropertiesImpl.class, ProjectConfigurationFactory.class, + DefaultBranchNameResolver.class, // webhooks new WebhookModule(), diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDto.java index 35d5e85fef7..e0eb96b5ba9 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/BranchDto.java @@ -30,7 +30,8 @@ import org.sonar.db.protobuf.DbProjectBranches; import static com.google.common.base.Preconditions.checkArgument; public class BranchDto { - public static final String DEFAULT_MAIN_BRANCH_NAME = "master"; + public static final String DEFAULT_PROJECT_MAIN_BRANCH_NAME = "main"; + public static final String DEFAULT_APPLICATION_MAIN_BRANCH_NAME = "master"; /** * Maximum length of column "kee" diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java index 80904430f7c..f9b8a6e6977 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java @@ -82,6 +82,7 @@ import static org.sonar.api.resources.Qualifiers.PROJECT; import static org.sonar.api.resources.Qualifiers.SUBVIEW; import static org.sonar.api.resources.Qualifiers.VIEW; import static org.sonar.api.utils.DateUtils.parseDate; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.BRANCH; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newApplication; @@ -234,7 +235,7 @@ public class ComponentDaoTest { ComponentDto branch = db.components().insertProjectBranch(project, b -> b.setKey("my_branch").setBranchType(BRANCH)); ComponentDto file = db.components().insertComponent(newFileDto(branch)); - assertThat(underTest.selectByKeyAndBranch(dbSession, project.getKey(), "master").get().uuid()).isEqualTo(project.uuid()); + assertThat(underTest.selectByKeyAndBranch(dbSession, project.getKey(), DEFAULT_PROJECT_MAIN_BRANCH_NAME).get().uuid()).isEqualTo(project.uuid()); assertThat(underTest.selectByKeyAndBranch(dbSession, branch.getKey(), "my_branch").get().uuid()).isEqualTo(branch.uuid()); assertThat(underTest.selectByKeyAndBranch(dbSession, file.getKey(), "my_branch").get().uuid()).isEqualTo(file.uuid()); assertThat(underTest.selectByKeyAndBranch(dbSession, "unknown", "my_branch")).isNotPresent(); diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/measure/LiveMeasureDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/measure/LiveMeasureDaoTest.java index ac04aa4b4ae..d080a7223ba 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/measure/LiveMeasureDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/measure/LiveMeasureDaoTest.java @@ -44,6 +44,7 @@ import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.groups.Tuple.tuple; import static org.sonar.api.measures.Metric.ValueType.INT; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentTesting.newFileDto; import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; import static org.sonar.db.measure.MeasureTesting.newLiveMeasure; @@ -332,11 +333,11 @@ public class LiveMeasureDaoTest { List<LargestBranchNclocDto> results = underTest.getLargestBranchNclocPerProject(db.getSession()); assertThat(results).hasSize(5); - assertLocForProject(results.get(0), "projectWithTieOnBranchSize", "master", 250); + assertLocForProject(results.get(0), "projectWithTieOnBranchSize", DEFAULT_PROJECT_MAIN_BRANCH_NAME, 250); assertLocForProject(results.get(1), "projectWithTieOnOtherBranches", "tieBranch1", 230); assertLocForProject(results.get(2), "projectWithBranchBiggerThanMaster", "notMasterBranch", 200); - assertLocForProject(results.get(3), "simpleProject", "master", 10); - assertLocForProject(results.get(4), "projectWithLinesButNoLoc", "master", 0); + assertLocForProject(results.get(3), "simpleProject", DEFAULT_PROJECT_MAIN_BRANCH_NAME, 10); + assertLocForProject(results.get(4), "projectWithLinesButNoLoc", DEFAULT_PROJECT_MAIN_BRANCH_NAME, 0); } @Test diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentTesting.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentTesting.java index b9d6e5c8b82..251bd2a7363 100644 --- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentTesting.java +++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentTesting.java @@ -28,7 +28,8 @@ import org.sonar.db.project.ProjectDto; import static com.google.common.base.Preconditions.checkArgument; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; -import static org.sonar.db.component.BranchDto.DEFAULT_MAIN_BRANCH_NAME; +import static org.sonar.db.component.BranchDto.DEFAULT_APPLICATION_MAIN_BRANCH_NAME; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentDto.UUID_PATH_OF_ROOT; import static org.sonar.db.component.ComponentDto.UUID_PATH_SEPARATOR; import static org.sonar.db.component.ComponentDto.formatUuidPathFromParent; @@ -218,7 +219,9 @@ public class ComponentTesting { public static BranchDto newBranchDto(ComponentDto branchComponent, BranchType branchType) { boolean isMain = branchComponent.getMainBranchProjectUuid() == null; String projectUuid = isMain ? branchComponent.uuid() : branchComponent.getMainBranchProjectUuid(); - String key = isMain ? DEFAULT_MAIN_BRANCH_NAME : "branch_" + randomAlphanumeric(248); + String defaultBranchName = branchComponent.qualifier() != null && branchComponent.qualifier().equals("APP") ? + DEFAULT_APPLICATION_MAIN_BRANCH_NAME : DEFAULT_PROJECT_MAIN_BRANCH_NAME; + String key = isMain ? defaultBranchName : "branch_" + randomAlphanumeric(248); return new BranchDto() .setKey(key) diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/project/DefaultBranchNameResolver.java b/server/sonar-server-common/src/main/java/org/sonar/server/project/DefaultBranchNameResolver.java new file mode 100644 index 00000000000..bd93736002b --- /dev/null +++ b/server/sonar-server-common/src/main/java/org/sonar/server/project/DefaultBranchNameResolver.java @@ -0,0 +1,38 @@ +/* + * SonarQube + * Copyright (C) 2009-2022 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.project; + +import org.sonar.api.config.Configuration; + +import static org.sonar.core.config.CorePropertyDefinitions.SONAR_PROJECTCREATION_MAINBRANCHNAME; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; + +public class DefaultBranchNameResolver { + + Configuration configuration; + + public DefaultBranchNameResolver(Configuration configuration) { + this.configuration = configuration; + } + + public String getEffectiveMainBranchName() { + return configuration.get(SONAR_PROJECTCREATION_MAINBRANCHNAME).orElse(DEFAULT_PROJECT_MAIN_BRANCH_NAME); + } +} diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java index adc23e044ac..e77377b038f 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueQueryFactoryTest.java @@ -55,6 +55,7 @@ import static org.sonar.api.resources.Qualifiers.APP; import static org.sonar.api.utils.DateUtils.addDays; import static org.sonar.api.utils.DateUtils.parseDateTime; import static org.sonar.api.web.UserRole.USER; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentTesting.newDirectory; import static org.sonar.db.component.ComponentTesting.newFileDto; import static org.sonar.db.component.ComponentTesting.newModuleDto; @@ -608,12 +609,12 @@ public class IssueQueryFactoryTest { assertThat(underTest.create(new SearchRequest() .setProjects(singletonList(project.getKey())) - .setBranch("master"))) + .setBranch(DEFAULT_PROJECT_MAIN_BRANCH_NAME))) .extracting(IssueQuery::branchUuid, query -> new ArrayList<>(query.projectUuids()), IssueQuery::isMainBranch) .containsOnly(project.uuid(), singletonList(project.uuid()), true); assertThat(underTest.create(new SearchRequest() .setComponents(singletonList(project.getKey())) - .setBranch("master"))) + .setBranch(DEFAULT_PROJECT_MAIN_BRANCH_NAME))) .extracting(IssueQuery::branchUuid, query -> new ArrayList<>(query.projectUuids()), IssueQuery::isMainBranch) .containsOnly(project.uuid(), singletonList(project.uuid()), true); } diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ComponentUpdater.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ComponentUpdater.java index 45da74e4fe3..8aeea98aa5a 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ComponentUpdater.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ComponentUpdater.java @@ -98,6 +98,20 @@ public class ComponentUpdater { return componentDto; } + /** + * - Create component + * - Apply default permission template + * - Add component to favorite if the component has the 'Project Creators' permission + * - Index component in es indexes + */ + public ComponentDto createApplicationOrPortfolio(DbSession dbSession, NewComponent newComponent, @Nullable String userUuid, + @Nullable String userLogin) { + ComponentDto componentDto = createWithoutCommit(dbSession, newComponent, userUuid, userLogin, + BranchDto.DEFAULT_APPLICATION_MAIN_BRANCH_NAME, c -> {}); + commitAndIndex(dbSession, componentDto); + return componentDto; + } + public void commitAndIndex(DbSession dbSession, ComponentDto componentDto) { projectIndexers.commitAndIndexComponents(dbSession, singletonList(componentDto), Cause.PROJECT_CREATION); } @@ -218,7 +232,7 @@ public class ComponentUpdater { String branchKey = Optional.ofNullable(mainBranch) .or(() -> Optional.ofNullable(propertiesDao.selectGlobalProperty(session, CorePropertyDefinitions.SONAR_PROJECTCREATION_MAINBRANCHNAME)) .map(PropertyDto::getValue)) - .orElse(BranchDto.DEFAULT_MAIN_BRANCH_NAME); + .orElse(BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME); BranchDto branch = new BranchDto() .setBranchType(BranchType.BRANCH) diff --git a/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/branch/ws/list-example.json b/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/branch/ws/list-example.json index e37bdebc9f1..a035d056925 100644 --- a/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/branch/ws/list-example.json +++ b/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/branch/ws/list-example.json @@ -11,7 +11,7 @@ "excludedFromPurge": false }, { - "name": "master", + "name": "main", "isMain": true, "type": "BRANCH", "status": { diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/azure/ImportAzureProjectActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/azure/ImportAzureProjectActionTest.java index 99671c08985..3b020a99fb3 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/azure/ImportAzureProjectActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/azure/ImportAzureProjectActionTest.java @@ -63,6 +63,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.sonar.db.alm.integration.pat.AlmPatsTesting.newAlmPatDto; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.permission.GlobalPermission.PROVISION_PROJECTS; import static org.sonar.db.permission.GlobalPermission.SCAN; @@ -173,7 +174,7 @@ public class ImportAzureProjectActionTest { .findFirst(); assertThat(mainBranch).isPresent(); - assertThat(mainBranch.get().getKey()).hasToString("master"); + assertThat(mainBranch.get().getKey()).hasToString(DEFAULT_PROJECT_MAIN_BRANCH_NAME); } @Test @@ -183,7 +184,7 @@ public class ImportAzureProjectActionTest { .setParam("projectName", "project-name") .setParam("repositoryName", "repo-name"); - assertThatThrownBy(() -> request.execute()) + assertThatThrownBy(request::execute) .isInstanceOf(UnauthorizedException.class); } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/bitbucketserver/ImportBitbucketServerProjectActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/bitbucketserver/ImportBitbucketServerProjectActionTest.java index eb0e1a08fcf..a1c5c348ecc 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/bitbucketserver/ImportBitbucketServerProjectActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/bitbucketserver/ImportBitbucketServerProjectActionTest.java @@ -70,6 +70,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.sonar.db.alm.integration.pat.AlmPatsTesting.newAlmPatDto; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.permission.GlobalPermission.PROVISION_PROJECTS; import static org.sonar.db.permission.GlobalPermission.SCAN; @@ -270,7 +271,7 @@ public class ImportBitbucketServerProjectActionTest { Collection<BranchDto> branchDtos = db.getDbClient().branchDao().selectByProject(db.getSession(), projectDto.get()); List<BranchDto> collect = branchDtos.stream().filter(BranchDto::isMain).collect(Collectors.toList()); String mainBranchName = collect.iterator().next().getKey(); - assertThat(mainBranchName).isEqualTo("master"); + assertThat(mainBranchName).isEqualTo(DEFAULT_PROJECT_MAIN_BRANCH_NAME); } @Test diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/gitlab/ImportGitLabProjectActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/gitlab/ImportGitLabProjectActionTest.java index aa4820ecc31..4f4204eb81c 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/gitlab/ImportGitLabProjectActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/almintegration/ws/gitlab/ImportGitLabProjectActionTest.java @@ -56,6 +56,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.permission.GlobalPermission.PROVISION_PROJECTS; import static org.sonar.server.tester.UserSessionRule.standalone; @@ -188,7 +189,7 @@ public class ImportGitLabProjectActionTest { Assertions.assertThat(db.getDbClient().branchDao().selectByProject(db.getSession(), projectDto.get())) .extracting(BranchDto::getKey, BranchDto::isMain) - .containsExactlyInAnyOrder(tuple("master", true)); + .containsExactlyInAnyOrder(tuple(DEFAULT_PROJECT_MAIN_BRANCH_NAME, true)); } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java index 1ef0af77e4d..80ac0430697 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java @@ -57,6 +57,7 @@ import static org.sonar.api.utils.DateUtils.dateToLong; import static org.sonar.api.utils.DateUtils.parseDateTime; import static org.sonar.api.web.UserRole.USER; import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.BRANCH; import static org.sonar.db.component.SnapshotTesting.newAnalysis; import static org.sonar.test.JsonAssert.assertJson; @@ -161,7 +162,7 @@ public class ListActionTest { assertThat(response.getBranchesList()) .extracting(Branch::getName, Branch::getIsMain, Branch::getType) - .containsExactlyInAnyOrder(tuple("master", true, BranchType.BRANCH)); + .containsExactlyInAnyOrder(tuple(DEFAULT_PROJECT_MAIN_BRANCH_NAME, true, BranchType.BRANCH)); } @Test @@ -194,7 +195,7 @@ public class ListActionTest { assertThat(response.getBranchesList()) .extracting(Branch::getName, Branch::getType) .containsExactlyInAnyOrder( - tuple("master", BranchType.BRANCH), + tuple(DEFAULT_PROJECT_MAIN_BRANCH_NAME, BranchType.BRANCH), tuple("feature/foo", BranchType.BRANCH), tuple("feature/bar", BranchType.BRANCH)); } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/SetAutomaticDeletionProtectionActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/SetAutomaticDeletionProtectionActionTest.java index 626d75bda8b..16174e39934 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/SetAutomaticDeletionProtectionActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/SetAutomaticDeletionProtectionActionTest.java @@ -40,6 +40,7 @@ import org.sonar.server.ws.WsActionTester; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.sonar.api.resources.Qualifiers.PROJECT; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; public class SetAutomaticDeletionProtectionActionTest { @@ -124,7 +125,7 @@ public class SetAutomaticDeletionProtectionActionTest { assertThatThrownBy(() -> tester.newRequest() .setParam("project", project.getKey()) - .setParam("branch", "master") + .setParam("branch", DEFAULT_PROJECT_MAIN_BRANCH_NAME) .setParam("value", "false") .execute()) .isInstanceOf(IllegalArgumentException.class) @@ -146,7 +147,7 @@ public class SetAutomaticDeletionProtectionActionTest { assertThat(db.countRowsOfTable("project_branches")).isEqualTo(2); Optional<BranchDto> mainBranch = db.getDbClient().branchDao().selectByUuid(db.getSession(), project.uuid()); - assertThat(mainBranch.get().getKey()).isEqualTo("master"); + assertThat(mainBranch.get().getKey()).isEqualTo(DEFAULT_PROJECT_MAIN_BRANCH_NAME); assertThat(mainBranch.get().isExcludeFromPurge()).isTrue(); Optional<BranchDto> branchDto = db.getDbClient().branchDao().selectByUuid(db.getSession(), branch.uuid()); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentFinderTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentFinderTest.java index 0a5376d0d4a..551f413890a 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentFinderTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentFinderTest.java @@ -30,6 +30,7 @@ import org.sonar.server.exceptions.NotFoundException; import static java.lang.String.format; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newDirectory; import static org.sonar.db.component.ComponentTesting.newFileDto; @@ -217,7 +218,7 @@ public class ComponentFinderTest { public void get_by_key_and_branch_accept_main_branch() { ComponentDto project = db.components().insertPublicProject(); - assertThat(underTest.getByKeyAndBranch(dbSession, project.getKey(), "master").uuid()).isEqualTo(project.uuid()); + assertThat(underTest.getByKeyAndBranch(dbSession, project.getKey(), DEFAULT_PROJECT_MAIN_BRANCH_NAME).uuid()).isEqualTo(project.uuid()); } @Test diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentUpdaterTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentUpdaterTest.java index c958148c03f..09263f5340a 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentUpdaterTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ComponentUpdaterTest.java @@ -99,7 +99,7 @@ public class ComponentUpdaterTest { Optional<BranchDto> branch = db.getDbClient().branchDao().selectByUuid(db.getSession(), returned.uuid()); assertThat(branch).isPresent(); - assertThat(branch.get().getKey()).isEqualTo(BranchDto.DEFAULT_MAIN_BRANCH_NAME); + assertThat(branch.get().getKey()).isEqualTo(BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME); assertThat(branch.get().getMergeBranchUuid()).isNull(); assertThat(branch.get().getBranchType()).isEqualTo(BranchType.BRANCH); assertThat(branch.get().getUuid()).isEqualTo(returned.uuid()); @@ -200,7 +200,7 @@ public class ComponentUpdaterTest { assertThat(projectIndexers.hasBeenCalled(loaded.uuid(), ProjectIndexer.Cause.PROJECT_CREATION)).isTrue(); Optional<BranchDto> branch = db.getDbClient().branchDao().selectByUuid(db.getSession(), returned.uuid()); assertThat(branch).isPresent(); - assertThat(branch.get().getKey()).isEqualTo(BranchDto.DEFAULT_MAIN_BRANCH_NAME); + assertThat(branch.get().getKey()).isEqualTo(BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME); assertThat(branch.get().getMergeBranchUuid()).isNull(); assertThat(branch.get().getBranchType()).isEqualTo(BranchType.BRANCH); assertThat(branch.get().getUuid()).isEqualTo(returned.uuid()); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/ShowActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/ShowActionTest.java index 1793a77a430..edea80d3e3d 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/ShowActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/ShowActionTest.java @@ -48,6 +48,7 @@ import static org.assertj.core.api.Assertions.tuple; import static org.sonar.api.utils.DateUtils.formatDateTime; import static org.sonar.api.utils.DateUtils.parseDateTime; import static org.sonar.api.web.UserRole.USER; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.BRANCH; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newDirectory; @@ -288,11 +289,10 @@ public class ShowActionTest { public void dont_show_branch_if_main_branch() { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); - String branchKey = "master"; ShowWsResponse response = ws.newRequest() .setParam(PARAM_COMPONENT, project.getKey()) - .setParam(PARAM_BRANCH, branchKey) + .setParam(PARAM_BRANCH, DEFAULT_PROJECT_MAIN_BRANCH_NAME) .executeProtobuf(ShowWsResponse.class); assertThat(response.getComponent()) diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/TreeActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/TreeActionTest.java index c0564c6ed34..6152d29a743 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/TreeActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/component/ws/TreeActionTest.java @@ -61,6 +61,7 @@ import static org.sonar.api.resources.Qualifiers.APP; import static org.sonar.api.resources.Qualifiers.FILE; import static org.sonar.api.resources.Qualifiers.PROJECT; import static org.sonar.api.resources.Qualifiers.UNIT_TEST_FILE; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newChildComponent; import static org.sonar.db.component.ComponentTesting.newDirectory; @@ -384,7 +385,7 @@ public class TreeActionTest { TreeWsResponse response = ws.newRequest() .setParam(PARAM_COMPONENT, file.getKey()) - .setParam(PARAM_BRANCH, "master") + .setParam(PARAM_BRANCH, DEFAULT_PROJECT_MAIN_BRANCH_NAME) .executeProtobuf(TreeWsResponse.class); assertThat(response.getBaseComponent()).extracting(Component::getKey, Component::getBranch) diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullActionTest.java index 2c2769ae308..b735139beb4 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullActionTest.java @@ -57,6 +57,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.sonar.api.web.UserRole.USER; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentTesting.newFileDto; public class PullActionTest { @@ -64,7 +65,7 @@ public class PullActionTest { private static final long NOW = 10_000_000_000L; private static final long PAST = 1_000_000_000L; - private static final String DEFAULT_BRANCH = "master"; + private static final String DEFAULT_BRANCH = DEFAULT_PROJECT_MAIN_BRANCH_NAME; @Rule public DbTester dbTester = DbTester.create(); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullTaintActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullTaintActionTest.java index 29b0d0f7a2b..637b5c40910 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullTaintActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/PullTaintActionTest.java @@ -58,13 +58,14 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.sonar.api.web.UserRole.USER; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.ComponentTesting.newFileDto; public class PullTaintActionTest { private static final long NOW = 10_000_000_000L; private static final long PAST = 1_000_000_000L; - private static final String DEFAULT_BRANCH = "master"; + private static final String DEFAULT_BRANCH = DEFAULT_PROJECT_MAIN_BRANCH_NAME; @Rule public DbTester dbTester = DbTester.create(); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsTest.java index b77b308559e..f22493335fd 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsTest.java @@ -66,6 +66,7 @@ import static org.sonar.api.utils.DateUtils.parseDateTime; import static org.sonar.api.web.UserRole.USER; import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01; import static org.sonar.core.util.Uuids.UUID_EXAMPLE_02; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.BRANCH; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newDirectory; @@ -668,7 +669,7 @@ public class SearchActionComponentsTest { SearchWsResponse result = ws.newRequest() .setParam(PARAM_COMPONENT_KEYS, project.getKey()) - .setParam(PARAM_BRANCH, "master") + .setParam(PARAM_BRANCH, DEFAULT_PROJECT_MAIN_BRANCH_NAME) .executeProtobuf(SearchWsResponse.class); assertThat(result.getIssuesList()) diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java index e3e8ecba3e7..08cae5ea7ea 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java @@ -47,6 +47,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.tuple; import static org.sonar.api.utils.DateUtils.parseDateTime; import static org.sonar.api.web.UserRole.USER; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newFileDto; import static org.sonar.db.component.ComponentTesting.newProjectCopy; @@ -147,7 +148,7 @@ public class ComponentActionTest { ComponentWsResponse response = ws.newRequest() .setParam(PARAM_COMPONENT, file.getKey()) - .setParam(PARAM_BRANCH, "master") + .setParam(PARAM_BRANCH, DEFAULT_PROJECT_MAIN_BRANCH_NAME) .setParam(PARAM_METRIC_KEYS, "complexity") .executeProtobuf(ComponentWsResponse.class); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java index 2de3079465f..241edc67f81 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java @@ -32,6 +32,7 @@ import org.sonar.core.util.stream.MoreCollectors; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; +import org.sonar.db.component.BranchDto; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; import org.sonar.db.component.ResourceTypesRule; @@ -564,7 +565,7 @@ public class ComponentTreeActionTest { ComponentTreeWsResponse response = ws.newRequest() .setParam(PARAM_COMPONENT, file.getKey()) - .setParam(PARAM_BRANCH, "master") + .setParam(PARAM_BRANCH, BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME) .setParam(PARAM_METRIC_KEYS, complexity.getKey()) .executeProtobuf(ComponentTreeWsResponse.class); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/ListActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/ListActionTest.java index 8cee6bd9bde..fab0c1bd5a6 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/ListActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/ListActionTest.java @@ -50,6 +50,7 @@ import org.sonarqube.ws.NewCodePeriods.ShowWSResponse; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.component.SnapshotTesting.newAnalysis; public class ListActionTest { @@ -115,7 +116,7 @@ public class ListActionTest { assertThat(response).isNotNull(); assertThat(response.getNewCodePeriodsCount()).isEqualTo(6); assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getBranchKey) - .contains("master", "BRANCH_0", "BRANCH_1", "BRANCH_2", "BRANCH_3", "BRANCH_4"); + .contains(DEFAULT_PROJECT_MAIN_BRANCH_NAME, "BRANCH_0", "BRANCH_1", "BRANCH_2", "BRANCH_3", "BRANCH_4"); //check if global default is set assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getType) @@ -138,7 +139,7 @@ public class ListActionTest { assertThat(response).isNotNull(); assertThat(response.getNewCodePeriodsCount()).isEqualTo(6); assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getBranchKey) - .contains("master", "BRANCH_0", "BRANCH_1", "BRANCH_2", "BRANCH_3", "BRANCH_4"); + .contains(DEFAULT_PROJECT_MAIN_BRANCH_NAME, "BRANCH_0", "BRANCH_1", "BRANCH_2", "BRANCH_3", "BRANCH_4"); //check if global default is set assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getType) @@ -173,7 +174,7 @@ public class ListActionTest { assertThat(response).isNotNull(); assertThat(response.getNewCodePeriodsCount()).isEqualTo(6); assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getBranchKey) - .contains("master", "BRANCH_0", "BRANCH_1", "BRANCH_2", "BRANCH_3", "BRANCH_4"); + .contains(DEFAULT_PROJECT_MAIN_BRANCH_NAME, "BRANCH_0", "BRANCH_1", "BRANCH_2", "BRANCH_3", "BRANCH_4"); //check if project setting is set assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getType) @@ -191,7 +192,7 @@ public class ListActionTest { assertThat(response).isNotNull(); assertThat(response.getNewCodePeriodsCount()).isOne(); assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getBranchKey) - .containsOnly("master"); + .containsOnly(DEFAULT_PROJECT_MAIN_BRANCH_NAME); //check if global setting is set assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getType) @@ -227,7 +228,7 @@ public class ListActionTest { assertThat(response).isNotNull(); assertThat(response.getNewCodePeriodsCount()).isEqualTo(3); assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getBranchKey) - .contains("master", "OWN_SETTINGS", "GLOBAL_SETTINGS"); + .contains(DEFAULT_PROJECT_MAIN_BRANCH_NAME, "OWN_SETTINGS", "GLOBAL_SETTINGS"); Optional<ShowWSResponse> ownSettings = response.getNewCodePeriodsList().stream() .filter(s -> !s.getInherited()) @@ -282,7 +283,7 @@ public class ListActionTest { assertThat(response).isNotNull(); assertThat(response.getNewCodePeriodsCount()).isEqualTo(3); assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getBranchKey) - .contains("master", "OWN_SETTINGS", "PROJECT_SETTINGS"); + .contains(DEFAULT_PROJECT_MAIN_BRANCH_NAME, "OWN_SETTINGS", "PROJECT_SETTINGS"); Optional<ShowWSResponse> ownSettings = response.getNewCodePeriodsList().stream() .filter(s -> !s.getInherited()) @@ -343,7 +344,7 @@ public class ListActionTest { assertThat(response).isNotNull(); assertThat(response.getNewCodePeriodsCount()).isEqualTo(2); assertThat(response.getNewCodePeriodsList()).extracting(ShowWSResponse::getBranchKey) - .containsOnly("master", "PROJECT_BRANCH"); + .containsOnly(DEFAULT_PROJECT_MAIN_BRANCH_NAME, "PROJECT_BRANCH"); ShowWSResponse result = response.getNewCodePeriodsList().get(0); assertThat(result.getType()).isEqualTo(NewCodePeriods.NewCodePeriodType.SPECIFIC_ANALYSIS); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/SetActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/SetActionTest.java index 8e1019fc690..e0335b2a030 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/SetActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/newcodeperiod/ws/SetActionTest.java @@ -54,6 +54,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.entry; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; @RunWith(DataProviderRunner.class) public class SetActionTest { @@ -130,7 +131,7 @@ public class SetActionTest { assertThatThrownBy(() -> ws.newRequest() .setParam("project", project.getKey()) - .setParam("branch", "master") + .setParam("branch", DEFAULT_PROJECT_MAIN_BRANCH_NAME) .setParam("type", "number_of_days") .execute()) .isInstanceOf(IllegalArgumentException.class) @@ -145,7 +146,7 @@ public class SetActionTest { assertThatThrownBy(() -> ws.newRequest() .setParam("project", project.getKey()) .setParam("type", "specific_analysis") - .setParam("branch", "master") + .setParam("branch", DEFAULT_PROJECT_MAIN_BRANCH_NAME) .execute()) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining("New Code Period type 'SPECIFIC_ANALYSIS' requires a value"); @@ -159,7 +160,7 @@ public class SetActionTest { assertThatThrownBy(() -> ws.newRequest() .setParam("project", project.getKey()) .setParam("type", "number_of_days") - .setParam("branch", "master") + .setParam("branch", DEFAULT_PROJECT_MAIN_BRANCH_NAME) .setParam("value", "unknown") .execute()) .isInstanceOf(IllegalArgumentException.class) @@ -174,7 +175,7 @@ public class SetActionTest { assertThatThrownBy(() -> ws.newRequest() .setParam("project", project.getKey()) .setParam("type", "specific_analysis") - .setParam("branch", "master") + .setParam("branch", DEFAULT_PROJECT_MAIN_BRANCH_NAME) .setParam("value", "unknown") .execute()) .isInstanceOf(NotFoundException.class) @@ -194,11 +195,12 @@ public class SetActionTest { assertThatThrownBy(() -> ws.newRequest() .setParam("project", project.getKey()) .setParam("type", "specific_analysis") - .setParam("branch", "master") + .setParam("branch", DEFAULT_PROJECT_MAIN_BRANCH_NAME) .setParam("value", analysisBranch.getUuid()) .execute()) .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("Analysis '" + analysisBranch.getUuid() + "' does not belong to branch 'master' of project '" + project.getKey() + "'"); + .hasMessageContaining("Analysis '" + analysisBranch.getUuid() + "' does not belong to branch '" + DEFAULT_PROJECT_MAIN_BRANCH_NAME + + "' of project '" + project.getKey() + "'"); } // validation of project/branch diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/projectanalysis/ws/SetBaselineActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/projectanalysis/ws/SetBaselineActionTest.java index 22629b3c0b9..664235f34e9 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/projectanalysis/ws/SetBaselineActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/projectanalysis/ws/SetBaselineActionTest.java @@ -52,6 +52,7 @@ import org.sonar.server.ws.WsActionTester; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.sonar.db.component.BranchDto.DEFAULT_PROJECT_MAIN_BRANCH_NAME; import static org.sonar.db.newcodeperiod.NewCodePeriodType.SPECIFIC_ANALYSIS; import static org.sonar.server.projectanalysis.ws.ProjectAnalysesWsParameters.PARAM_ANALYSIS; import static org.sonar.server.projectanalysis.ws.ProjectAnalysesWsParameters.PARAM_BRANCH; @@ -116,7 +117,7 @@ public class SetBaselineActionTest { ComponentDto project = tester.insertPrivateProject(); SnapshotDto analysis = db.components().insertSnapshot(project); - assertThatThrownBy(() -> call(project.getKey(), "master", analysis.getUuid())) + assertThatThrownBy(() -> call(project.getKey(), DEFAULT_PROJECT_MAIN_BRANCH_NAME, analysis.getUuid())) .isInstanceOf(ForbiddenException.class) .hasMessage("Insufficient privileges"); } @@ -178,7 +179,7 @@ public class SetBaselineActionTest { SnapshotDto analysis = db.components().insertSnapshot(project); logInAsProjectAdministrator(project); - ComponentDto otherProject = tester.insertPrivateProjectWithCustomBranch("main"); + ComponentDto otherProject = tester.insertPrivateProjectWithCustomBranch("develop"); BranchDto branchOfOtherProject = branchDao.selectByUuid(dbSession, otherProject.uuid()).get(); assertThatThrownBy(() -> call(project.getKey(), branchOfOtherProject.getKey(), analysis.getUuid())) diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java b/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java index d30627adf7d..3f3c27434fe 100644 --- a/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java +++ b/server/sonar-webserver/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java @@ -178,6 +178,7 @@ import org.sonar.server.plugins.ws.PluginUpdateAggregator; import org.sonar.server.plugins.ws.PluginsWs; import org.sonar.server.plugins.ws.UninstallAction; import org.sonar.server.plugins.ws.UpdatesAction; +import org.sonar.server.project.DefaultBranchNameResolver; import org.sonar.server.project.ProjectQGChangeEventListener; import org.sonar.server.project.ws.ProjectsWsModule; import org.sonar.server.projectanalysis.ws.ProjectAnalysisWsModule; @@ -297,6 +298,7 @@ public class PlatformLevel4 extends PlatformLevel { IndexDefinitions.class, WebAnalyticsLoaderImpl.class, new MonitoringWsModule(), + DefaultBranchNameResolver.class, // batch new BatchWsModule(), diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectBranches.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectBranches.java index d9ed8063cc8..09236b076a4 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectBranches.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/branch/ProjectBranches.java @@ -32,7 +32,7 @@ import javax.annotation.concurrent.Immutable; @Immutable public class ProjectBranches { // matches server-side default when creating a project. See BranchDto#DEFAULT_MAIN_BRANCH_NAME - private static final String DEFAULT_MAIN_BRANCH_NAME = "master"; + private static final String DEFAULT_MAIN_BRANCH_NAME = "main"; private final Map<String, BranchInfo> branches; private final String defaultBranchName; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java index 83a5bfb888f..52f940f527a 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java @@ -111,7 +111,7 @@ public class BranchMediumTest { public void shouldSkipSensorForUnchangedFilesOnPr() throws Exception { AnalysisResult result = getResult(tester .setBranchName("myBranch") - .setBranchTarget("master") + .setBranchTarget("main") .setBranchType(BranchType.PULL_REQUEST)); final DefaultInputFile file = (DefaultInputFile) result.inputFile(FILE_PATH); @@ -125,7 +125,7 @@ public class BranchMediumTest { public void shouldNotSkipSensorForUnchangedFilesOnBranch() throws Exception { AnalysisResult result = getResult(tester .setBranchName("myBranch") - .setBranchTarget("master") + .setBranchTarget("main") .setBranchType(BranchType.BRANCH)); final DefaultInputFile file = (DefaultInputFile) result.inputFile(FILE_PATH); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultNewCodePeriodLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultNewCodePeriodLoaderTest.java index 63766950563..39d98c404e9 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultNewCodePeriodLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultNewCodePeriodLoaderTest.java @@ -47,7 +47,7 @@ public class DefaultNewCodePeriodLoaderTest { } private void prepareCallWithResults() throws IOException { - WsTestUtil.mockStream(wsClient, createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "master")); + WsTestUtil.mockStream(wsClient, createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "main")); } private InputStream createResponse(NewCodePeriods.NewCodePeriodType type, String value) throws IOException { diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/ReferenceBranchSupplierTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/ReferenceBranchSupplierTest.java index 3b51bd63d61..1b270781d3d 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/ReferenceBranchSupplierTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/ReferenceBranchSupplierTest.java @@ -64,16 +64,16 @@ public class ReferenceBranchSupplierTest { public void get_returns_reference_branch_when_set() { when(branchConfiguration.branchType()).thenReturn(BranchType.BRANCH); when(branchConfiguration.branchName()).thenReturn(BRANCH_KEY); - when(newCodePeriodLoader.load(PROJECT_KEY, BRANCH_KEY)).thenReturn(createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "master")); + when(newCodePeriodLoader.load(PROJECT_KEY, BRANCH_KEY)).thenReturn(createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "main")); - assertThat(referenceBranchSupplier.get()).isEqualTo("master"); + assertThat(referenceBranchSupplier.get()).isEqualTo("main"); } @Test public void get_uses_scanner_property_with_higher_priority() { when(branchConfiguration.branchType()).thenReturn(BranchType.BRANCH); when(branchConfiguration.branchName()).thenReturn(BRANCH_KEY); - when(newCodePeriodLoader.load(PROJECT_KEY, BRANCH_KEY)).thenReturn(createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "master")); + when(newCodePeriodLoader.load(PROJECT_KEY, BRANCH_KEY)).thenReturn(createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "main")); when(configuration.get("sonar.newCode.referenceBranch")).thenReturn(Optional.of("master2")); @@ -107,9 +107,9 @@ public class ReferenceBranchSupplierTest { when(branchConfiguration.branchType()).thenReturn(BranchType.BRANCH); when(branchConfiguration.branchName()).thenReturn(null); when(projectBranches.defaultBranchName()).thenReturn("default"); - when(newCodePeriodLoader.load(PROJECT_KEY, "default")).thenReturn(createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "master")); + when(newCodePeriodLoader.load(PROJECT_KEY, "default")).thenReturn(createResponse(NewCodePeriods.NewCodePeriodType.REFERENCE_BRANCH, "main")); - assertThat(referenceBranchSupplier.get()).isEqualTo("master"); + assertThat(referenceBranchSupplier.get()).isEqualTo("main"); } @Test diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/branch/ProjectBranchesTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/branch/ProjectBranchesTest.java index 0c90cc46922..fcf85abca29 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/branch/ProjectBranchesTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/branch/ProjectBranchesTest.java @@ -70,6 +70,6 @@ public class ProjectBranchesTest { public void isEmpty() { assertThat(underTest.isEmpty()).isFalse(); assertThat(new ProjectBranches(Collections.emptyList()).isEmpty()).isTrue(); - assertThat(new ProjectBranches(Collections.emptyList()).defaultBranchName()).isEqualTo("master"); + assertThat(new ProjectBranches(Collections.emptyList()).defaultBranchName()).isEqualTo("main"); } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java index e75152cdb74..2a5252d7603 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scm/git/GitScmProviderTest.java @@ -164,7 +164,7 @@ public class GitScmProviderTest { git.rm().addFilepattern(fileName).call(); commit(renamedName); - Set<Path> files = newScmProvider().branchChangedFiles("master", worktree); + Set<Path> files = newScmProvider().branchChangedFiles("main", worktree); // no shared history, so no diff assertThat(files).isNull(); @@ -243,7 +243,7 @@ public class GitScmProviderTest { Repository repo = FileRepositoryBuilder.create(worktree.resolve(".git").toFile()); git = new Git(repo); - assertThat(newScmProvider().branchChangedFiles("master", worktree)).isNull(); + assertThat(newScmProvider().branchChangedFiles("main", worktree)).isNull(); } @Test @@ -375,7 +375,7 @@ public class GitScmProviderTest { git.checkout().setOrphan(true).setName("b1").call(); createAndCommitFile("file-b1.xoo"); - Map<Path, Set<Integer>> changedLines = newScmProvider().branchChangedLines("master", worktree, Collections.singleton(Paths.get(""))); + Map<Path, Set<Integer>> changedLines = newScmProvider().branchChangedLines("main", worktree, Collections.singleton(Paths.get(""))); assertThat(changedLines).isNull(); } @@ -476,7 +476,7 @@ public class GitScmProviderTest { Repository repo = FileRepositoryBuilder.create(worktree.resolve(".git").toFile()); git = new Git(repo); - assertThat(newScmProvider().branchChangedLines("master", worktree, Collections.singleton(Paths.get("file")))).isNull(); + assertThat(newScmProvider().branchChangedLines("main", worktree, Collections.singleton(Paths.get("file")))).isNull(); } /** @@ -602,14 +602,14 @@ public class GitScmProviderTest { @Test public void branchChangedFiles_should_throw_when_repo_nonexistent() { - assertThatThrownBy(() -> newScmProvider().branchChangedFiles("master", temp.newFolder().toPath())) + assertThatThrownBy(() -> newScmProvider().branchChangedFiles("main", temp.newFolder().toPath())) .isInstanceOf(MessageException.class) .hasMessageContaining("Not inside a Git work tree: "); } @Test public void branchChangedFiles_should_throw_when_dir_nonexistent() { - assertThatThrownBy(() -> newScmProvider().branchChangedFiles("master", temp.getRoot().toPath().resolve("nonexistent"))) + assertThatThrownBy(() -> newScmProvider().branchChangedFiles("main", temp.getRoot().toPath().resolve("nonexistent"))) .isInstanceOf(MessageException.class) .hasMessageContaining("Not inside a Git work tree: "); } |