From 9aa4ba88f6e5905fd17d20ec816defd69aa92f33 Mon Sep 17 00:00:00 2001 From: Eric Hartmann Date: Fri, 1 Dec 2017 11:57:03 +0100 Subject: [PATCH] SONAR-10134 Add QUALITY_GATES.UUID column --- .../org/sonar/db/version/rows-h2.sql | 2 +- .../org/sonar/db/version/schema-h2.ddl | 2 + .../sonar/db/qualitygate/QualityGateDto.java | 10 ++ .../db/qualitygate/QualityGateMapper.xml | 8 +- .../db/qualitygate/QualityGateDaoTest.java | 5 +- .../db/qualitygate/QualityGateDbTester.java | 2 + .../QualityProfileDbTester.java | 6 +- .../ProjectQgateAssociationDaoTest/shared.xml | 4 +- .../version/v70/AddUuidToQualityGates.java | 44 ++++++ .../db/migration/version/v70/DbVersion70.java | 4 + .../MakeUuidNotNullableOnQualityGates.java | 56 ++++++++ .../v70/PopulateUuidOnQualityGates.java | 56 ++++++++ .../v70/AddUuidToQualityGatesTest.java | 54 ++++++++ .../version/v70/DbVersion70Test.java | 2 +- ...MakeUuidNotNullableOnQualityGatesTest.java | 55 ++++++++ .../v70/PopulateUuidOnQualityGatesTest.java | 126 ++++++++++++++++++ .../quality_gates.sql | 8 ++ .../quality_gates.sql | 9 ++ .../quality_gates.sql | 9 ++ .../qualitygate/QualityGateUpdater.java | 10 +- .../server/qualitygate/QualityGates.java | 7 +- .../qualitygate/RegisterQualityGates.java | 6 +- .../qualitygate/QgateProjectFinderTest.java | 17 +-- .../qualitygate/QualityGateUpdaterTest.java | 12 +- .../server/qualitygate/QualityGatesTest.java | 3 +- .../qualitygate/RegisterQualityGatesTest.java | 23 ++-- .../qualitygate/ws/CreateActionTest.java | 3 +- .../qualitygate/ws/DeselectActionTest.java | 6 +- .../ws/GetByProjectActionTest.java | 3 +- .../qualitygate/ws/SelectActionTest.java | 3 +- 30 files changed, 508 insertions(+), 47 deletions(-) create mode 100644 server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v70/AddUuidToQualityGates.java create mode 100644 server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v70/MakeUuidNotNullableOnQualityGates.java create mode 100644 server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v70/PopulateUuidOnQualityGates.java create mode 100644 server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v70/AddUuidToQualityGatesTest.java create mode 100644 server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v70/MakeUuidNotNullableOnQualityGatesTest.java create mode 100644 server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v70/PopulateUuidOnQualityGatesTest.java create mode 100644 server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v70/AddUuidToQualityGatesTest/quality_gates.sql create mode 100644 server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v70/MakeUuidNotNullableOnQualityGatesTest/quality_gates.sql create mode 100644 server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v70/PopulateUuidOnQualityGatesTest/quality_gates.sql diff --git a/server/sonar-db-core/src/main/resources/org/sonar/db/version/rows-h2.sql b/server/sonar-db-core/src/main/resources/org/sonar/db/version/rows-h2.sql index 62b162cb561..4daf0dff72c 100644 --- a/server/sonar-db-core/src/main/resources/org/sonar/db/version/rows-h2.sql +++ b/server/sonar-db-core/src/main/resources/org/sonar/db/version/rows-h2.sql @@ -5,7 +5,7 @@ INSERT INTO GROUPS(ID, ORGANIZATION_UUID, NAME, DESCRIPTION, CREATED_AT, UPDATED INSERT INTO GROUPS(ID, ORGANIZATION_UUID, NAME, DESCRIPTION, CREATED_AT, UPDATED_AT) VALUES (2, 'AVdqnciQUUs7Zd3KPvFD', 'sonar-users', 'Any new users created will automatically join this group', '2011-09-26 22:27:51.0', '2011-09-26 22:27:51.0'); ALTER TABLE GROUPS ALTER COLUMN ID RESTART WITH 3; -INSERT INTO QUALITY_GATES(ID, NAME, IS_BUILT_IN, CREATED_AT, UPDATED_AT) VALUES (1, 'Sonar Way', true, '2011-09-26 22:27:51.0', '2011-09-26 22:27:51.0'); +INSERT INTO QUALITY_GATES(ID, UUID, NAME, IS_BUILT_IN, CREATED_AT, UPDATED_AT) VALUES (1, 'AWASGWAKYOI_InFKS3UF', 'Sonar Way', true, '2011-09-26 22:27:51.0', '2011-09-26 22:27:51.0'); INSERT INTO ORGANIZATIONS (UUID, KEE, NAME, GUARDED, NEW_PROJECT_PRIVATE, DEFAULT_GROUP_ID, DEFAULT_QUALITY_GATE_UUID, CREATED_AT, UPDATED_AT) VALUES ('AVdqnciQUUs7Zd3KPvFD', 'default-organization', 'Default Organization', true, false, 2, 1, '1474962596482', '1474962596482'); INSERT INTO INTERNAL_PROPERTIES (KEE, IS_EMPTY, TEXT_VALUE, CREATED_AT) VALUES ('organization.default', false, 'AVdqnciQUUs7Zd3KPvFD', '1474962596482'); 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 45c29bee706..1b1db706784 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 @@ -229,12 +229,14 @@ CREATE UNIQUE INDEX "EVENTS_UUID" ON "EVENTS" ("UUID"); CREATE TABLE "QUALITY_GATES" ( "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "UUID" VARCHAR(40) NOT NULL, "NAME" VARCHAR(100) NOT NULL, "IS_BUILT_IN" BOOLEAN NOT NULL, "CREATED_AT" TIMESTAMP, "UPDATED_AT" TIMESTAMP, ); CREATE UNIQUE INDEX "UNIQ_QUALITY_GATES" ON "QUALITY_GATES" ("NAME"); +CREATE UNIQUE INDEX "UNIQ_QUALITY_GATES_UUID" ON "QUALITY_GATES" ("UUID"); CREATE TABLE "QUALITY_GATE_CONDITIONS" ( diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDto.java index 2e0d294825c..1d75a2ef048 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDto.java @@ -28,10 +28,20 @@ public class QualityGateDto { private Long id; private String name; + private String uuid; private boolean isBuiltIn; private Date createdAt; private Date updatedAt; + public String getUuid() { + return uuid; + } + + public QualityGateDto setUuid(String uuid) { + this.uuid = uuid; + return this; + } + public Long getId() { return id; } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml index 9454c6a5070..35bd1ace13e 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml @@ -4,12 +4,12 @@ - insert into quality_gates (name, is_built_in, created_at, updated_at) - values (#{name}, #{isBuiltIn}, #{createdAt}, #{updatedAt}) + insert into quality_gates (name, uuid, is_built_in, created_at, updated_at) + values (#{name}, #{uuid}, #{isBuiltIn}, #{createdAt}, #{updatedAt}) - id, name, is_built_in as isBuiltIn, created_at as createdAt, updated_at as updatedAt + id, name, uuid, is_built_in as isBuiltIn, created_at as createdAt, updated_at as updatedAt