]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8857 allow qprofiles with same lang and name in different orgs
authorDaniel Schwarz <daniel.schwarz@sonarsource.com>
Fri, 3 Mar 2017 14:34:43 +0000 (15:34 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 23 Mar 2017 16:38:34 +0000 (17:38 +0100)
server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileMapper.java
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java

index 055a84f83d5e091dc01fc746c1e28859d77417c7..41540f586626b968dda180270205cb5a839e519c 100644 (file)
@@ -149,15 +149,32 @@ public class QualityProfileDao implements Dao {
     return descendants;
   }
 
+  /**
+   * @deprecated provide organization
+   */
+  @Deprecated
   @CheckForNull
   public QualityProfileDto selectByNameAndLanguage(String name, String language, DbSession session) {
     return mapper(session).selectByNameAndLanguage(name, language);
   }
 
+  @CheckForNull
+  public QualityProfileDto selectByNameAndLanguage(String organizationUuid, String name, String language, DbSession session) {
+    return mapper(session).selectByNameAndLanguage(organizationUuid, name, language);
+  }
+
+  /**
+   * @deprecated provide organization
+   */
+  @Deprecated
   public List<QualityProfileDto> selectByNameAndLanguages(String name, Collection<String> languageKeys, DbSession session) {
     return executeLargeInputs(languageKeys, input -> mapper(session).selectByNameAndLanguages(name, input));
   }
 
+  public List<QualityProfileDto> selectByNameAndLanguages(String organizationUuid, String name, Collection<String> languageKeys, DbSession session) {
+    return executeLargeInputs(languageKeys, input -> mapper(session).selectByNameAndLanguages(organizationUuid, name, input));
+  }
+
   public List<ComponentDto> selectProjects(String profileName, String language, DbSession session) {
     return mapper(session).selectProjects(profileName, language);
   }
index a44f43ce468d54a09575c623e22010e42adb3537..3a939ec57d0646c9ef0f1295d53b0b090810af70 100644 (file)
@@ -39,11 +39,24 @@ public interface QualityProfileMapper {
 
   List<QualityProfileDto> selectDefaultProfiles(@Param("languages") List<String> languages);
 
+  /**
+   * @deprecated provide organization
+   */
+  @Deprecated
   @CheckForNull
   QualityProfileDto selectByNameAndLanguage(@Param("name") String name, @Param("language") String language);
 
+  @CheckForNull
+  QualityProfileDto selectByNameAndLanguage(@Param("organizationUuid") String organizationUuid, @Param("name") String name, @Param("language") String language);
+
+  /**
+   * @deprecated provide organization
+   */
+  @Deprecated
   List<QualityProfileDto> selectByNameAndLanguages(@Param("name") String name, @Param("languages") List<String> languages);
 
+  List<QualityProfileDto> selectByNameAndLanguages(@Param("organizationUuid") String organizationUuid, @Param("name") String name, @Param("languages") List<String> languages);
+
   @CheckForNull
   QualityProfileDto selectById(@Param("id") Integer id);
 
index b6bcee7cc1224fc025ea143692054823f929650e..891440a56c6243b293f894db81d356e9d8626b52 100644 (file)
@@ -56,7 +56,7 @@ public class QProfileFactory {
 
   QualityProfileDto getOrCreate(DbSession dbSession, String organizationUuid, QProfileName name) {
     Preconditions.checkArgument(StringUtils.isNotEmpty(organizationUuid), "Organization is required, when creating a quality profile.");
-    QualityProfileDto profile = db.qualityProfileDao().selectByNameAndLanguage(name.getName(), name.getLanguage(), dbSession);
+    QualityProfileDto profile = db.qualityProfileDao().selectByNameAndLanguage(organizationUuid, name.getName(), name.getLanguage(), dbSession);
     if (profile == null) {
       profile = doCreate(dbSession, organizationUuid, name);
     }
@@ -65,7 +65,7 @@ public class QProfileFactory {
 
   public QualityProfileDto create(DbSession dbSession, String organizationUuid, QProfileName name) {
     Preconditions.checkArgument(StringUtils.isNotEmpty(organizationUuid), "Organization is required, when creating a quality profile.");
-    QualityProfileDto dto = db.qualityProfileDao().selectByNameAndLanguage(name.getName(), name.getLanguage(), dbSession);
+    QualityProfileDto dto = db.qualityProfileDao().selectByNameAndLanguage(organizationUuid, name.getName(), name.getLanguage(), dbSession);
     checkRequest(dto == null, "Quality profile already exists: %s", name);
     return doCreate(dbSession, organizationUuid, name);
   }