diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2019-10-23 15:33:39 -0500 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2020-01-31 20:46:09 +0100 |
commit | ace9a50d55d831ec71b7db421aa04d1198392c6c (patch) | |
tree | 3bf598bfe3f760d45310b2a65d014a53370a9930 /server/sonar-webserver-es | |
parent | 1ff9a01fd6e822793ef223f9ce259b15d17eecc4 (diff) | |
download | sonarqube-ace9a50d55d831ec71b7db421aa04d1198392c6c.tar.gz sonarqube-ace9a50d55d831ec71b7db421aa04d1198392c6c.zip |
SONAR-12689 Separate storage of projects/apps from their components and branches
Diffstat (limited to 'server/sonar-webserver-es')
5 files changed, 43 insertions, 43 deletions
diff --git a/server/sonar-webserver-es/src/main/java/org/sonar/server/permission/index/PermissionIndexerDao.java b/server/sonar-webserver-es/src/main/java/org/sonar/server/permission/index/PermissionIndexerDao.java index 84fb3799091..90d7c5e3a5b 100644 --- a/server/sonar-webserver-es/src/main/java/org/sonar/server/permission/index/PermissionIndexerDao.java +++ b/server/sonar-webserver-es/src/main/java/org/sonar/server/permission/index/PermissionIndexerDao.java @@ -55,35 +55,35 @@ public class PermissionIndexerDao { // users " SELECT '" + RowKind.USER + "' as kind," + - " projects.uuid AS project, " + - " projects.qualifier AS qualifier, " + + " c.uuid AS project, " + + " c.qualifier AS qualifier, " + " user_roles.user_id AS user_id, " + " NULL AS group_id " + - " FROM projects " + - " INNER JOIN user_roles ON user_roles.resource_id = projects.id AND user_roles.role = 'user' " + + " FROM components c " + + " INNER JOIN user_roles ON user_roles.resource_id = c.id AND user_roles.role = 'user' " + " WHERE " + - " (projects.qualifier = 'TRK' " + - " or projects.qualifier = 'VW' " + - " or projects.qualifier = 'APP') " + - " AND projects.copy_component_uuid is NULL " + + " (c.qualifier = 'TRK' " + + " or c.qualifier = 'VW' " + + " or c.qualifier = 'APP') " + + " AND c.copy_component_uuid is NULL " + " {projectsCondition} " + " UNION " + // groups " SELECT '" + RowKind.GROUP + "' as kind," + - " projects.uuid AS project, " + - " projects.qualifier AS qualifier, " + + " c.uuid AS project, " + + " c.qualifier AS qualifier, " + " NULL AS user_id, " + " groups.id AS group_id " + - " FROM projects " + - " INNER JOIN group_roles ON group_roles.resource_id = projects.id AND group_roles.role = 'user' " + + " FROM components c " + + " INNER JOIN group_roles ON group_roles.resource_id = c.id AND group_roles.role = 'user' " + " INNER JOIN groups ON groups.id = group_roles.group_id " + " WHERE " + - " (projects.qualifier = 'TRK' " + - " or projects.qualifier = 'VW' " + - " or projects.qualifier = 'APP') " + - " AND projects.copy_component_uuid is NULL " + + " (c.qualifier = 'TRK' " + + " or c.qualifier = 'VW' " + + " or c.qualifier = 'APP') " + + " AND c.copy_component_uuid is NULL " + " {projectsCondition} " + " AND group_id IS NOT NULL " + " UNION " + @@ -91,33 +91,33 @@ public class PermissionIndexerDao { // public projects are accessible to any one " SELECT '" + RowKind.ANYONE + "' as kind," + - " projects.uuid AS project, " + - " projects.qualifier AS qualifier, " + + " c.uuid AS project, " + + " c.qualifier AS qualifier, " + " NULL AS user_id, " + " NULL AS group_id " + - " FROM projects " + + " FROM components c " + " WHERE " + - " (projects.qualifier = 'TRK' " + - " or projects.qualifier = 'VW' " + - " or projects.qualifier = 'APP') " + - " AND projects.copy_component_uuid is NULL " + - " AND projects.private = ? " + + " (c.qualifier = 'TRK' " + + " or c.qualifier = 'VW' " + + " or c.qualifier = 'APP') " + + " AND c.copy_component_uuid is NULL " + + " AND c.private = ? " + " {projectsCondition} " + " UNION " + // private project is returned when no authorization " SELECT '" + RowKind.NONE + "' as kind," + - " projects.uuid AS project, " + - " projects.qualifier AS qualifier, " + + " c.uuid AS project, " + + " c.qualifier AS qualifier, " + " NULL AS user_id, " + " NULL AS group_id " + - " FROM projects " + + " FROM components c " + " WHERE " + - " (projects.qualifier = 'TRK' " + - " or projects.qualifier = 'VW' " + - " or projects.qualifier = 'APP') " + - " AND projects.copy_component_uuid is NULL " + - " AND projects.private = ? " + + " (c.qualifier = 'TRK' " + + " or c.qualifier = 'VW' " + + " or c.qualifier = 'APP') " + + " AND c.copy_component_uuid is NULL " + + " AND c.private = ? " + " {projectsCondition} " + " ) project_authorization"; @@ -150,7 +150,7 @@ public class PermissionIndexerDao { if (projectUuids.isEmpty()) { sql = StringUtils.replace(SQL_TEMPLATE, "{projectsCondition}", ""); } else { - sql = StringUtils.replace(SQL_TEMPLATE, "{projectsCondition}", " AND projects.uuid in (" + repeat("?", ", ", projectUuids.size()) + ")"); + sql = StringUtils.replace(SQL_TEMPLATE, "{projectsCondition}", " AND c.uuid in (" + repeat("?", ", ", projectUuids.size()) + ")"); } PreparedStatement stmt = dbClient.getMyBatis().newScrollingSelectStatement(session, sql); int index = 1; diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java index 5e5cdabaa30..1bde99b73d9 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexFiltersTest.java @@ -245,7 +245,7 @@ public class IssueIndexFiltersTest { @Test public void do_not_return_issues_from_project_branch_when_filtering_by_portfolios() { ComponentDto portfolio = db.components().insertPrivateApplication(db.getDefaultOrganization()); - ComponentDto project = db.components().insertMainBranch(); + ComponentDto project = db.components().insertPublicProject(); ComponentDto projectBranch = db.components().insertProjectBranch(project); ComponentDto fileOnProjectBranch = db.components().insertComponent(newFileDto(projectBranch)); indexView(portfolio.uuid(), singletonList(project.uuid())); @@ -359,7 +359,7 @@ public class IssueIndexFiltersTest { @Test public void filter_by_application_branch() { - ComponentDto application = db.components().insertMainBranch(c -> c.setQualifier(APP)); + ComponentDto application = db.components().insertPublicProject(c -> c.setQualifier(APP)); ComponentDto branch1 = db.components().insertProjectBranch(application); ComponentDto branch2 = db.components().insertProjectBranch(application); ComponentDto project1 = db.components().insertPrivateProject(); @@ -385,7 +385,7 @@ public class IssueIndexFiltersTest { @Test public void filter_by_application_branch_having_project_branches() { - ComponentDto application = db.components().insertMainBranch(c -> c.setQualifier(APP).setDbKey("app")); + ComponentDto application = db.components().insertPublicProject(c -> c.setQualifier(APP).setDbKey("app")); ComponentDto applicationBranch1 = db.components().insertProjectBranch(application, a -> a.setKey("app-branch1")); ComponentDto applicationBranch2 = db.components().insertProjectBranch(application, a -> a.setKey("app-branch2")); ComponentDto project1 = db.components().insertPrivateProject(p -> p.setDbKey("prj1")); diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexProjectStatisticsTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexProjectStatisticsTest.java index e71d84133b9..2ccf3703050 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexProjectStatisticsTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexProjectStatisticsTest.java @@ -45,7 +45,7 @@ import static org.mockito.Mockito.mock; import static org.sonar.api.resources.Qualifiers.PROJECT; import static org.sonar.db.component.ComponentTesting.newBranchDto; import static org.sonar.db.component.ComponentTesting.newPrivateProjectDto; -import static org.sonar.db.component.ComponentTesting.newProjectBranch; +import static org.sonar.db.component.ComponentTesting.newBranchComponent; import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; import static org.sonar.server.issue.IssueDocTesting.newDoc; @@ -246,7 +246,7 @@ public class IssueIndexProjectStatisticsTest { public void searchProjectStatistics_return_branch_issues() { OrganizationDto organization = newOrganizationDto(); ComponentDto project = newPrivateProjectDto(organization); - ComponentDto branch = newProjectBranch(project, newBranchDto(project).setKey("branch")); + ComponentDto branch = newBranchComponent(project, newBranchDto(project).setKey("branch")); String userUuid = randomAlphanumeric(40); long from = 1_111_234_567_890L; indexIssues( diff --git a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java index a2055da067c..fcba3067c1b 100644 --- a/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java +++ b/server/sonar-webserver-es/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java @@ -289,7 +289,7 @@ public class IssueIndexTest { @Test public void searchBranchStatistics() { - ComponentDto project = db.components().insertMainBranch(); + ComponentDto project = db.components().insertPublicProject(); ComponentDto branch1 = db.components().insertProjectBranch(project); ComponentDto branch2 = db.components().insertProjectBranch(project); ComponentDto branch3 = db.components().insertProjectBranch(project); @@ -310,7 +310,7 @@ public class IssueIndexTest { @Test public void searchBranchStatistics_on_many_branches() { - ComponentDto project = db.components().insertMainBranch(); + ComponentDto project = db.components().insertPublicProject(); List<String> branchUuids = new ArrayList<>(); List<Tuple> expectedResult = new ArrayList<>(); IntStream.range(0, 15).forEach(i -> { @@ -330,7 +330,7 @@ public class IssueIndexTest { @Test public void searchBranchStatistics_on_empty_list() { - ComponentDto project = db.components().insertMainBranch(); + ComponentDto project = db.components().insertPublicProject(); assertThat(underTest.searchBranchStatistics(project.uuid(), emptyList())).isEmpty(); assertThat(underTest.searchBranchStatistics(project.uuid(), singletonList("unknown"))).isEmpty(); 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 702e71257f9..28922bbf6dc 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 @@ -445,7 +445,7 @@ public class IssueQueryFactoryTest { @Test public void search_issues_from_main_branch() { - ComponentDto project = db.components().insertMainBranch(); + ComponentDto project = db.components().insertPublicProject(); ComponentDto branch = db.components().insertProjectBranch(project); assertThat(underTest.create(new SearchRequest() @@ -476,7 +476,7 @@ public class IssueQueryFactoryTest { @Test public void search_by_application_key_and_branch() { - ComponentDto application = db.components().insertMainBranch(c -> c.setQualifier(APP).setDbKey("app")); + ComponentDto application = db.components().insertPublicProject(c -> c.setQualifier(APP).setDbKey("app")); ComponentDto applicationBranch1 = db.components().insertProjectBranch(application, a -> a.setKey("app-branch1")); ComponentDto applicationBranch2 = db.components().insertProjectBranch(application, a -> a.setKey("app-branch2")); ComponentDto project1 = db.components().insertPrivateProject(p -> p.setDbKey("prj1")); |