aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2012-11-28 18:51:20 +0100
committerJulien Lancelot <julien.lancelot@gmail.com>2012-11-28 18:51:39 +0100
commitbe51fc46e6b615295dfa843573932881e8a59f60 (patch)
treeadea88a79bc96b8d73f279f683a076e15a2f722c /sonar-server
parent453774634e92f2fce10611d0ec4480b19bb38b1f (diff)
downloadsonarqube-be51fc46e6b615295dfa843573932881e8a59f60.tar.gz
sonarqube-be51fc46e6b615295dfa843573932881e8a59f60.zip
SONAR-1352 update backup with new alert period property
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/configuration/ProfilesBackup.java22
-rw-r--r--sonar-server/src/test/java/org/sonar/server/configuration/BackupTest.java38
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-valid.xml8
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-valid.xml8
4 files changed, 68 insertions, 8 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 804f6cc54eb..c15ec5b0f30 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
@@ -26,15 +26,25 @@ import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import org.apache.commons.collections.CollectionUtils;
+import org.codehaus.plexus.util.StringUtils;
import org.slf4j.LoggerFactory;
import org.sonar.api.database.DatabaseSession;
import org.sonar.api.measures.Metric;
import org.sonar.api.profiles.Alert;
import org.sonar.api.profiles.RulesProfile;
-import org.sonar.api.rules.*;
+import org.sonar.api.rules.ActiveRule;
+import org.sonar.api.rules.ActiveRuleParam;
+import org.sonar.api.rules.Rule;
+import org.sonar.api.rules.RuleParam;
+import org.sonar.api.rules.RulePriority;
import org.sonar.jpa.dao.RulesDao;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
public class ProfilesBackup implements Backupable {
@@ -161,13 +171,19 @@ public class ProfilesBackup implements Backupable {
writeNode(writer, "operator", alert.getOperator());
writeNode(writer, "value-error", alert.getValueError());
writeNode(writer, "value-warning", alert.getValueWarning());
+ writeNode(writer, "period", alert.getPeriod() != null ? Integer.toString(alert.getPeriod()) : "");
writeNode(writer, "metric-key", alert.getMetric().getKey());
}
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
Map<String, String> values = readNode(reader);
- return new Alert(null, new Metric(values.get("metric-key")), values.get("operator"), values.get("value-error"),
+ Alert alert = new Alert(null, new Metric(values.get("metric-key")), values.get("operator"), values.get("value-error"),
values.get("value-warning"));
+ String periodText = values.get("period");
+ if (StringUtils.isNotEmpty(periodText)) {
+ alert.setPeriod(Integer.parseInt(periodText));
+ }
+ return alert;
}
public boolean canConvert(Class type) {
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 13ac73eb6eb..bbb88cd7633 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
@@ -31,18 +31,30 @@ import org.sonar.api.database.configuration.Property;
import org.sonar.api.measures.Metric;
import org.sonar.api.profiles.Alert;
import org.sonar.api.profiles.RulesProfile;
-import org.sonar.api.rules.*;
+import org.sonar.api.rules.ActiveRule;
+import org.sonar.api.rules.ActiveRuleParam;
+import org.sonar.api.rules.Rule;
+import org.sonar.api.rules.RuleParam;
+import org.sonar.api.rules.RulePriority;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -133,14 +145,23 @@ public class BackupTest {
assertNotNull(testActiveRuleParam.getRuleParam());
assertEquals("test param key", testActiveRuleParam.getRuleParam().getKey());
- assertEquals(1, testProfile.getAlerts().size());
+ assertEquals(2, testProfile.getAlerts().size());
Alert testAlert = testProfile.getAlerts().get(0);
assertEquals(Alert.OPERATOR_GREATER, testAlert.getOperator());
assertEquals("testError", testAlert.getValueError());
assertEquals("testWarn", testAlert.getValueWarning());
+ assertThat(testAlert.getPeriod(), nullValue());
assertNotNull(testAlert.getMetric());
assertEquals("test key", testAlert.getMetric().getKey());
+ Alert testAlert2 = testProfile.getAlerts().get(1);
+ assertEquals(Alert.OPERATOR_SMALLER, testAlert2.getOperator());
+ assertEquals("testError2", testAlert2.getValueError());
+ assertEquals("testWarn2", testAlert2.getValueWarning());
+ assertThat(testAlert2.getPeriod(), is(1));
+ assertNotNull(testAlert2.getMetric());
+ assertEquals("test key2", testAlert2.getMetric().getKey());
+
// Child profile
testProfile = profilesIter.next();
assertEquals("test2 name", testProfile.getName());
@@ -150,6 +171,7 @@ public class BackupTest {
Collection<Rule> rules = sonarConfig.getRules();
assertThat(rules.size(), is(1));
+
Rule rule = rules.iterator().next();
assertThat(rule.getParent().getRepositoryKey(), is("test plugin"));
assertThat(rule.getParent().getKey(), is("test key"));
@@ -160,6 +182,7 @@ public class BackupTest {
assertThat(rule.getDescription(), is("test description"));
assertThat(rule.getSeverity(), is(RulePriority.INFO));
assertThat(rule.getParams().size(), is(1));
+
RuleParam param = rule.getParams().get(0);
assertThat(param.getKey(), is("test param key"));
assertThat(param.getDefaultValue(), is("test param value"));
@@ -282,7 +305,12 @@ public class BackupTest {
activeRule2.setParameter("test param key", "test value");
activeRule2.setInheritance(ActiveRule.OVERRIDES);
- profiles.get(0).getAlerts().add(new Alert(null, new Metric("test key"), Alert.OPERATOR_GREATER, "testError", "testWarn"));
+ Alert alert1 = new Alert(null, new Metric("test key"), Alert.OPERATOR_GREATER, "testError", "testWarn");
+ Alert alert2 = new Alert(null, new Metric("test key2"), Alert.OPERATOR_SMALLER, "testError2", "testWarn2", 1);
+
+ List<Alert> alerts = profiles.get(0).getAlerts();
+ alerts.add(alert1);
+ alerts.add(alert2);
return profiles;
}
diff --git a/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-valid.xml b/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-valid.xml
index f61e6e67c4b..ed5f21bb768 100644
--- a/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-valid.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-valid.xml
@@ -55,8 +55,16 @@
<operator><![CDATA[>]]></operator>
<value-error><![CDATA[testError]]></value-error>
<value-warning><![CDATA[testWarn]]></value-warning>
+ <period><![CDATA[]]></period>
<metric-key><![CDATA[test key]]></metric-key>
</alert>
+ <alert>
+ <operator><![CDATA[<]]></operator>
+ <value-error><![CDATA[testError2]]></value-error>
+ <value-warning><![CDATA[testWarn2]]></value-warning>
+ <period><![CDATA[1]]></period>
+ <metric-key><![CDATA[test key2]]></metric-key>
+ </alert>
</alerts>
</profile>
<profile>
diff --git a/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-valid.xml b/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-valid.xml
index 45ce8b1876b..8af076dc208 100644
--- a/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-valid.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-valid.xml
@@ -57,8 +57,16 @@
<operator><![CDATA[>]]></operator>
<value-error><![CDATA[testError]]></value-error>
<value-warning><![CDATA[testWarn]]></value-warning>
+ <period><![CDATA[]]></period>
<metric-key><![CDATA[test key]]></metric-key>
</alert>
+ <alert>
+ <operator><![CDATA[<]]></operator>
+ <value-error><![CDATA[testError2]]></value-error>
+ <value-warning><![CDATA[testWarn2]]></value-warning>
+ <period><![CDATA[1]]></period>
+ <metric-key><![CDATA[test key2]]></metric-key>
+ </alert>
</alerts>
</profile>
<profile>