From 47e0af889d6d1ce5464ed841835b46f221477e3c Mon Sep 17 00:00:00 2001 From: HaojunRen <1394997@qq.com> Date: Mon, 6 Jan 2020 14:31:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9F=BA=E4=BA=8ESpel?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E7=9A=84=E6=9D=A1=E4=BB=B6=E8=B7=AF?= =?UTF-8?q?=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/DiscoveryConstant.java | 5 ++ .../entity/StrategyConditionEntity.java | 11 --- .../entity/StrategyCustomizationEntity.java | 9 ++- .../discovery/common/util/StringUtil.java | 10 +++ .../parser/xml/XmlConfigParser.java | 8 --- .../plugin/framework/util/SpelUtil.java | 42 ++++++++++++ .../framework/loadbalance/SpelTest.java | 68 +++++++++++++++++++ .../HeaderEqualsStrategyCondition.java | 37 ---------- .../HeaderExpressionStrategyCondition.java | 34 ++++++++-- .../StrategyAutoConfiguration.java | 4 +- .../strategy/wrapper/StrategyWrapper.java | 46 +++++++++---- 11 files changed, 196 insertions(+), 78 deletions(-) create mode 100644 discovery-plugin-framework/src/main/java/com/nepxion/discovery/plugin/framework/util/SpelUtil.java create mode 100644 discovery-plugin-framework/src/test/java/com/nepxion/discovery/plugin/framework/loadbalance/SpelTest.java delete mode 100644 discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderEqualsStrategyCondition.java diff --git a/discovery-common/src/main/java/com/nepxion/discovery/common/constant/DiscoveryConstant.java b/discovery-common/src/main/java/com/nepxion/discovery/common/constant/DiscoveryConstant.java index 4d2bc38a8d..4e9389d2ad 100644 --- a/discovery-common/src/main/java/com/nepxion/discovery/common/constant/DiscoveryConstant.java +++ b/discovery-common/src/main/java/com/nepxion/discovery/common/constant/DiscoveryConstant.java @@ -128,6 +128,11 @@ public class DiscoveryConstant { public static final String DEFAULT = "default"; public static final String UNKNOWN = "unknown"; + public static final String EXPRESSION_PREFIX = "H"; + public static final String EXPRESSION_REGEX = "\\#" + EXPRESSION_PREFIX + "\\['\\S+'\\]"; + public static final String EXPRESSION_SUB_PREFIX = "#" + EXPRESSION_PREFIX + "['"; + public static final String EXPRESSION_SUB_SUFFIX = "']"; + public static final String DEFAULT_XML_RULE = "\r\n" + "\r\n" + ""; diff --git a/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyConditionEntity.java b/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyConditionEntity.java index 685fa23bae..7bee127730 100644 --- a/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyConditionEntity.java +++ b/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyConditionEntity.java @@ -10,8 +10,6 @@ */ import java.io.Serializable; -import java.util.LinkedHashMap; -import java.util.Map; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; @@ -23,7 +21,6 @@ public class StrategyConditionEntity implements Serializable { private String id; private String conditionHeader; - private Map conditionHeaderMap = new LinkedHashMap(); private String versionId; private String regionId; private String addressId; @@ -46,14 +43,6 @@ public void setConditionHeader(String conditionHeader) { this.conditionHeader = conditionHeader; } - public Map getConditionHeaderMap() { - return conditionHeaderMap; - } - - public void setConditionHeaderMap(Map conditionHeaderMap) { - this.conditionHeaderMap = conditionHeaderMap; - } - public String getVersionId() { return versionId; } diff --git a/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyCustomizationEntity.java b/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyCustomizationEntity.java index 063bcdd37d..33ce5a0670 100644 --- a/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyCustomizationEntity.java +++ b/discovery-common/src/main/java/com/nepxion/discovery/common/entity/StrategyCustomizationEntity.java @@ -19,6 +19,9 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import com.nepxion.discovery.common.constant.DiscoveryConstant; +import com.nepxion.discovery.common.util.StringUtil; + public class StrategyCustomizationEntity implements Serializable { private static final long serialVersionUID = 4903833660194433964L; @@ -51,9 +54,9 @@ public void setStrategyRouteEntityList(List strategyRouteEn // Header参数越多,越排在前面 Collections.sort(this.strategyConditionEntityList, new Comparator() { - public int compare(StrategyConditionEntity object1, StrategyConditionEntity object2) { - Integer count1 = object1.getConditionHeaderMap().size(); - Integer count2 = object2.getConditionHeaderMap().size(); + public int compare(StrategyConditionEntity strategyConditionEntity1, StrategyConditionEntity strategyConditionEntity2) { + Integer count1 = StringUtil.count(strategyConditionEntity1.getConditionHeader(), DiscoveryConstant.EXPRESSION_SUB_PREFIX); + Integer count2 = StringUtil.count(strategyConditionEntity2.getConditionHeader(), DiscoveryConstant.EXPRESSION_SUB_PREFIX); return count2.compareTo(count1); } diff --git a/discovery-common/src/main/java/com/nepxion/discovery/common/util/StringUtil.java b/discovery-common/src/main/java/com/nepxion/discovery/common/util/StringUtil.java index 4a933c4fd9..faed405222 100644 --- a/discovery-common/src/main/java/com/nepxion/discovery/common/util/StringUtil.java +++ b/discovery-common/src/main/java/com/nepxion/discovery/common/util/StringUtil.java @@ -37,4 +37,14 @@ public static String simulateText(int size) { public static String toDisplaySize(String value) { return FileUtils.byteCountToDisplaySize(value.length()); } + + public static int count(String text, String keyText) { + int count = 0; + while (text.indexOf(keyText) != -1) { + text = text.substring(text.indexOf(keyText) + 1, text.length()); + count++; + } + + return count; + } } \ No newline at end of file diff --git a/discovery-plugin-config-center/src/main/java/com/nepxion/discovery/plugin/configcenter/parser/xml/XmlConfigParser.java b/discovery-plugin-config-center/src/main/java/com/nepxion/discovery/plugin/configcenter/parser/xml/XmlConfigParser.java index 4866bdc95b..fb1476dd28 100644 --- a/discovery-plugin-config-center/src/main/java/com/nepxion/discovery/plugin/configcenter/parser/xml/XmlConfigParser.java +++ b/discovery-plugin-config-center/src/main/java/com/nepxion/discovery/plugin/configcenter/parser/xml/XmlConfigParser.java @@ -687,14 +687,6 @@ private void parseStrategyCondition(Element element, List headerList = StringUtil.splitToList(header, DiscoveryConstant.SEPARATE); - for (String value : headerList) { - String[] valueArray = StringUtils.split(value, DiscoveryConstant.EQUALS); - String headerName = valueArray[0].trim(); - String headerValue = valueArray[1].trim(); - - strategyConditionEntity.getConditionHeaderMap().put(headerName, headerValue); - } Attribute versionIdAttribute = childElement.attribute(ConfigConstant.VERSION_ELEMENT_NAME + DiscoveryConstant.DASH + ConfigConstant.ID_ATTRIBUTE_NAME); if (versionIdAttribute != null) { diff --git a/discovery-plugin-framework/src/main/java/com/nepxion/discovery/plugin/framework/util/SpelUtil.java b/discovery-plugin-framework/src/main/java/com/nepxion/discovery/plugin/framework/util/SpelUtil.java new file mode 100644 index 0000000000..0d1efc9e75 --- /dev/null +++ b/discovery-plugin-framework/src/main/java/com/nepxion/discovery/plugin/framework/util/SpelUtil.java @@ -0,0 +1,42 @@ +package com.nepxion.discovery.plugin.framework.util; + +/** + *

Title: Nepxion Discovery

+ *

Description: Nepxion Discovery

+ *

Copyright: Copyright (c) 2017-2050

+ *

Company: Nepxion

+ * @author Haojun Ren + * @version 1.0 + */ + +import java.util.Map; + +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; + +public class SpelUtil { + private static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); + + public static boolean eval(String expression, String mapKey, Map map) { + StandardEvaluationContext context = new StandardEvaluationContext(); + context.setVariable(mapKey, map); + + return eval(expression, context); + } + + public static boolean eval(String expression, Map> map) { + StandardEvaluationContext context = new StandardEvaluationContext(); + for (Map.Entry> entry : map.entrySet()) { + context.setVariable(entry.getKey(), entry.getValue()); + } + + return eval(expression, context); + } + + public static boolean eval(String expression, StandardEvaluationContext context) { + Boolean result = EXPRESSION_PARSER.parseExpression(expression).getValue(context, Boolean.class); + + return result != null ? result.booleanValue() : false; + } +} \ No newline at end of file diff --git a/discovery-plugin-framework/src/test/java/com/nepxion/discovery/plugin/framework/loadbalance/SpelTest.java b/discovery-plugin-framework/src/test/java/com/nepxion/discovery/plugin/framework/loadbalance/SpelTest.java new file mode 100644 index 0000000000..f5bf4ff3f9 --- /dev/null +++ b/discovery-plugin-framework/src/test/java/com/nepxion/discovery/plugin/framework/loadbalance/SpelTest.java @@ -0,0 +1,68 @@ +package com.nepxion.discovery.plugin.framework.loadbalance; + +/** + *

Title: Nepxion Discovery

+ *

Description: Nepxion Discovery

+ *

Copyright: Copyright (c) 2017-2050

+ *

Company: Nepxion

+ * @author Haojun Ren + * @version 1.0 + */ + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang3.StringUtils; + +import com.nepxion.discovery.common.util.StringUtil; +import com.nepxion.discovery.plugin.framework.util.SpelUtil; + +public class SpelTest { + public static void main(String[] args) { + System.out.println(test1()); + System.out.println(test2()); + System.out.println(test3()); + } + + private static boolean test1() { + // String expression = "#H['a'] == '123' && #H['b'] == '456'"; + // String expression = "#H['a'] == '123' || #H['b'] == '456'"; + // String expression = "#H['a'] >= '123' && #H['b'] <= '456'"; + // String expression = "#H['a'] >= '123' || #H['b'] <= '456'"; + String expression = "#H['a'] != '123' || #H['b'] != '456'"; + + Map headerMap = new HashMap(); + headerMap.put("a", "123"); + headerMap.put("b", "456"); + + return SpelUtil.eval(expression, "H", headerMap); + } + + private static List test2() { + String regex = "\\#H\\['\\S+'\\]"; + Pattern pattern = Pattern.compile(regex); + + String expression = "#H['a-A'] != '123' || #H['b//SS'] != '456' && #H['C**44!!66'] = 123"; + Matcher matcher = pattern.matcher(expression); + + List list = new ArrayList(); + while (matcher.find()) { + String group = matcher.group(); + String value = StringUtils.substringBetween(group, "#H['", "']"); + list.add(value); + } + + return list; + } + + private static int test3() { + String expression = "#H['a-A'] != '123' || #H['b//SS'] != '456' && #H['C**44!!66'] = 123"; + String key = "#H['"; + + return StringUtil.count(expression, key); + } +} \ No newline at end of file diff --git a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderEqualsStrategyCondition.java b/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderEqualsStrategyCondition.java deleted file mode 100644 index 76ee256e66..0000000000 --- a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderEqualsStrategyCondition.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.nepxion.discovery.plugin.strategy.condition; - -/** - *

Title: Nepxion Discovery

- *

Description: Nepxion Discovery

- *

Copyright: Copyright (c) 2017-2050

- *

Company: Nepxion

- * @author Haojun Ren - * @version 1.0 - */ - -import java.util.Map; - -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; - -import com.nepxion.discovery.common.entity.StrategyConditionEntity; - -public class HeaderEqualsStrategyCondition extends AbstractStrategyCondition { - @Override - public boolean isTriggered(StrategyConditionEntity strategyConditionEntity) { - Map conditionHeaderMap = strategyConditionEntity.getConditionHeaderMap(); - if (MapUtils.isNotEmpty(conditionHeaderMap)) { - for (Map.Entry entry : conditionHeaderMap.entrySet()) { - String headerName = entry.getKey(); - String headerValue = entry.getValue(); - - String value = strategyContextHolder.getHeader(headerName); - if (!StringUtils.equals(headerValue, value)) { - return false; - } - } - } - - return true; - } -} \ No newline at end of file diff --git a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderExpressionStrategyCondition.java b/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderExpressionStrategyCondition.java index 5bfddb6ea3..685ce7863d 100644 --- a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderExpressionStrategyCondition.java +++ b/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/condition/HeaderExpressionStrategyCondition.java @@ -9,15 +9,41 @@ * @version 1.0 */ +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang3.StringUtils; + +import com.nepxion.discovery.common.constant.DiscoveryConstant; import com.nepxion.discovery.common.entity.StrategyConditionEntity; +import com.nepxion.discovery.plugin.framework.util.SpelUtil; public class HeaderExpressionStrategyCondition extends AbstractStrategyCondition { + private Pattern pattern = Pattern.compile(DiscoveryConstant.EXPRESSION_REGEX); + @Override public boolean isTriggered(StrategyConditionEntity strategyConditionEntity) { - // 此为包含若干个Header的表达式 - // String conditionHeader = strategyConditionEntity.getConditionHeader(); + String conditionHeader = strategyConditionEntity.getConditionHeader(); + Map headerMap = createHeaderMap(conditionHeader); + + return SpelUtil.eval(conditionHeader, DiscoveryConstant.EXPRESSION_PREFIX, headerMap); + } + + private Map createHeaderMap(String conditionHeader) { + Map headerMap = new HashMap(); + + Matcher matcher = pattern.matcher(conditionHeader); + while (matcher.find()) { + String group = matcher.group(); + String headerName = StringUtils.substringBetween(group, DiscoveryConstant.EXPRESSION_SUB_PREFIX, DiscoveryConstant.EXPRESSION_SUB_SUFFIX); + String headerValue = strategyContextHolder.getHeader(headerName); + if (StringUtils.isNotBlank(headerValue)) { + headerMap.put(headerName, headerValue); + } + } - // 待实现 - return true; + return headerMap; } } \ No newline at end of file diff --git a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/configuration/StrategyAutoConfiguration.java b/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/configuration/StrategyAutoConfiguration.java index 7470e32a65..764ba0cfa5 100644 --- a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/configuration/StrategyAutoConfiguration.java +++ b/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/configuration/StrategyAutoConfiguration.java @@ -15,7 +15,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.nepxion.discovery.plugin.strategy.condition.HeaderEqualsStrategyCondition; +import com.nepxion.discovery.plugin.strategy.condition.HeaderExpressionStrategyCondition; import com.nepxion.discovery.plugin.strategy.condition.StrategyCondition; import com.nepxion.discovery.plugin.strategy.constant.StrategyConstant; import com.nepxion.discovery.plugin.strategy.isolation.ConsumerIsolationDiscoveryStrategy; @@ -64,6 +64,6 @@ public StrategyWrapper strategyWrapper() { @Bean @ConditionalOnMissingBean public StrategyCondition strategyCondition() { - return new HeaderEqualsStrategyCondition(); + return new HeaderExpressionStrategyCondition(); } } \ No newline at end of file diff --git a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/wrapper/StrategyWrapper.java b/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/wrapper/StrategyWrapper.java index 5ded34bb7b..565c47ddf6 100644 --- a/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/wrapper/StrategyWrapper.java +++ b/discovery-plugin-strategy/src/main/java/com/nepxion/discovery/plugin/strategy/wrapper/StrategyWrapper.java @@ -163,7 +163,7 @@ public String getGlobalRouteRegionWeight() { } public String getConditionRouteVersion() { - StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(); + StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(StrategyType.VERSION); if (strategyConditionEntity != null) { String versionId = strategyConditionEntity.getVersionId(); StrategyRouteEntity strategyRouteEntity = getTriggeredStrategyRouteEntity(versionId, StrategyType.VERSION); @@ -176,7 +176,7 @@ public String getConditionRouteVersion() { } public String getConditionRouteRegion() { - StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(); + StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(StrategyType.REGION); if (strategyConditionEntity != null) { String regionId = strategyConditionEntity.getRegionId(); StrategyRouteEntity strategyRouteEntity = getTriggeredStrategyRouteEntity(regionId, StrategyType.REGION); @@ -189,7 +189,7 @@ public String getConditionRouteRegion() { } public String getConditionRouteAddress() { - StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(); + StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(StrategyType.ADDRESS); if (strategyConditionEntity != null) { String addressId = strategyConditionEntity.getAddressId(); StrategyRouteEntity strategyRouteEntity = getTriggeredStrategyRouteEntity(addressId, StrategyType.ADDRESS); @@ -202,7 +202,7 @@ public String getConditionRouteAddress() { } public String getConditionRouteVersionWeight() { - StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(); + StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(StrategyType.VERSION_WEIGHT); if (strategyConditionEntity != null) { String versionWeightId = strategyConditionEntity.getVersionWeightId(); StrategyRouteEntity strategyRouteEntity = getTriggeredStrategyRouteEntity(versionWeightId, StrategyType.VERSION_WEIGHT); @@ -215,7 +215,7 @@ public String getConditionRouteVersionWeight() { } public String getConditionRouteRegionWeight() { - StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(); + StrategyConditionEntity strategyConditionEntity = getTriggeredStrategyConditionEntity(StrategyType.REGION_WEIGHT); if (strategyConditionEntity != null) { String regionWeightId = strategyConditionEntity.getRegionWeightId(); StrategyRouteEntity strategyRouteEntity = getTriggeredStrategyRouteEntity(regionWeightId, StrategyType.REGION_WEIGHT); @@ -227,7 +227,7 @@ public String getConditionRouteRegionWeight() { return null; } - private StrategyRouteEntity getTriggeredStrategyRouteEntity(String id, StrategyType type) { + private StrategyRouteEntity getTriggeredStrategyRouteEntity(String id, StrategyType strategyType) { if (StringUtils.isEmpty(id)) { return null; } @@ -239,7 +239,7 @@ private StrategyRouteEntity getTriggeredStrategyRouteEntity(String id, StrategyT List strategyRouteEntityList = strategyCustomizationEntity.getStrategyRouteEntityList(); if (CollectionUtils.isNotEmpty(strategyRouteEntityList)) { for (StrategyRouteEntity strategyRouteEntity : strategyRouteEntityList) { - if (StringUtils.equals(strategyRouteEntity.getId(), id) && strategyRouteEntity.getType() == type) { + if (StringUtils.equals(strategyRouteEntity.getId(), id) && strategyRouteEntity.getType() == strategyType) { return strategyRouteEntity; } } @@ -250,7 +250,7 @@ private StrategyRouteEntity getTriggeredStrategyRouteEntity(String id, StrategyT return null; } - private StrategyConditionEntity getTriggeredStrategyConditionEntity() { + private StrategyConditionEntity getTriggeredStrategyConditionEntity(StrategyType strategyType) { RuleEntity ruleEntity = pluginAdapter.getRule(); if (ruleEntity != null) { StrategyCustomizationEntity strategyCustomizationEntity = ruleEntity.getStrategyCustomizationEntity(); @@ -258,9 +258,12 @@ private StrategyConditionEntity getTriggeredStrategyConditionEntity() { List strategyConditionEntityList = strategyCustomizationEntity.getStrategyConditionEntityList(); if (CollectionUtils.isNotEmpty(strategyConditionEntityList)) { for (StrategyConditionEntity strategyConditionEntity : strategyConditionEntityList) { - boolean isTriggered = strategyCondition.isTriggered(strategyConditionEntity); - if (isTriggered) { - return strategyConditionEntity; + boolean isValidated = validateStrategyType(strategyConditionEntity, strategyType); + if (isValidated) { + boolean isTriggered = strategyCondition.isTriggered(strategyConditionEntity); + if (isTriggered) { + return strategyConditionEntity; + } } } } @@ -270,6 +273,23 @@ private StrategyConditionEntity getTriggeredStrategyConditionEntity() { return null; } + private boolean validateStrategyType(StrategyConditionEntity strategyConditionEntity, StrategyType strategyType) { + switch (strategyType) { + case VERSION: + return StringUtils.isNotEmpty(strategyConditionEntity.getVersionId()); + case REGION: + return StringUtils.isNotEmpty(strategyConditionEntity.getRegionId()); + case ADDRESS: + return StringUtils.isNotEmpty(strategyConditionEntity.getAddressId()); + case VERSION_WEIGHT: + return StringUtils.isNotEmpty(strategyConditionEntity.getVersionWeightId()); + case REGION_WEIGHT: + return StringUtils.isNotEmpty(strategyConditionEntity.getRegionWeightId()); + } + + return false; + } + public String getWeightRouteVersion() { StrategyWeightEntity strategyWeightEntity = getTriggeredStrategyWeightEntity(); if (strategyWeightEntity != null) { @@ -321,7 +341,7 @@ private StrategyWeightEntity getTriggeredStrategyWeightEntity() { return null; } - private String getTriggeredStrategyWeight(MapWeightEntity mapWeightEntity, StrategyType type) { + private String getTriggeredStrategyWeight(MapWeightEntity mapWeightEntity, StrategyType strategyType) { Map weightMap = mapWeightEntity.getWeightMap(); if (MapUtils.isEmpty(weightMap)) { return null; @@ -330,7 +350,7 @@ private String getTriggeredStrategyWeight(MapWeightEntity mapWeightEntity, Strat List> weightList = new ArrayList>(); for (Map.Entry entry : weightMap.entrySet()) { String id = entry.getKey(); - StrategyRouteEntity strategyRouteEntity = getTriggeredStrategyRouteEntity(id, type); + StrategyRouteEntity strategyRouteEntity = getTriggeredStrategyRouteEntity(id, strategyType); if (strategyRouteEntity != null) { String strategyRoute = strategyRouteEntity.getValue(); Double weight = Double.valueOf(entry.getValue());