From e88bf5b78cf19d5fd42bf12189499d5743d19367 Mon Sep 17 00:00:00 2001 From: Jacek Date: Wed, 16 Dec 2020 10:54:20 +0100 Subject: [PATCH] SONAR-13999 drop completely usage of association between QualityGate and Organization --- .../sonar/db/qualitygate/QGateWithOrgDto.java | 69 ------------- .../sonar/db/qualitygate/QualityGateDao.java | 62 +----------- .../db/qualitygate/QualityGateMapper.java | 14 +-- .../db/qualitygate/QualityGateMapper.xml | 51 +--------- .../db/qualitygate/QualityGateDaoTest.java | 97 +++++++------------ .../db/qualitygate/QualityGateDbTester.java | 18 +--- .../organization/OrganizationUpdaterImpl.java | 1 - .../qualitygate/QualityGateUpdater.java | 1 - .../server/metric/ws/DeleteActionTest.java | 8 +- .../qualitygate/ws/DestroyActionTest.java | 2 - 10 files changed, 46 insertions(+), 277 deletions(-) delete mode 100644 server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QGateWithOrgDto.java diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QGateWithOrgDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QGateWithOrgDto.java deleted file mode 100644 index 0289a88ca77..00000000000 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QGateWithOrgDto.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2020 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.db.qualitygate; - -import java.util.Date; - -/** - * This Dto is a join between QualityGates and Organizations. - * - * Tables : QUALITY_GATES joined with ORG_QUALITY_GATES - */ -public class QGateWithOrgDto extends QualityGateDto { - private String organizationUuid; - - public String getOrganizationUuid() { - return organizationUuid; - } - - public void setOrganizationUuid(String organizationUuid) { - this.organizationUuid = organizationUuid; - } - - @Override - public QGateWithOrgDto setUuid(String uuid) { - super.setUuid(uuid); - return this; - } - - @Override - public QGateWithOrgDto setName(String name) { - super.setName(name); - return this; - } - - @Override - public QGateWithOrgDto setBuiltIn(boolean builtIn) { - super.setBuiltIn(builtIn); - return this; - } - - @Override - public QGateWithOrgDto setCreatedAt(Date createdAt) { - super.setCreatedAt(createdAt); - return this; - } - - @Override - public QGateWithOrgDto setUpdatedAt(Date updatedAt) { - super.setUpdatedAt(updatedAt); - return this; - } -} diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java index b0d65fe64b7..18307a0b973 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java @@ -26,18 +26,13 @@ import org.sonar.core.util.UuidFactory; import org.sonar.db.Dao; import org.sonar.db.DatabaseUtils; import org.sonar.db.DbSession; -import org.sonar.db.organization.OrganizationDto; -import org.sonar.db.property.InternalPropertiesDao; public class QualityGateDao implements Dao { - private static final String DEFAULT_ORGANIZATION_PROPERTY_KEY = "organization.default"; private final UuidFactory uuidFactory; - private final InternalPropertiesDao internalPropertiesDao; - public QualityGateDao(UuidFactory uuidFactory, InternalPropertiesDao internalPropertiesDao) { + public QualityGateDao(UuidFactory uuidFactory) { this.uuidFactory = uuidFactory; - this.internalPropertiesDao = internalPropertiesDao; } public QualityGateDto insert(DbSession session, QualityGateDto newQualityGate) { @@ -47,30 +42,8 @@ public class QualityGateDao implements Dao { return newQualityGate; } - /** - * @deprecated drop when org are dropped - */ - @Deprecated - public void associate(DbSession dbSession, String uuid, OrganizationDto organization, QualityGateDto qualityGate) { - mapper(dbSession).insertOrgQualityGate(uuid, organization.getUuid(), qualityGate.getUuid()); - } - - public void associate(DbSession dbSession, String uuid, QualityGateDto qualityGate) { - String defaultOrganizationUuid = getDefaultOrganizationUuid(dbSession); - mapper(dbSession).insertOrgQualityGate(uuid, defaultOrganizationUuid, qualityGate.getUuid()); - } - public Collection selectAll(DbSession session) { - String defaultOrganizationUuid = getDefaultOrganizationUuid(session); - return selectAll(session, defaultOrganizationUuid); - } - - /** - * @deprecated drop when org are dropped - */ - @Deprecated - public Collection selectAll(DbSession session, String organizationUuid) { - return mapper(session).selectAll(organizationUuid); + return mapper(session).selectAll(); } @CheckForNull @@ -83,30 +56,8 @@ public class QualityGateDao implements Dao { return mapper(session).selectByUuid(uuid); } - @CheckForNull - public QGateWithOrgDto selectByDefaultOrganizationAndUuid(DbSession dbSession, String qualityGateUuid) { - String defaultOrganizationUuid = getDefaultOrganizationUuid(dbSession); - return mapper(dbSession).selectByUuidAndOrganization(qualityGateUuid, defaultOrganizationUuid); - } - - /** - * @deprecated drop when org are dropped - */ - @CheckForNull - @Deprecated - public QGateWithOrgDto selectByOrganizationAndUuid(DbSession dbSession, OrganizationDto organization, String qualityGateUuid) { - return mapper(dbSession).selectByUuidAndOrganization(qualityGateUuid, organization.getUuid()); - } - - @CheckForNull - public QGateWithOrgDto selectByDefaultOrganizationAndName(DbSession session, String name) { - String defaultOrganizationUuid = getDefaultOrganizationUuid(session); - return mapper(session).selectByNameAndOrganization(name, defaultOrganizationUuid); - } - public void delete(QualityGateDto qGate, DbSession session) { mapper(session).delete(qGate.getUuid()); - mapper(session).deleteOrgQualityGatesByQualityGateUuid(qGate.getUuid()); } public void deleteByUuids(DbSession session, Collection uuids) { @@ -114,10 +65,6 @@ public class QualityGateDao implements Dao { DatabaseUtils.executeLargeUpdates(uuids, mapper::deleteByUuids); } - public void deleteOrgQualityGatesByOrganization(DbSession session, OrganizationDto organization) { - mapper(session).deleteOrgQualityGatesByOrganization(organization.getUuid()); - } - public void update(QualityGateDto qGate, DbSession session) { mapper(session).update(qGate.setUpdatedAt(new Date())); } @@ -137,9 +84,4 @@ public class QualityGateDao implements Dao { public QualityGateDto selectByProjectUuid(DbSession dbSession, String projectUuid) { return mapper(dbSession).selectByProjectUuid(projectUuid); } - - private String getDefaultOrganizationUuid(DbSession dbSession) { - return internalPropertiesDao.selectByKey(dbSession, DEFAULT_ORGANIZATION_PROPERTY_KEY) - .orElseThrow(() -> new IllegalStateException("Default organization does not exist.")); - } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java index b30c4c86cc9..12c8657f25d 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateMapper.java @@ -27,28 +27,16 @@ public interface QualityGateMapper { void insertQualityGate(QualityGateDto qualityGate); - void insertOrgQualityGate(@Param("uuid") String uuid, @Param("organizationUuid") String organizationUuid, @Param("qualityGateUuid") String qualityGateUuuid); - - List selectAll(@Param("organizationUuid") String organizationUuid); + List selectAll(); QualityGateDto selectByName(String name); - QGateWithOrgDto selectByUuidAndOrganization(@Param("qualityGateUuid") String qualityGateUuid, @Param("organizationUuid") String organizationUuid); - - QGateWithOrgDto selectByNameAndOrganization(@Param("name") String name, @Param("organizationUuid") String organizationUuid); - - QGateWithOrgDto selectDefault(@Param("organizationUuid") String organizationUuid); - QualityGateDto selectBuiltIn(); void delete(String uuid); void deleteByUuids(@Param("uuids") Collection uuids); - void deleteOrgQualityGatesByQualityGateUuid(String uuid); - - void deleteOrgQualityGatesByOrganization(@Param("organizationUuid") String organizationUuid); - void update(QualityGateDto qGate); void ensureOneBuiltInQualityGate(String builtInQualityName); 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 3668da9ca75..494bccb3f6d 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 @@ -7,31 +7,15 @@ uuid, name, is_built_in as isBuiltIn, created_at as createdAt, updated_at as updatedAt - - qg.uuid as uuid, - qg.name as name, - qg.is_built_in as isBuiltIn, - oqg.organization_uuid as organizationUuid, - qg.created_at as createdAt, - qg.updated_at as updatedAd - - insert into quality_gates (uuid, name, is_built_in, created_at, updated_at) values (#{uuid, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR}, #{isBuiltIn, jdbcType=BOOLEAN}, #{createdAt, jdbcType=TIMESTAMP}, #{updatedAt, jdbcType=TIMESTAMP}) - - INSERT INTO org_quality_gates (uuid, organization_uuid, quality_gate_uuid) - VALUES (#{uuid, jdbcType=VARCHAR}, #{organizationUuid, jdbcType=VARCHAR}, #{qualityGateUuid, jdbcType=VARCHAR}) - - - SELECT - + FROM quality_gates qg - INNER JOIN - org_quality_gates oqg ON oqg.quality_gate_uuid = qg.uuid AND oqg.organization_uuid = #{organizationUuid, jdbcType=VARCHAR} ORDER BY qg.name ASC @@ -49,28 +33,6 @@ where uuid=#{uuid, jdbcType=VARCHAR} - - - -