diff --git a/pom.xml b/pom.xml
index 64eafc2..cecb7ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
net.ironoc.rules.engine
simple-rules-engine
- 2.4-SNAPSHOT
+ 2.5-SNAPSHOT
UTF-8
diff --git a/src/main/java/net/ironoc/rules/engine/ApiApplication.java b/src/main/java/net/ironoc/rules/engine/ApiApplication.java
index 6001de2..ee670be 100644
--- a/src/main/java/net/ironoc/rules/engine/ApiApplication.java
+++ b/src/main/java/net/ironoc/rules/engine/ApiApplication.java
@@ -25,6 +25,6 @@ static void main(String... args) {
@EventListener
public void processPostDeploy(PostDeployEvent event) {
- runtimeService.startProcessInstanceByKey("loanApproval");
+ runtimeService.startProcessInstanceByKey("Rules_matcher");
}
}
diff --git a/src/main/java/net/ironoc/rules/engine/delegate/FeatureDelegate.java b/src/main/java/net/ironoc/rules/engine/delegate/CountryDelegate.java
similarity index 89%
rename from src/main/java/net/ironoc/rules/engine/delegate/FeatureDelegate.java
rename to src/main/java/net/ironoc/rules/engine/delegate/CountryDelegate.java
index 27f4838..37f8e45 100644
--- a/src/main/java/net/ironoc/rules/engine/delegate/FeatureDelegate.java
+++ b/src/main/java/net/ironoc/rules/engine/delegate/CountryDelegate.java
@@ -9,9 +9,9 @@
import java.util.Objects;
@Component
-public class FeatureDelegate implements JavaDelegate {
+public class CountryDelegate implements JavaDelegate {
- private static final Logger LOGGER = LoggerFactory.getLogger(FeatureDelegate.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(CountryDelegate.class);
public static final String VAR_COUNTRY = "country";
@@ -21,4 +21,4 @@ public void execute(DelegateExecution execution) {
String country = Objects.toString(execution.getVariable(VAR_COUNTRY), "").trim();
LOGGER.info("Country captured='{}' (matching is performed in RulesAggregatorDelegate via RulesService).", country);
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/net/ironoc/rules/engine/delegate/RulesAggregatorDelegate.java b/src/main/java/net/ironoc/rules/engine/delegate/RulesAggregatorDelegate.java
index 7326fd5..bbc07a6 100644
--- a/src/main/java/net/ironoc/rules/engine/delegate/RulesAggregatorDelegate.java
+++ b/src/main/java/net/ironoc/rules/engine/delegate/RulesAggregatorDelegate.java
@@ -49,7 +49,7 @@ public void execute(DelegateExecution execution) {
if (skip || !featureEnabled) {
matchedRules = new ArrayList<>();
} else {
- String country = Objects.toString(execution.getVariable(FeatureDelegate.VAR_COUNTRY), "").trim();
+ String country = Objects.toString(execution.getVariable(CountryDelegate.VAR_COUNTRY), "").trim();
String appVersion = Objects.toString(execution.getVariable(AppVersionDelegate.VAR_APP_VERSION), "").trim();
String tier = Objects.toString(execution.getVariable(TierDelegate.VAR_TIER), "").trim();
@@ -73,4 +73,4 @@ public void execute(DelegateExecution execution) {
throw new IllegalStateException("Failed to serialize matched rules to JSON", e);
}
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/net/ironoc/rules/engine/enums/FeatureType.java b/src/main/java/net/ironoc/rules/engine/enums/FeatureFlag.java
similarity index 73%
rename from src/main/java/net/ironoc/rules/engine/enums/FeatureType.java
rename to src/main/java/net/ironoc/rules/engine/enums/FeatureFlag.java
index 21a5639..079327d 100644
--- a/src/main/java/net/ironoc/rules/engine/enums/FeatureType.java
+++ b/src/main/java/net/ironoc/rules/engine/enums/FeatureFlag.java
@@ -1,6 +1,6 @@
package net.ironoc.rules.engine.enums;
-public enum FeatureType {
+public enum FeatureFlag {
TIER, APPVERSION, COUNTRY
}
diff --git a/src/main/java/net/ironoc/rules/engine/service/RulesService.java b/src/main/java/net/ironoc/rules/engine/service/RulesService.java
index 201b2cd..d42f8e6 100644
--- a/src/main/java/net/ironoc/rules/engine/service/RulesService.java
+++ b/src/main/java/net/ironoc/rules/engine/service/RulesService.java
@@ -6,7 +6,7 @@
import net.ironoc.rules.engine.domain.ApiResponse;
import net.ironoc.rules.engine.dto.Feature;
import net.ironoc.rules.engine.dto.Rule;
-import net.ironoc.rules.engine.enums.FeatureType;
+import net.ironoc.rules.engine.enums.FeatureFlag;
import net.ironoc.rules.engine.enums.RuleGroup;
import net.ironoc.rules.engine.enums.RuleOperator;
import org.camunda.bpm.engine.delegate.DelegateExecution;
@@ -93,16 +93,16 @@ protected List rulesMatcher(String country, String appVersion, String tier
Rule rule = this.objectMapper.convertValue(ruleMap, Rule.class);
RuleOperator ruleOperator = RuleOperator.fromStr(rule.op());
// validate features (check for matching rules)
- validateStringMatch(country, rule, ruleOperator, ruleMatch, FeatureType.COUNTRY);
+ validateStringMatch(country, rule, ruleOperator, ruleMatch, FeatureFlag.COUNTRY);
validateAppVersionMatch(appVersion, rule, ruleOperator, ruleMatch);
- validateStringMatch(tier, rule, ruleOperator, ruleMatch, FeatureType.TIER);
+ validateStringMatch(tier, rule, ruleOperator, ruleMatch, FeatureFlag.TIER);
}
}
return ruleMatch;
}
private void validateStringMatch(String inputStr, Rule rule, RuleOperator ruleOperator, List ruleMatch,
- FeatureType featureType) {
+ FeatureFlag featureType) {
if (rule.attr().equalsIgnoreCase(featureType.name())) {
switch (ruleOperator) {
case RuleOperator.IN:
@@ -119,7 +119,7 @@ private void validateStringMatch(String inputStr, Rule rule, RuleOperator ruleOp
}
private void validateAppVersionMatch(String appVersion, Rule rule, RuleOperator ruleOperator, List ruleMatch) {
- if (rule.attr().equalsIgnoreCase(FeatureType.APPVERSION.name())) {
+ if (rule.attr().equalsIgnoreCase(FeatureFlag.APPVERSION.name())) {
switch (ruleOperator) {
case RuleOperator.GTE:
case RuleOperator.GT:
diff --git a/src/main/resources/processes/rules-matcher.bpmn b/src/main/resources/processes/rules-matcher.bpmn
index 8f9e0f1..2f1d41d 100644
--- a/src/main/resources/processes/rules-matcher.bpmn
+++ b/src/main/resources/processes/rules-matcher.bpmn
@@ -40,7 +40,7 @@
Flow_03tvbfd
-
+
Flow_03tvbfd
Flow_0df9t6r
@@ -303,4 +303,4 @@
-
\ No newline at end of file
+
diff --git a/src/test/java/net/ironoc/rules/engine/controller/FlagControllerTest.java b/src/test/java/net/ironoc/rules/engine/controller/FlagControllerTest.java
index cb999b2..65584d0 100644
--- a/src/test/java/net/ironoc/rules/engine/controller/FlagControllerTest.java
+++ b/src/test/java/net/ironoc/rules/engine/controller/FlagControllerTest.java
@@ -6,7 +6,7 @@
import net.ironoc.rules.engine.domain.ApiResponse;
import net.ironoc.rules.engine.dto.Feature;
import net.ironoc.rules.engine.dto.RuleGroups;
-import net.ironoc.rules.engine.enums.FeatureType;
+import net.ironoc.rules.engine.enums.FeatureFlag;
import net.ironoc.rules.engine.service.FeatureDetailService;
import net.ironoc.rules.engine.service.RulesService;
import org.camunda.bpm.engine.RuntimeService;
@@ -111,7 +111,7 @@ void evaluateFlags_matchesFromAllAndAny_returnsOkAndCombinedList() {
assertNotNull(response.getBody());
assertEquals(2, response.getBody().rules().size());
- assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureType.COUNTRY.name().equalsIgnoreCase(r.attr())));
- assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureType.TIER.name().equalsIgnoreCase(r.attr())));
+ assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureFlag.COUNTRY.name().equalsIgnoreCase(r.attr())));
+ assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureFlag.TIER.name().equalsIgnoreCase(r.attr())));
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/net/ironoc/rules/engine/service/RulesServiceTest.java b/src/test/java/net/ironoc/rules/engine/service/RulesServiceTest.java
index f6e6e13..08a1628 100644
--- a/src/test/java/net/ironoc/rules/engine/service/RulesServiceTest.java
+++ b/src/test/java/net/ironoc/rules/engine/service/RulesServiceTest.java
@@ -4,7 +4,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import net.ironoc.rules.engine.dto.Rule;
-import net.ironoc.rules.engine.enums.FeatureType;
+import net.ironoc.rules.engine.enums.FeatureFlag;
import net.ironoc.rules.engine.enums.RuleOperator;
import org.junit.jupiter.api.Test;
import org.springframework.core.env.Environment;
@@ -37,7 +37,7 @@ void rulesMatcher_countryIn_matches() {
List matches = service.rulesMatcher("ES", "10", "FREE", rules);
assertEquals(1, matches.size());
- assertEquals(FeatureType.COUNTRY.name(), matches.getFirst().attr());
+ assertEquals(FeatureFlag.COUNTRY.name(), matches.getFirst().attr());
assertEquals(RuleOperator.IN.name(), matches.getFirst().op());
}
@@ -56,7 +56,7 @@ void rulesMatcher_appVersionGte_matches() {
List matches = service.rulesMatcher("ES", "12", "FREE", rules);
assertEquals(1, matches.size());
- assertEquals(FeatureType.APPVERSION.name(), matches.getFirst().attr());
+ assertEquals(FeatureFlag.APPVERSION.name(), matches.getFirst().attr());
assertEquals(RuleOperator.GTE.name(), matches.getFirst().op());
}
@@ -76,4 +76,4 @@ void rulesMatcher_countryWithUnsupportedOperator_doesNotMatch() {
assertTrue(matches.isEmpty());
}
-}
\ No newline at end of file
+}