]> source.dussan.org Git - sonarqube.git/commitdiff
Revert "SONAR-2977 Setting a profile to default via the API doesn't work"
authorFabrice Bellingard <bellingard@gmail.com>
Mon, 19 Mar 2012 06:19:49 +0000 (07:19 +0100)
committerFabrice Bellingard <bellingard@gmail.com>
Mon, 19 Mar 2012 06:19:49 +0000 (07:19 +0100)
This reverts commit 43012d7d54f1a0bdff26c4cc4f656ea8e4e1b93d.

sonar-server/src/main/java/org/sonar/server/startup/ActivateDefaultProfiles.java
sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedProfiles.java

index bf6e1f066903f23e1034c8d8f34bcf8de6cbc11b..3d63834ca6167b852ccd71a9174cb45863228a41 100644 (file)
@@ -52,12 +52,12 @@ public final class ActivateDefaultProfiles {
     RulesProfile profileToActivate = null;
     boolean oneProfileIsActivated = false;
     if (profiles.isEmpty()) {
-      profileToActivate = RulesProfile.create("Default " + language.getName(), language.getKey());
-      profileToActivate.setDefaultProfile(true);
-      profileToActivate.setProvided(false);
+      profileToActivate = new RulesProfile("Default " + language.getName(), language.getKey(), true, false);
+
     } else if (profiles.size() == 1) {
       profileToActivate = profiles.get(0);
-    } else if (noProfileAlreadyActivated(profiles)) {
+
+    } else {
       Iterator<RulesProfile> iterator = profiles.iterator();
       while (iterator.hasNext() && !oneProfileIsActivated) {
         RulesProfile profile = iterator.next();
@@ -66,8 +66,10 @@ public final class ActivateDefaultProfiles {
           profileToActivate = profile;
         }
       }
-      if (!oneProfileIsActivated && profileToActivate == null) {
-        profileToActivate = profiles.get(0);
+      if (!oneProfileIsActivated) {
+        if (profileToActivate == null) {
+          profileToActivate = profiles.get(0);
+        }
       }
     }
     if (!oneProfileIsActivated && profileToActivate != null) {
@@ -75,13 +77,4 @@ public final class ActivateDefaultProfiles {
       session.saveWithoutFlush(profileToActivate);
     }
   }
-
-  private boolean noProfileAlreadyActivated(List<RulesProfile> profiles) {
-    for (RulesProfile rulesProfile : profiles) {
-      if (rulesProfile.getDefaultProfile()) {
-        return true;
-      }
-    }
-    return false;
-  }
 }
index 7ed797f2ead790cf2118239ce387345328f9d59b..89aeded16e829582bdfafd31eccac24afa7165de 100644 (file)
@@ -108,7 +108,7 @@ public final class RegisterProvidedProfiles {
   void saveProvidedProfiles(List<RulesProfile> profiles, DatabaseSession session) {
     for (RulesProfile profile : profiles) {
       TimeProfiler profiler = new TimeProfiler().start("Save profile " + profile);
-      RulesProfile persistedProfile = findOrCreate(profile, session);
+      RulesProfile persistedProfile = findOrCreate(profile.getName(), profile.getLanguage(), session);
 
       for (ActiveRule activeRule : profile.getActiveRules()) {
         Rule rule = getPersistedRule(activeRule);
@@ -140,14 +140,14 @@ public final class RegisterProvidedProfiles {
     return rule;
   }
 
-  private RulesProfile findOrCreate(RulesProfile profile, DatabaseSession session) {
-    RulesProfile persistedProfile = session.getSingleResult(RulesProfile.class, "name", profile.getName(), "language", profile.getLanguage());
-    if (persistedProfile == null) {
-      persistedProfile = RulesProfile.create(profile.getName(), profile.getLanguage());
-      persistedProfile.setDefaultProfile(profile.getDefaultProfile());
-      persistedProfile.setProvided(true);
+  private RulesProfile findOrCreate(String name, String language, DatabaseSession session) {
+    RulesProfile profile = session.getSingleResult(RulesProfile.class, "name", name, "language", language);
+    if (profile == null) {
+      profile = RulesProfile.create(name, language);
+      profile.setProvided(true);
+      profile.setDefaultProfile(false);
     }
-    return persistedProfile;
+    return profile;
   }
 
 }