*/
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><operator>");
+ writer.append("</metric><period>");
+ StringEscapeUtils.escapeXml(writer, ObjectUtils.toString(alert.getPeriod()));
+ writer.append("</period><operator>");
StringEscapeUtils.escapeXml(writer, alert.getOperator());
writer.append("</operator><warning>");
StringEscapeUtils.escapeXml(writer, alert.getValueWarning());
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");
+ Alert alert = new Alert(profile, new Metric("coverage"), Alert.OPERATOR_SMALLER, "60", "80", 1);
profile.getAlerts().add(alert);
new XMLProfileSerializer().write(profile, writer);
<alerts>
<alert>
<metric>coverage</metric>
+ <period>1</period>
<operator><</operator>
<error>60</error>
<warning>80</warning>
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", alert.getPeriod() != null ? Integer.toString(alert.getPeriod()) : "");
+ writeNode(writer, "period", ObjectUtils.toString(alert.getPeriod()));
writeNode(writer, "metric-key", alert.getMetric().getKey());
}