diff options
author | Godin <mandrikov@gmail.com> | 2010-12-22 09:06:18 +0000 |
---|---|---|
committer | Godin <mandrikov@gmail.com> | 2010-12-22 09:06:18 +0000 |
commit | 68ed2127f97f4bab341edb91b4180b1ffd6fc485 (patch) | |
tree | 8a6ae4602dbaa6b5b252f183c73137e0a2be3933 /sonar-server | |
parent | 34094526ec0e9ecabc947dd70096aca1052514ef (diff) | |
download | sonarqube-68ed2127f97f4bab341edb91b4180b1ffd6fc485.tar.gz sonarqube-68ed2127f97f4bab341edb91b4180b1ffd6fc485.zip |
SONAR-2052: Should be possible to restore backup without inheritance information
Diffstat (limited to 'sonar-server')
3 files changed, 44 insertions, 3 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/configuration/ProfilesBackup.java b/sonar-server/src/main/java/org/sonar/server/configuration/ProfilesBackup.java index 543606779fb..2ca434ee7ee 100644 --- a/sonar-server/src/main/java/org/sonar/server/configuration/ProfilesBackup.java +++ b/sonar-server/src/main/java/org/sonar/server/configuration/ProfilesBackup.java @@ -205,7 +205,9 @@ public class ProfilesBackup implements Backupable { ActiveRule activeRule = new ActiveRule(null, new Rule(valuesRule.get("plugin"), valuesRule.get("key")), RulePriority .valueOf(valuesRule.get("level"))); activeRule.setActiveRuleParams(params); - activeRule.setInheritanceStatus(ActiveRuleInheritanceStatus.valueOf(valuesRule.get("inherited"))); + if (valuesRule.containsKey("inherited")) { + activeRule.setInheritanceStatus(ActiveRuleInheritanceStatus.valueOf(valuesRule.get("inherited"))); + } return activeRule; } diff --git a/sonar-server/src/test/java/org/sonar/server/configuration/BackupTest.java b/sonar-server/src/test/java/org/sonar/server/configuration/BackupTest.java index 08f75114341..0abc449a411 100644 --- a/sonar-server/src/test/java/org/sonar/server/configuration/BackupTest.java +++ b/sonar-server/src/test/java/org/sonar/server/configuration/BackupTest.java @@ -19,8 +19,6 @@ */ package org.sonar.server.configuration; -import org.sonar.api.rules.ActiveRuleInheritanceStatus; - import com.google.common.collect.Lists; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.io.IOUtils; @@ -171,6 +169,22 @@ public class BackupTest { } @Test + public void shouldImportXmlWithoutInheritanceInformation() { + Backup backup = new Backup(Arrays.asList(new MetricsBackup(null), new PropertiesBackup(null), + new RulesBackup((DatabaseSession) null), new ProfilesBackup((DatabaseSession) null))); + + String xml = getFileFromClasspath("backup-restore-without-inheritance.xml"); + SonarConfig sonarConfig = backup.getSonarConfigFromXml(xml); + + Collection<RulesProfile> profiles = sonarConfig.getProfiles(); + assertThat(profiles.size(), is(1)); + RulesProfile testProfile = profiles.iterator().next(); + assertThat(testProfile.getActiveRules().size(), is(1)); + ActiveRule activeRule = testProfile.getActiveRules().get(0); + assertThat(activeRule.getInheritanceStatus(), is(ActiveRuleInheritanceStatus.NO)); + } + + @Test public void shouldImportXmlWithXmlIlliciteCharacters() { Backup backup = new Backup(Arrays.asList(new MetricsBackup(null), new PropertiesBackup(null))); diff --git a/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-without-inheritance.xml b/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-without-inheritance.xml new file mode 100644 index 00000000000..77498b9ece7 --- /dev/null +++ b/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-without-inheritance.xml @@ -0,0 +1,25 @@ +<sonar-config> + <version><![CDATA[54]]></version> + <date><![CDATA[2008-11-18]]></date> + <profiles> + <profile> + <name><![CDATA[test name]]></name> + <default-profile><![CDATA[true]]></default-profile> + <provided><![CDATA[true]]></provided> + <language><![CDATA[test language]]></language> + <active-rules> + <active-rule> + <key><![CDATA[test key]]></key> + <plugin><![CDATA[test plugin]]></plugin> + <level><![CDATA[ERROR]]></level> + <params> + <param> + <key><![CDATA[test param key]]></key> + <value><![CDATA[test value]]></value> + </param> + </params> + </active-rule> + </active-rules> + </profile> + </profiles> +</sonar-config> |