*/
package org.sonar.api.profiles;
-import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.ServerComponent;
private void appendAlert(Alert alert, Writer writer) throws IOException {
writer.append("<alert><metric>");
StringEscapeUtils.escapeXml(writer, alert.getMetric().getKey());
- writer.append("</metric><period>");
- StringEscapeUtils.escapeXml(writer, ObjectUtils.toString(alert.getPeriod()));
- writer.append("</period><operator>");
+ writer.append("</metric>");
+ if (alert.getPeriod() !=null) {
+ writer.append("<period>");
+ StringEscapeUtils.escapeXml(writer, Integer.toString(alert.getPeriod()));
+ writer.append("</period>");
+ }
+ writer.append("<operator>");
StringEscapeUtils.escapeXml(writer, alert.getOperator());
- writer.append("</operator><warning>");
+ writer.append("</operator>");
+ writer.append("<warning>");
StringEscapeUtils.escapeXml(writer, alert.getValueWarning());
- writer.append("</warning><error>");
+ writer.append("</warning>");
+ writer.append("<error>");
StringEscapeUtils.escapeXml(writer, alert.getValueError());
writer.append("</error></alert>");
}
import java.io.InputStream;
import java.io.StringWriter;
import java.io.Writer;
+import java.util.List;
import static org.junit.Assert.assertTrue;
public void exportAlerts() throws Exception {
Writer writer = new StringWriter();
RulesProfile profile = RulesProfile.create("sonar way", "java");
- Alert alert = new Alert(profile, new Metric("coverage"), Alert.OPERATOR_SMALLER, "60", "80", 1);
- profile.getAlerts().add(alert);
+ List<Alert> alerts = profile.getAlerts();
+ Alert alert1 = new Alert(profile, new Metric("coverage"), Alert.OPERATOR_SMALLER, "60", "80");
+ alerts.add(alert1);
+ Alert alert2 = new Alert(profile, new Metric("complexity"), Alert.OPERATOR_GREATER, "12", "10", 1);
+ alerts.add(alert2);
new XMLProfileSerializer().write(profile, writer);
assertSimilarXml("exportAlerts.xml", writer.toString());
<alerts>
<alert>
<metric>complexity</metric>
+ <period>1</period>
<operator>></operator>
<error>12</error>
<warning>10</warning>
<alerts>
<alert>
<metric>coverage</metric>
- <period>1</period>
<operator><</operator>
<error>60</error>
<warning>80</warning>
</alert>
+ <alert>
+ <metric>complexity</metric>
+ <period>1</period>
+ <operator>></operator>
+ <error>12</error>
+ <warning>10</warning>
+ </alert>
</alerts>
</profile>
\ No newline at end of file
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.ObjectUtils;
import org.codehaus.plexus.util.StringUtils;
import org.slf4j.LoggerFactory;
import org.sonar.api.database.DatabaseSession;
writeNode(writer, "operator", alert.getOperator());
writeNode(writer, "value-error", alert.getValueError());
writeNode(writer, "value-warning", alert.getValueWarning());
- writeNode(writer, "period", ObjectUtils.toString(alert.getPeriod()));
+ if (alert.getPeriod() != null) {
+ writeNode(writer, "period", Integer.toString(alert.getPeriod()));
+ }
writeNode(writer, "metric-key", alert.getMetric().getKey());
}
<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[testError]]></value-error>
<value-warning><![CDATA[testWarn]]></value-warning>
- <period><![CDATA[]]></period>
<metric-key><![CDATA[test key]]></metric-key>
</alert>
<alert>