From 5d2dc236eb5ed578a124c38b12734c780397a9c9 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Fri, 27 Jul 2018 10:56:05 +0200 Subject: [PATCH] SONAR-11038 Rename table alm_project_mappings -> project_alm_bindings --- .../java/org/sonar/db/version/SqTables.java | 2 +- .../org/sonar/db/version/schema-h2.ddl | 8 +-- .../src/main/java/org/sonar/db/DaoModule.java | 4 +- .../src/main/java/org/sonar/db/DbClient.java | 10 +-- .../src/main/java/org/sonar/db/MyBatis.java | 12 ++-- ...pingDto.java => ProjectAlmBindingDto.java} | 14 ++-- ...ngsDao.java => ProjectAlmBindingsDao.java} | 18 +++--- ...per.java => ProjectAlmBindingsMapper.java} | 6 +- .../org/sonar/db/purge/PurgeCommands.java | 6 +- .../java/org/sonar/db/purge/PurgeDao.java | 2 +- .../java/org/sonar/db/purge/PurgeMapper.java | 2 +- ...apper.xml => ProjectAlmBindingsMapper.xml} | 14 ++-- .../org/sonar/db/purge/PurgeMapper.xml | 4 +- ...st.java => ProjectAlmBindingsDaoTest.java} | 64 +++++++++---------- .../java/org/sonar/db/purge/PurgeDaoTest.java | 10 +-- ...ava => CreateProjectAlmBindingsTable.java} | 7 +- .../db/migration/version/v73/DbVersion73.java | 2 +- ...=> CreateProjectAlmBindingsTableTest.java} | 8 +-- .../version/v73/DbVersion73Test.java | 2 +- .../empty.sql | 0 20 files changed, 97 insertions(+), 98 deletions(-) rename server/sonar-db-dao/src/main/java/org/sonar/db/alm/{AlmProjectMappingDto.java => ProjectAlmBindingDto.java} (81%) rename server/sonar-db-dao/src/main/java/org/sonar/db/alm/{AlmProjectMappingsDao.java => ProjectAlmBindingsDao.java} (81%) rename server/sonar-db-dao/src/main/java/org/sonar/db/alm/{AlmProjectMappingsMapper.java => ProjectAlmBindingsMapper.java} (89%) rename server/sonar-db-dao/src/main/resources/org/sonar/db/alm/{AlmProjectMappingsMapper.xml => ProjectAlmBindingsMapper.xml} (81%) rename server/sonar-db-dao/src/test/java/org/sonar/db/alm/{AlmProjectMappingsDaoTest.java => ProjectAlmBindingsDaoTest.java} (81%) rename server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/{CreateAlmProjectMappingsTable.java => CreateProjectAlmBindingsTable.java} (94%) rename server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/{CreateAlmProjectMappingsTableTest.java => CreateProjectAlmBindingsTableTest.java} (89%) rename server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v73/{CreateAlmProjectMappingsTableTest => CreateProjectAlmBindingsTableTest}/empty.sql (100%) diff --git a/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java b/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java index 9effb770606..18b68506d10 100644 --- a/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java +++ b/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java @@ -53,7 +53,6 @@ public final class SqTables { "active_rules", "active_rule_parameters", "alm_app_installs", - "alm_project_mappings", "analysis_properties", "ce_activity", "ce_queue", @@ -86,6 +85,7 @@ public final class SqTables { "perm_tpl_characteristics", "plugins", "projects", + "project_alm_bindings", "project_branches", "project_links", "project_mappings", diff --git a/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl b/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl index 1a36753f7d7..4e43f0178e4 100644 --- a/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl +++ b/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl @@ -853,7 +853,7 @@ CREATE TABLE "ALM_APP_INSTALLS" ( CREATE UNIQUE INDEX "ALM_APP_INSTALLS_OWNER" ON "ALM_APP_INSTALLS" ("ALM_ID", "OWNER_ID"); CREATE UNIQUE INDEX "ALM_APP_INSTALLS_INSTALL" ON "ALM_APP_INSTALLS" ("ALM_ID", "INSTALL_ID"); -CREATE TABLE "ALM_PROJECT_MAPPINGS" ( +CREATE TABLE "PROJECT_ALM_BINDINGS" ( "UUID" VARCHAR(40) NOT NULL, "ALM_ID" VARCHAR(40) NOT NULL, "REPO_ID" VARCHAR(256) NOT NULL, @@ -862,10 +862,10 @@ CREATE TABLE "ALM_PROJECT_MAPPINGS" ( "URL" VARCHAR(2000) NOT NULL, "CREATED_AT" BIGINT NOT NULL, "UPDATED_AT" BIGINT NOT NULL, - CONSTRAINT "PK_ALM_PROJECT_MAPPINGS" PRIMARY KEY ("UUID") + CONSTRAINT "PK_PROJECT_ALM_BINDINGS" PRIMARY KEY ("UUID") ); -CREATE UNIQUE INDEX "ALM_PROJECT_MAPPINGS_ALM_REPO" ON "ALM_PROJECT_MAPPINGS" ("ALM_ID", "REPO_ID"); -CREATE UNIQUE INDEX "ALM_PROJECT_MAPPINGS_PROJECT" ON "ALM_PROJECT_MAPPINGS" ("PROJECT_UUID"); +CREATE UNIQUE INDEX "PROJECT_ALM_BINDINGS_ALM_REPO" ON "PROJECT_ALM_BINDINGS" ("ALM_ID", "REPO_ID"); +CREATE UNIQUE INDEX "PROJECT_ALM_BINDINGS_PROJECT" ON "PROJECT_ALM_BINDINGS" ("PROJECT_UUID"); CREATE TABLE "PROJECT_MAPPINGS" ( "UUID" VARCHAR(40) NOT NULL, diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/DaoModule.java b/server/sonar-db-dao/src/main/java/org/sonar/db/DaoModule.java index b6908ba0cb0..f16b9e9e588 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/DaoModule.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/DaoModule.java @@ -23,7 +23,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import org.sonar.core.platform.Module; -import org.sonar.db.alm.AlmProjectMappingsDao; +import org.sonar.db.alm.ProjectAlmBindingsDao; import org.sonar.db.ce.CeActivityDao; import org.sonar.db.ce.CeQueueDao; import org.sonar.db.ce.CeScannerContextDao; @@ -106,7 +106,7 @@ public class DaoModule extends Module { GroupMembershipDao.class, GroupPermissionDao.class, AlmAppInstallDao.class, - AlmProjectMappingsDao.class, + ProjectAlmBindingsDao.class, InternalPropertiesDao.class, IssueChangeDao.class, IssueDao.class, diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/DbClient.java b/server/sonar-db-dao/src/main/java/org/sonar/db/DbClient.java index 2965acf71db..a6775767e91 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/DbClient.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/DbClient.java @@ -21,7 +21,7 @@ package org.sonar.db; import java.util.IdentityHashMap; import java.util.Map; -import org.sonar.db.alm.AlmProjectMappingsDao; +import org.sonar.db.alm.ProjectAlmBindingsDao; import org.sonar.db.ce.CeActivityDao; import org.sonar.db.ce.CeQueueDao; import org.sonar.db.ce.CeScannerContextDao; @@ -91,7 +91,7 @@ public class DbClient { private final QualityProfileDao qualityProfileDao; private final PropertiesDao propertiesDao; private final AlmAppInstallDao almAppInstallDao; - private final AlmProjectMappingsDao almProjectMappingsDao; + private final ProjectAlmBindingsDao projectAlmBindingsDao; private final InternalPropertiesDao internalPropertiesDao; private final SnapshotDao snapshotDao; private final ComponentDao componentDao; @@ -151,7 +151,7 @@ public class DbClient { map.put(dao.getClass(), dao); } almAppInstallDao = getDao(map, AlmAppInstallDao.class); - almProjectMappingsDao = getDao(map, AlmProjectMappingsDao.class); + projectAlmBindingsDao = getDao(map, ProjectAlmBindingsDao.class); schemaMigrationDao = getDao(map, SchemaMigrationDao.class); authorizationDao = getDao(map, AuthorizationDao.class); organizationDao = getDao(map, OrganizationDao.class); @@ -220,8 +220,8 @@ public class DbClient { return almAppInstallDao; } - public AlmProjectMappingsDao almProjectMappingsDao() { - return almProjectMappingsDao; + public ProjectAlmBindingsDao projectAlmBindingsDao() { + return projectAlmBindingsDao; } public SchemaMigrationDao schemaMigrationDao() { diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java b/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java index 74a37144ac9..9743df75701 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java @@ -31,8 +31,8 @@ import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.apache.ibatis.session.TransactionIsolationLevel; import org.sonar.api.Startable; import org.sonar.db.alm.AlmAppInstallMapper; -import org.sonar.db.alm.AlmProjectMappingDto; -import org.sonar.db.alm.AlmProjectMappingsMapper; +import org.sonar.db.alm.ProjectAlmBindingDto; +import org.sonar.db.alm.ProjectAlmBindingsMapper; import org.sonar.db.ce.CeActivityMapper; import org.sonar.db.ce.CeQueueMapper; import org.sonar.db.ce.CeScannerContextMapper; @@ -152,7 +152,6 @@ public class MyBatis implements Startable { // DTO aliases, keep them sorted alphabetically confBuilder.loadAlias("ActiveRule", ActiveRuleDto.class); confBuilder.loadAlias("ActiveRuleParam", ActiveRuleParamDto.class); - confBuilder.loadAlias("AlmProjectMapping", AlmProjectMappingDto.class); confBuilder.loadAlias("CeTaskCharacteristic", CeTaskCharacteristicDto.class); confBuilder.loadAlias("Component", ComponentDto.class); confBuilder.loadAlias("ComponentWithSnapshot", ComponentDtoWithSnapshotId.class); @@ -179,6 +178,7 @@ public class MyBatis implements Startable { confBuilder.loadAlias("PermissionTemplate", PermissionTemplateDto.class); confBuilder.loadAlias("PermissionTemplateUser", PermissionTemplateUserDto.class); confBuilder.loadAlias("Plugin", PluginDto.class); + confBuilder.loadAlias("ProjectAlmBinding", ProjectAlmBindingDto.class); confBuilder.loadAlias("ProjectQgateAssociation", ProjectQgateAssociationDto.class); confBuilder.loadAlias("ProjectMapping", ProjectMappingDto.class); confBuilder.loadAlias("PurgeableAnalysis", PurgeableAnalysisDto.class); @@ -202,9 +202,8 @@ public class MyBatis implements Startable { // keep them sorted alphabetically Class[] mappers = { ActiveRuleMapper.class, - AnalysisPropertiesMapper.class, AlmAppInstallMapper.class, - AlmProjectMappingsMapper.class, + AnalysisPropertiesMapper.class, AuthorizationMapper.class, BranchMapper.class, CeActivityMapper.class, @@ -213,7 +212,6 @@ public class MyBatis implements Startable { CeTaskInputMapper.class, CeTaskCharacteristicMapper.class, ComponentKeyUpdaterMapper.class, - ProjectLinkMapper.class, ComponentMapper.class, LiveMeasureMapper.class, CustomMeasureMapper.class, @@ -237,6 +235,8 @@ public class MyBatis implements Startable { PermissionTemplateCharacteristicMapper.class, PermissionTemplateMapper.class, PluginMapper.class, + ProjectAlmBindingsMapper.class, + ProjectLinkMapper.class, ProjectMappingsMapper.class, ProjectQgateAssociationMapper.class, PropertiesMapper.class, diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingDto.java similarity index 81% rename from server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingDto.java rename to server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingDto.java index 7c2fcf46798..db42d29e607 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingDto.java @@ -19,7 +19,7 @@ */ package org.sonar.db.alm; -public class AlmProjectMappingDto { +public class ProjectAlmBindingDto { private String uuid; private String almId; private String repoId; @@ -31,7 +31,7 @@ public class AlmProjectMappingDto { return almId; } - public AlmProjectMappingDto setAlmId(String almId) { + public ProjectAlmBindingDto setAlmId(String almId) { this.almId = almId; return this; } @@ -40,7 +40,7 @@ public class AlmProjectMappingDto { return repoId; } - public AlmProjectMappingDto setRepoId(String repoId) { + public ProjectAlmBindingDto setRepoId(String repoId) { this.repoId = repoId; return this; } @@ -49,7 +49,7 @@ public class AlmProjectMappingDto { return projectUuid; } - public AlmProjectMappingDto setProjectUuid(String projectUuid) { + public ProjectAlmBindingDto setProjectUuid(String projectUuid) { this.projectUuid = projectUuid; return this; } @@ -58,7 +58,7 @@ public class AlmProjectMappingDto { return githubSlug; } - public AlmProjectMappingDto setGithubSlug(String githubSlug) { + public ProjectAlmBindingDto setGithubSlug(String githubSlug) { this.githubSlug = githubSlug; return this; } @@ -67,7 +67,7 @@ public class AlmProjectMappingDto { return url; } - public AlmProjectMappingDto setUrl(String url) { + public ProjectAlmBindingDto setUrl(String url) { this.url = url; return this; } @@ -76,7 +76,7 @@ public class AlmProjectMappingDto { return uuid; } - public AlmProjectMappingDto setUuid(String uuid) { + public ProjectAlmBindingDto setUuid(String uuid) { this.uuid = uuid; return this; } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingsDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingsDao.java similarity index 81% rename from server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingsDao.java rename to server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingsDao.java index 6e7a3b2639c..f2d6cc18428 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingsDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingsDao.java @@ -32,12 +32,12 @@ import static com.google.common.base.Preconditions.checkArgument; import static org.apache.commons.lang.StringUtils.isNotEmpty; import static org.sonar.db.DatabaseUtils.executeLargeInputs; -public class AlmProjectMappingsDao implements Dao { +public class ProjectAlmBindingsDao implements Dao { private final System2 system2; private final UuidFactory uuidFactory; - public AlmProjectMappingsDao(System2 system2, UuidFactory uuidFactory) { + public ProjectAlmBindingsDao(System2 system2, UuidFactory uuidFactory) { this.system2 = system2; this.uuidFactory = uuidFactory; } @@ -48,7 +48,7 @@ public class AlmProjectMappingsDao implements Dao { checkArgument(isNotEmpty(projectUuid), "projectUuid can't be null nor empty"); checkArgument(isNotEmpty(url), "url can't be null nor empty"); - AlmProjectMappingsMapper mapper = getMapper(dbSession); + ProjectAlmBindingsMapper mapper = getMapper(dbSession); long now = system2.now(); if (mapper.update(alm.getId(), repoId, projectUuid, githubSlug, url, now) == 0) { @@ -56,19 +56,19 @@ public class AlmProjectMappingsDao implements Dao { } } - public boolean mappingExists(DbSession dbSession, ALM alm, String repoId) { + public boolean bindingExists(DbSession dbSession, ALM alm, String repoId) { checkAlm(alm); checkRepoId(repoId); - return getMapper(dbSession).mappingCount(alm.getId(), repoId) == 1; + return getMapper(dbSession).bindingCount(alm.getId(), repoId) == 1; } /** - * Gets a list or mappings by their repo_id. The result does NOT contain {@code null} values for mappings not found, so + * Gets a list of bindings by their repo_id. The result does NOT contain {@code null} values for bindings not found, so * the size of result may be less than the number of ids. *

Results may be in a different order as input ids.

*/ - public List selectByRepoIds(final DbSession session, ALM alm, Collection repoIds) { + public List selectByRepoIds(final DbSession session, ALM alm, Collection repoIds) { return executeLargeInputs(repoIds, partionnedIds -> getMapper(session).selectByRepoIds(alm.getId(), partionnedIds)); } @@ -80,7 +80,7 @@ public class AlmProjectMappingsDao implements Dao { checkArgument(isNotEmpty(repoId), "repoId can't be null nor empty"); } - private static AlmProjectMappingsMapper getMapper(DbSession dbSession) { - return dbSession.getMapper(AlmProjectMappingsMapper.class); + private static ProjectAlmBindingsMapper getMapper(DbSession dbSession) { + return dbSession.getMapper(ProjectAlmBindingsMapper.class); } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingsMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingsMapper.java similarity index 89% rename from server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingsMapper.java rename to server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingsMapper.java index 5baeafc91e2..9fa3f788f39 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmProjectMappingsMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingsMapper.java @@ -23,9 +23,9 @@ import java.util.List; import javax.annotation.Nullable; import org.apache.ibatis.annotations.Param; -public interface AlmProjectMappingsMapper { +public interface ProjectAlmBindingsMapper { - int mappingCount(@Param("almId") String almId, @Param("repoId") String repoId); + int bindingCount(@Param("almId") String almId, @Param("repoId") String repoId); void insert(@Param("uuid") String uuid, @Param("almId") String almId, @Param("repoId") String repoId, @Param("projectUuid") String projectUuid, @Nullable @Param("githubSlug") String githubSlug, @Param("url") String url, @Param("now") long now); @@ -33,5 +33,5 @@ public interface AlmProjectMappingsMapper { int update(@Param("almId") String almId, @Param("repoId") String repoId, @Param("projectUuid") String projectUuid, @Nullable @Param("githubSlug") String githubSlug, @Param("url") String url, @Param("now") long now); - List selectByRepoIds(@Param("almId") String almId, @Param("repoIds") List repoIds); + List selectByRepoIds(@Param("almId") String almId, @Param("repoIds") List repoIds); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java index ec3fe0d866f..80634fd8fa3 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java @@ -298,9 +298,9 @@ class PurgeCommands { profiler.stop(); } - void deleteAlmProjectMappings(String rootUuid) { - profiler.start("deleteAlmProjectMappings (alm_project_mappings)"); - purgeMapper.deleteAlmProjectMappingsByProjectUuid(rootUuid); + void deleteProjectAlmBindings(String rootUuid) { + profiler.start("deleteProjectAlmBindings (project_alm_bindings)"); + purgeMapper.deleteProjectAlmBindingsByProjectUuid(rootUuid); session.commit(); profiler.stop(); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java index 17060408739..c62dcbd14f2 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java @@ -203,7 +203,7 @@ public class PurgeDao implements Dao { commands.deleteCeQueue(rootUuid); commands.deleteWebhookDeliveries(rootUuid); commands.deleteProjectMappings(rootUuid); - commands.deleteAlmProjectMappings(rootUuid); + commands.deleteProjectAlmBindings(rootUuid); commands.deleteBranch(rootUuid); commands.deleteLiveMeasures(rootUuid); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java index 6d5d5e0d7d6..de1b8f47bfd 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java @@ -110,7 +110,7 @@ public interface PurgeMapper { void deleteProjectMappingsByProjectUuid(@Param("projectUuid") String projectUuid); - void deleteAlmProjectMappingsByProjectUuid(@Param("projectUuid") String projectUuid); + void deleteProjectAlmBindingsByProjectUuid(@Param("projectUuid") String projectUuid); void deleteBranchByUuid(@Param("uuid") String uuid); diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmProjectMappingsMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/ProjectAlmBindingsMapper.xml similarity index 81% rename from server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmProjectMappingsMapper.xml rename to server/sonar-db-dao/src/main/resources/org/sonar/db/alm/ProjectAlmBindingsMapper.xml index 6797a87ec56..b31e45e6481 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmProjectMappingsMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/ProjectAlmBindingsMapper.xml @@ -1,20 +1,20 @@ - + - select count(*) as count from - alm_project_mappings + project_alm_bindings where alm_id = #{almId, jdbcType=VARCHAR} and repo_id = #{repoId, jdbcType=VARCHAR} - INSERT INTO alm_project_mappings + INSERT INTO project_alm_bindings ( uuid, alm_id, @@ -38,7 +38,7 @@ - update alm_project_mappings set + update project_alm_bindings set project_uuid = #{projectUuid, jdbcType=VARCHAR}, github_slug = #{githubSlug, jdbcType=VARCHAR}, url = #{url, jdbcType=VARCHAR}, @@ -48,7 +48,7 @@ and repo_id = #{repoId, jdbcType=VARCHAR} - select uuid, alm_id as almId, @@ -56,7 +56,7 @@ project_uuid as projectUuid, github_slug as githubSlug, url - from alm_project_mappings + from project_alm_bindings where alm_id =#{almId, jdbcType=VARCHAR} and repo_id in diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml index a248eba7024..5e8535cd978 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml @@ -364,8 +364,8 @@ delete from project_mappings where project_uuid=#{projectUuid,jdbcType=VARCHAR} - - delete from alm_project_mappings where project_uuid=#{projectUuid,jdbcType=VARCHAR} + + delete from project_alm_bindings where project_uuid=#{projectUuid,jdbcType=VARCHAR} diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmProjectMappingsDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/ProjectAlmBindingsDaoTest.java similarity index 81% rename from server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmProjectMappingsDaoTest.java rename to server/sonar-db-dao/src/test/java/org/sonar/db/alm/ProjectAlmBindingsDaoTest.java index e8fba5bc38a..c0b5150d0b6 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmProjectMappingsDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/ProjectAlmBindingsDaoTest.java @@ -40,7 +40,7 @@ import static org.mockito.Mockito.when; import static org.sonar.db.alm.ALM.BITBUCKETCLOUD; import static org.sonar.db.alm.ALM.GITHUB; -public class AlmProjectMappingsDaoTest { +public class ProjectAlmBindingsDaoTest { private static final String A_UUID = "abcde1234"; private static final String ANOTHER_UUID = "xyz789"; @@ -67,7 +67,7 @@ public class AlmProjectMappingsDaoTest { private DbSession dbSession = dbTester.getSession(); private UuidFactory uuidFactory = mock(UuidFactory.class); - private AlmProjectMappingsDao underTest = new AlmProjectMappingsDao(system2, uuidFactory); + private ProjectAlmBindingsDao underTest = new ProjectAlmBindingsDao(system2, uuidFactory); @Test public void insert_throws_NPE_if_alm_is_null() { @@ -124,7 +124,7 @@ public class AlmProjectMappingsDaoTest { when(system2.now()).thenReturn(DATE); underTest.insertOrUpdate(dbSession, GITHUB, A_REPO, A_UUID, A_GITHUB_SLUG, A_URL); - assertThatAlmProjectMapping(GITHUB, A_REPO) + assertThatProjectAlmBinding(GITHUB, A_REPO) .hasProjectUuid(A_UUID) .hasGithubSlug(A_GITHUB_SLUG) .hasUrl(A_URL) @@ -141,7 +141,7 @@ public class AlmProjectMappingsDaoTest { when(system2.now()).thenReturn(DATE_LATER); underTest.insertOrUpdate(dbSession, GITHUB, A_REPO, ANOTHER_UUID, ANOTHER_GITHUB_SLUG, ANOTHER_URL); - assertThatAlmProjectMapping(GITHUB, A_REPO) + assertThatProjectAlmBinding(GITHUB, A_REPO) .hasProjectUuid(ANOTHER_UUID) .hasGithubSlug(ANOTHER_GITHUB_SLUG) .hasUrl(ANOTHER_URL) @@ -158,14 +158,14 @@ public class AlmProjectMappingsDaoTest { underTest.insertOrUpdate(dbSession, GITHUB, A_REPO, A_UUID, A_GITHUB_SLUG, A_URL); underTest.insertOrUpdate(dbSession, GITHUB, ANOTHER_REPO, ANOTHER_UUID, ANOTHER_GITHUB_SLUG, ANOTHER_URL); - assertThatAlmProjectMapping(GITHUB, A_REPO) + assertThatProjectAlmBinding(GITHUB, A_REPO) .hasProjectUuid(A_UUID) .hasGithubSlug(A_GITHUB_SLUG) .hasUrl(A_URL) .hasCreatedAt(DATE) .hasUpdatedAt(DATE); - assertThatAlmProjectMapping(GITHUB, ANOTHER_REPO) + assertThatProjectAlmBinding(GITHUB, ANOTHER_REPO) .hasProjectUuid(ANOTHER_UUID) .hasGithubSlug(ANOTHER_GITHUB_SLUG) .hasUrl(ANOTHER_URL) @@ -177,26 +177,26 @@ public class AlmProjectMappingsDaoTest { public void mappingExists_throws_NPE_when_alm_is_null() { expectAlmNPE(); - underTest.mappingExists(dbSession, null, A_REPO); + underTest.bindingExists(dbSession, null, A_REPO); } @Test public void mappingExists_throws_IAE_when_repo_id_is_null() { expectRepoIdNullOrEmptyIAE(); - underTest.mappingExists(dbSession, GITHUB, null); + underTest.bindingExists(dbSession, GITHUB, null); } @Test public void mappingExists_throws_IAE_when_repo_id_is_empty() { expectRepoIdNullOrEmptyIAE(); - underTest.mappingExists(dbSession, GITHUB, EMPTY_STRING); + underTest.bindingExists(dbSession, GITHUB, EMPTY_STRING); } @Test public void mappingExists_returns_false_when_entry_does_not_exist_in_DB() { - assertThat(underTest.mappingExists(dbSession, GITHUB, A_REPO)).isFalse(); + assertThat(underTest.bindingExists(dbSession, GITHUB, A_REPO)).isFalse(); } @Test @@ -204,7 +204,7 @@ public class AlmProjectMappingsDaoTest { when(uuidFactory.create()).thenReturn(A_UUID); underTest.insertOrUpdate(dbSession, GITHUB, A_REPO, A_UUID, A_GITHUB_SLUG, A_URL); - assertThat(underTest.mappingExists(dbSession, GITHUB, A_REPO)).isTrue(); + assertThat(underTest.bindingExists(dbSession, GITHUB, A_REPO)).isTrue(); } @Test @@ -219,7 +219,7 @@ public class AlmProjectMappingsDaoTest { underTest.insertOrUpdate(dbSession, BITBUCKETCLOUD, ANOTHER_REPO, "foo", null, "http://foo"); assertThat(underTest.selectByRepoIds(dbSession, GITHUB, Arrays.asList(A_REPO, ANOTHER_REPO, "foo"))) - .extracting(AlmProjectMappingDto::getUuid, AlmProjectMappingDto::getAlmId, AlmProjectMappingDto::getRepoId, AlmProjectMappingDto::getProjectUuid, AlmProjectMappingDto::getUrl, AlmProjectMappingDto::getGithubSlug) + .extracting(ProjectAlmBindingDto::getUuid, ProjectAlmBindingDto::getAlmId, ProjectAlmBindingDto::getRepoId, ProjectAlmBindingDto::getProjectUuid, ProjectAlmBindingDto::getUrl, ProjectAlmBindingDto::getGithubSlug) .containsExactlyInAnyOrder( tuple("uuid1", GITHUB.getId(), A_REPO, A_UUID, A_URL, A_GITHUB_SLUG), tuple("uuid2", GITHUB.getId(), ANOTHER_REPO, ANOTHER_UUID, ANOTHER_URL, null)); @@ -245,23 +245,23 @@ public class AlmProjectMappingsDaoTest { expectedException.expectMessage("url can't be null nor empty"); } - private AlmAppInstallAssert assertThatAlmProjectMapping(ALM alm, String repoId) { - return new AlmAppInstallAssert(dbTester, dbSession, alm, repoId); + private ProjectAlmBindingAssert assertThatProjectAlmBinding(ALM alm, String repoId) { + return new ProjectAlmBindingAssert(dbTester, dbSession, alm, repoId); } - private static class AlmAppInstallAssert extends AbstractAssert { + private static class ProjectAlmBindingAssert extends AbstractAssert { - private AlmAppInstallAssert(DbTester dbTester, DbSession dbSession, ALM alm, String repoId) { - super(asAlmProjectMapping(dbTester, dbSession, alm, repoId), AlmAppInstallAssert.class); + private ProjectAlmBindingAssert(DbTester dbTester, DbSession dbSession, ALM alm, String repoId) { + super(asProjectAlmBinding(dbTester, dbSession, alm, repoId), ProjectAlmBindingAssert.class); } - private static AlmProjectMapping asAlmProjectMapping(DbTester dbTester, DbSession dbSession, ALM alm, String repoId) { + private static ProjectAlmBinding asProjectAlmBinding(DbTester dbTester, DbSession dbSession, ALM alm, String repoId) { List> rows = dbTester.select( dbSession, "select" + " project_uuid as \"projectUuid\", github_slug as \"githubSlug\", url as \"url\", " + " created_at as \"createdAt\", updated_at as \"updatedAt\"" + - " from alm_project_mappings" + + " from project_alm_bindings" + " where alm_id='" + alm.getId() + "' and repo_id='" + repoId + "'"); if (rows.isEmpty()) { return null; @@ -269,7 +269,7 @@ public class AlmProjectMappingsDaoTest { if (rows.size() > 1) { throw new IllegalStateException("Unique index violation"); } - return new AlmProjectMapping( + return new ProjectAlmBinding( (String) rows.get(0).get("projectUuid"), (String) rows.get(0).get("githubSlug"), (String) rows.get(0).get("url"), @@ -281,48 +281,48 @@ public class AlmProjectMappingsDaoTest { isNull(); } - AlmAppInstallAssert hasProjectUuid(String expected) { + ProjectAlmBindingAssert hasProjectUuid(String expected) { isNotNull(); if (!Objects.equals(actual.projectUuid, expected)) { - failWithMessage("Expected ALM Project Mapping to have column PROJECT_UUID to be <%s> but was <%s>", expected, actual.projectUuid); + failWithMessage("Expected Project ALM Binding to have column PROJECT_UUID to be <%s> but was <%s>", expected, actual.projectUuid); } return this; } - AlmAppInstallAssert hasGithubSlug(String expected) { + ProjectAlmBindingAssert hasGithubSlug(String expected) { isNotNull(); if (!Objects.equals(actual.githubSlug, expected)) { - failWithMessage("Expected ALM Project Mapping to have column GITHUB_SLUG to be <%s> but was <%s>", expected, actual.githubSlug); + failWithMessage("Expected Project ALM Binding to have column GITHUB_SLUG to be <%s> but was <%s>", expected, actual.githubSlug); } return this; } - AlmAppInstallAssert hasUrl(String expected) { + ProjectAlmBindingAssert hasUrl(String expected) { isNotNull(); if (!Objects.equals(actual.url, expected)) { - failWithMessage("Expected ALM Project Mapping to have column URL to be <%s> but was <%s>", expected, actual.url); + failWithMessage("Expected Project ALM Binding to have column URL to be <%s> but was <%s>", expected, actual.url); } return this; } - AlmAppInstallAssert hasCreatedAt(long expected) { + ProjectAlmBindingAssert hasCreatedAt(long expected) { isNotNull(); if (!Objects.equals(actual.createdAt, expected)) { - failWithMessage("Expected ALM Project Mapping to have column CREATED_AT to be <%s> but was <%s>", expected, actual.createdAt); + failWithMessage("Expected Project ALM Binding to have column CREATED_AT to be <%s> but was <%s>", expected, actual.createdAt); } return this; } - AlmAppInstallAssert hasUpdatedAt(long expected) { + ProjectAlmBindingAssert hasUpdatedAt(long expected) { isNotNull(); if (!Objects.equals(actual.updatedAt, expected)) { - failWithMessage("Expected ALM Project Mapping to have column UPDATED_AT to be <%s> but was <%s>", expected, actual.updatedAt); + failWithMessage("Expected Project ALM Binding to have column UPDATED_AT to be <%s> but was <%s>", expected, actual.updatedAt); } return this; @@ -330,14 +330,14 @@ public class AlmProjectMappingsDaoTest { } - private static final class AlmProjectMapping { + private static final class ProjectAlmBinding { private final String projectUuid; private final String githubSlug; private final String url; private final Long createdAt; private final Long updatedAt; - AlmProjectMapping(@Nullable String projectUuid, @Nullable String githubSlug, @Nullable String url, @Nullable Long createdAt, @Nullable Long updatedAt) { + ProjectAlmBinding(@Nullable String projectUuid, @Nullable String githubSlug, @Nullable String url, @Nullable Long createdAt, @Nullable Long updatedAt) { this.projectUuid = projectUuid; this.githubSlug = githubSlug; this.url = url; diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java index 36f75d46862..73579845ada 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java @@ -622,19 +622,19 @@ public class PurgeDaoTest { } @Test - public void deleteProject_deletes_alm_project_mappings() { + public void deleteProject_deletes_project_alm_bindings() { ALM alm = ALM.GITHUB; String repoId = "123"; String otherRepoId = repoId + "-foo"; ComponentDto project = dbTester.components().insertPublicProject(); - dbClient.almProjectMappingsDao().insertOrUpdate(dbSession, alm, repoId, project.uuid(), null, "foo"); - dbClient.almProjectMappingsDao().insertOrUpdate(dbSession, alm, otherRepoId, "D2", null, "bar"); + dbClient.projectAlmBindingsDao().insertOrUpdate(dbSession, alm, repoId, project.uuid(), null, "foo"); + dbClient.projectAlmBindingsDao().insertOrUpdate(dbSession, alm, otherRepoId, "D2", null, "bar"); underTest.deleteProject(dbSession, project.uuid()); - assertThat(dbClient.almProjectMappingsDao().mappingExists(dbSession, alm, repoId)).isFalse(); - assertThat(dbClient.almProjectMappingsDao().mappingExists(dbSession, alm, otherRepoId)).isTrue(); + assertThat(dbClient.projectAlmBindingsDao().bindingExists(dbSession, alm, repoId)).isFalse(); + assertThat(dbClient.projectAlmBindingsDao().bindingExists(dbSession, alm, otherRepoId)).isTrue(); } @Test diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTable.java similarity index 94% rename from server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTable.java rename to server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTable.java index 6264cef7962..282504a2569 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTable.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTable.java @@ -30,13 +30,12 @@ import org.sonar.server.platform.db.migration.sql.CreateTableBuilder; import org.sonar.server.platform.db.migration.step.DdlChange; import static org.sonar.server.platform.db.migration.def.BigIntegerColumnDef.newBigIntegerColumnDefBuilder; -import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.MAX_SIZE; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.newVarcharColumnDefBuilder; -public class CreateAlmProjectMappingsTable extends DdlChange { +public class CreateProjectAlmBindingsTable extends DdlChange { - private static final String TABLE_NAME = "alm_project_mappings"; + private static final String TABLE_NAME = "project_alm_bindings"; private static final VarcharColumnDef UUID = newVarcharColumnDefBuilder() .setColumnName("uuid") @@ -77,7 +76,7 @@ public class CreateAlmProjectMappingsTable extends DdlChange { .setIsNullable(false) .build(); - public CreateAlmProjectMappingsTable(Database db) { + public CreateProjectAlmBindingsTable(Database db) { super(db); } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73.java index b996ea12a5c..7549bf7bc59 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73.java @@ -40,7 +40,7 @@ public class DbVersion73 implements DbVersion { .add(2210, "Add 'securityhotspotadmin' permission to templates characteristics already having 'issueadmin'", PopulateHotspotAdminPermissionOnTemplatesCharacteristics.class) .add(2211, "Set SUBSCRIPTION not nullable in ORGANIZATIONS", SetSubscriptionOnOrganizationsNotNullable.class) .add(2212, "Add index on ORGANIZATION_MEMBERS", AddIndexOnOrganizationMembers.class) - .add(2213, "Create table to store alm project mappings", CreateAlmProjectMappingsTable.class) + .add(2213, "Create table to store project ALM bindings", CreateProjectAlmBindingsTable.class) ; } } diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTableTest.java similarity index 89% rename from server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTableTest.java rename to server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTableTest.java index 79557d02099..3c294c47921 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTableTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTableTest.java @@ -28,14 +28,14 @@ import static java.sql.Types.BIGINT; import static java.sql.Types.VARCHAR; import static org.assertj.core.api.Assertions.assertThat; -public class CreateAlmProjectMappingsTableTest { +public class CreateProjectAlmBindingsTableTest { - private static final String TABLE = "alm_project_mappings"; + private static final String TABLE = "project_alm_bindings"; @Rule - public final CoreDbTester db = CoreDbTester.createForSchema(CreateAlmProjectMappingsTableTest.class, "empty.sql"); + public final CoreDbTester db = CoreDbTester.createForSchema(CreateProjectAlmBindingsTableTest.class, "empty.sql"); - private CreateAlmProjectMappingsTable underTest = new CreateAlmProjectMappingsTable(db.database()); + private CreateProjectAlmBindingsTable underTest = new CreateProjectAlmBindingsTable(db.database()); @Test public void creates_table_on_empty_db() throws SQLException { diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73Test.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73Test.java index fbd6a8fd21e..9f36bc3591f 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73Test.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v73/DbVersion73Test.java @@ -35,6 +35,6 @@ public class DbVersion73Test { @Test public void verify_migration_count() { - verifyMigrationCount(underTest, 13); + verifyMigrationCount(underTest, 14); } } diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTableTest/empty.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTableTest/empty.sql similarity index 100% rename from server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v73/CreateAlmProjectMappingsTableTest/empty.sql rename to server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v73/CreateProjectAlmBindingsTableTest/empty.sql -- 2.39.5