From 16d6d2a34349732859fbf0aecacc14cf3d440939 Mon Sep 17 00:00:00 2001 From: "leon.li" Date: Tue, 21 Oct 2014 15:29:35 +0800 Subject: [PATCH] add code to deal with quotes for son --- .../cat/system/config/BaseRuleConfigManager.java | 12 ++++++++++++ .../src/main/resources/freemaker/rule_configs.ftl | 11 ++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/cat-home/src/main/java/com/dianping/cat/system/config/BaseRuleConfigManager.java b/cat-home/src/main/java/com/dianping/cat/system/config/BaseRuleConfigManager.java index 2f7b8c728..caf8d1e6a 100644 --- a/cat-home/src/main/java/com/dianping/cat/system/config/BaseRuleConfigManager.java +++ b/cat-home/src/main/java/com/dianping/cat/system/config/BaseRuleConfigManager.java @@ -45,6 +45,7 @@ public abstract class BaseRuleConfigManager { result.addMetricItem(item); } for (Config config : decorateConfigOnRead(rule.getConfigs())) { + transformConfig(config); result.addConfig(config); } return result; @@ -238,6 +239,17 @@ public abstract class BaseRuleConfigManager { return true; } + private void transformConfig(Config config) { + for (Condition condition : config.getConditions()) { + for (SubCondition subCondition : condition.getSubConditions()) { + if (RuleType.UserDefine.getId().equals(subCondition.getType())) { + String userDefineText = subCondition.getText(); + subCondition.setText(userDefineText.replaceAll("\"", "\\\\\"")); + } + } + } + } + public String updateRule(String id, String metricsStr, String configsStr) throws Exception { Rule rule = new Rule(id); List metricItems = DefaultJsonParser.parseArray(MetricItem.class, metricsStr); diff --git a/cat-home/src/main/resources/freemaker/rule_configs.ftl b/cat-home/src/main/resources/freemaker/rule_configs.ftl index b2deb6650..cc003c716 100644 --- a/cat-home/src/main/resources/freemaker/rule_configs.ftl +++ b/cat-home/src/main/resources/freemaker/rule_configs.ftl @@ -83,8 +83,11 @@