in appactive-java-client/client-rule/src/main/java/io/appactive/rule/traffic/impl/TrafficRouteRuleServiceImpl.java [92:115]
public void dataChanged(UnitMappingRuleBO old,UnitMappingRuleBO unitMappingRule) {
if (!checkRule(unitMappingRule)) {
LogUtil.error("forbidden rule error,not change memory value,data:"+ JSON.toJSONString(unitMappingRule));
return;
}
if (unitMappingRule == null){
return;
}
List<TrafficCondition> trafficConditions = new ArrayList<>();
Map<String, List<RuleCondition>> unitConditionMap = ConditionUtil.getUnitConditionMap(unitMappingRule);
for (Entry<String, List<RuleCondition>> entry : unitConditionMap.entrySet()) {
String unitFlag = entry.getKey().toUpperCase();
List<RuleCondition> ruleConditions = entry.getValue();
for (RuleCondition ruleCondition : ruleConditions) {
int priority = ruleCondition.priority();
TrafficCondition trafficCondition = new TrafficCondition(unitFlag,ruleCondition,priority);
trafficConditions.add(trafficCondition);
}
}
Comparator<TrafficCondition> comparator = Comparator.comparingInt(TrafficCondition::getPriority);
trafficConditions.sort(comparator);
trafficConditionList = trafficConditions;
}