in alerting/service/src/main/java/org/apache/karaf/decanter/alerting/service/model/Loader.java [35:76]
static public List<Rule> load(Dictionary<String, Object> configuration) {
List<Rule> rules = new ArrayList<>();
if (configuration == null) {
return rules;
}
Enumeration<String> keys = configuration.keys();
while (keys.hasMoreElements()) {
String key = keys.nextElement();
if (key.startsWith("rule.")) {
Rule rule = new Rule();
rule.setName(key.substring("rule.".length()));
String ruleDefinition = (String) configuration.get(key);
ruleDefinition = ruleDefinition.replaceAll("'", "\"");
if (ruleDefinition != null && !ruleDefinition.isEmpty()) {
JsonReader jsonReader = Json.createReader(new StringReader(ruleDefinition));
JsonObject jsonObject = jsonReader.readObject();
if (jsonObject.isNull("condition")) {
LOGGER.error("Can't load rule {} as condition is null", ruleDefinition);
} else {
rule.setCondition(jsonObject.getString("condition"));
if (jsonObject.get("period") == null) {
rule.setPeriod(null);
} else {
rule.setPeriod(jsonObject.getString("period"));
}
if (jsonObject.get("level") == null) {
rule.setLevel("WARN");
} else {
rule.setLevel(jsonObject.getString("level"));
}
if (jsonObject.get("recoverable") == null) {
rule.setRecoverable(false);
} else {
rule.setRecoverable(jsonObject.getBoolean("recoverable"));
}
rules.add(rule);
}
}
}
}
return rules;
}