diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2014-06-09 17:37:47 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2014-06-09 18:06:58 +0200 |
commit | 151d1a9baa04c0a067c23c4351c7e7df73dc0d15 (patch) | |
tree | 49e0ed9813f579ea70ca31a9d43db0ef6b335079 | |
parent | 60b19ea78d30f65470a9a2bfa0383ca8d3a2e121 (diff) | |
download | sonarqube-151d1a9baa04c0a067c23c4351c7e7df73dc0d15.tar.gz sonarqube-151d1a9baa04c0a067c23c4351c7e7df73dc0d15.zip |
SONAR-5007 add getDefault() to QProfileService
5 files changed, 23 insertions, 56 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java index 1d3657b576d..ae42df99f3a 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java @@ -45,6 +45,23 @@ public class QProfileFactory implements ServerComponent { this.previewCache = previewCache; } + @CheckForNull + QualityProfileKey getDefault(String language) { + DbSession dbSession = db.openSession(false); + try { + QualityProfileDto profile = getDefault(dbSession, language); + return profile != null ? profile.getKey() : null; + } finally { + dbSession.close(); + } + } + + @CheckForNull + QualityProfileDto getDefault(DbSession session, String language) { + return db.qualityProfileDao().selectDefaultProfile(language, PROFILE_PROPERTY_PREFIX + language, session); + } + + void setDefault(QualityProfileKey key) { DbSession dbSession = db.openSession(false); try { @@ -66,11 +83,6 @@ public class QProfileFactory implements ServerComponent { .setValue(profile.getName())); } - @CheckForNull - private QualityProfileDto getDefault(DbSession session, String language) { - return db.qualityProfileDao().selectDefaultProfile(language, PROFILE_PROPERTY_PREFIX + language, session); - } - void delete(QualityProfileKey key) { DbSession session = db.openSession(false); try { diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileLookup.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileLookup.java index 0aa53c0c725..8d890cdab0a 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileLookup.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileLookup.java @@ -148,23 +148,6 @@ public class QProfileLookup implements ServerComponent { return ancestors; } - public boolean isDeletable(QProfile profile, DbSession session) { - QProfile defaultProfile = defaultProfile(profile.language(), session); - if (defaultProfile != null && (defaultProfile.id() == profile.id())) { - return false; - } - return countChildren(profile, session) == 0; - } - - public boolean isDeletable(QProfile profile) { - DbSession session = myBatis.openSession(false); - try { - return isDeletable(profile, session); - } finally { - MyBatis.closeQuietly(session); - } - } - private void incrementAncestors(QProfile profile, List<QProfile> ancestors, DbSession session) { if (profile.parent() != null) { QualityProfileDto parentDto = dao.selectParent(profile.id(), session); diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java index 9e044a0f6a9..41b98160a97 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java @@ -193,6 +193,11 @@ public class QProfileService implements ServerComponent { factory.setDefault(key); } + @CheckForNull + public QualityProfileKey getDefault(String language) { + return factory.getDefault(language); + } + private void verifyAdminPermission() { UserSession.get().checkLoggedIn(); UserSession.get().checkGlobalPermission(GlobalPermissions.QUALITY_PROFILE_ADMIN); diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileLookupTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileLookupTest.java index a4840b63aaf..ffe9d347ef4 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileLookupTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileLookupTest.java @@ -183,31 +183,4 @@ public class QProfileLookupTest { } } - @Test - public void is_deletable_if_not_default_profile_and_have_no_children() throws Exception { - when(dao.countChildren("Sonar Way", "java", session)).thenReturn(0); - - assertThat(search.isDeletable(new QProfile().setId(2).setName("Sonar Way").setLanguage("java"))).isTrue(); - } - - @Test - public void is_not_deletable_if_is_default_profile() throws Exception { - when(dao.selectDefaultProfile("java", "sonar.profile.java", session)).thenReturn( - new QualityProfileDto().setId(1).setName("Sonar Way").setLanguage("java") - ); - when(dao.countChildren("Sonar Way", "java", session)).thenReturn(0); - - assertThat(search.isDeletable(new QProfile().setId(1).setName("Sonar Way").setLanguage("java"))).isFalse(); - } - - @Test - public void is_not_deletable_if_have_children() throws Exception { - when(dao.selectDefaultProfile("java", "sonar.profile.java", session)).thenReturn( - new QualityProfileDto().setId(1).setName("Sonar Way").setLanguage("java") - ); - when(dao.countChildren("Sonar Way", "java", session)).thenReturn(1); - - assertThat(search.isDeletable(new QProfile().setId(2).setName("Sonar Way").setLanguage("java"))).isFalse(); - } - } diff --git a/sonar-server/src/test/java/org/sonar/server/tester/BackendCleanup.java b/sonar-server/src/test/java/org/sonar/server/tester/BackendCleanup.java index 71a32dd47b3..96ec59e0543 100644 --- a/sonar-server/src/test/java/org/sonar/server/tester/BackendCleanup.java +++ b/sonar-server/src/test/java/org/sonar/server/tester/BackendCleanup.java @@ -21,8 +21,6 @@ package org.sonar.server.tester; import org.elasticsearch.client.Client; import org.elasticsearch.index.query.QueryBuilders; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.sonar.api.ServerComponent; import org.sonar.core.persistence.DatabaseVersion; import org.sonar.core.persistence.DbSession; @@ -33,8 +31,6 @@ import java.sql.Connection; public class BackendCleanup implements ServerComponent { - private static final Logger LOG = LoggerFactory.getLogger(BackendCleanup.class); - private final ESNode esNode; private final MyBatis myBatis; @@ -52,7 +48,6 @@ public class BackendCleanup implements ServerComponent { DbSession dbSession = myBatis.openSession(false); Connection connection = dbSession.getConnection(); try { - LOG.info("Truncate db tables"); for (String table : DatabaseVersion.TABLES) { try { connection.createStatement().execute("TRUNCATE TABLE " + table.toLowerCase()); @@ -69,10 +64,9 @@ public class BackendCleanup implements ServerComponent { } public void clearIndexes() { - LOG.info("Truncate es indices"); Client client = esNode.client(); client.prepareDeleteByQuery(client.admin().cluster().prepareState().get() - .getState().getMetaData().concreteAllIndices()) + .getState().getMetaData().concreteAllIndices()) .setQuery(QueryBuilders.matchAllQuery()) .get(); |