Skip to content

Commit 1d173a3

Browse files
authored
Release v2.5 (#26)
* Release v2.5 * Update and rename FeatureType.java to FeatureFlag.java * Update FeatureDelegate.java * Rename FeatureDelegate.java to FeatureCountryDelegate.java * Update ApiApplication.java * Update RulesService.java * Update FeatureCountryDelegate.java * Update RulesServiceTest.java * Update FlagControllerTest.java * Update rules-matcher.bpmn * Rename FeatureCountryDelegate.java to CountryDelegate.java * Update RulesAggregatorDelegate.java * Update CountryDelegate.java * Update FlagControllerTest.java * Update RulesServiceTest.java
1 parent 72d74d6 commit 1d173a3

9 files changed

Lines changed: 23 additions & 23 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.ironoc.rules.engine</groupId>
88
<artifactId>simple-rules-engine</artifactId>
9-
<version>2.4-SNAPSHOT</version>
9+
<version>2.5-SNAPSHOT</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

src/main/java/net/ironoc/rules/engine/ApiApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ static void main(String... args) {
2525

2626
@EventListener
2727
public void processPostDeploy(PostDeployEvent event) {
28-
runtimeService.startProcessInstanceByKey("loanApproval");
28+
runtimeService.startProcessInstanceByKey("Rules_matcher");
2929
}
3030
}

src/main/java/net/ironoc/rules/engine/delegate/FeatureDelegate.java renamed to src/main/java/net/ironoc/rules/engine/delegate/CountryDelegate.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import java.util.Objects;
1010

1111
@Component
12-
public class FeatureDelegate implements JavaDelegate {
12+
public class CountryDelegate implements JavaDelegate {
1313

14-
private static final Logger LOGGER = LoggerFactory.getLogger(FeatureDelegate.class);
14+
private static final Logger LOGGER = LoggerFactory.getLogger(CountryDelegate.class);
1515

1616
public static final String VAR_COUNTRY = "country";
1717

@@ -21,4 +21,4 @@ public void execute(DelegateExecution execution) {
2121
String country = Objects.toString(execution.getVariable(VAR_COUNTRY), "").trim();
2222
LOGGER.info("Country captured='{}' (matching is performed in RulesAggregatorDelegate via RulesService).", country);
2323
}
24-
}
24+
}

src/main/java/net/ironoc/rules/engine/delegate/RulesAggregatorDelegate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void execute(DelegateExecution execution) {
4949
if (skip || !featureEnabled) {
5050
matchedRules = new ArrayList<>();
5151
} else {
52-
String country = Objects.toString(execution.getVariable(FeatureDelegate.VAR_COUNTRY), "").trim();
52+
String country = Objects.toString(execution.getVariable(CountryDelegate.VAR_COUNTRY), "").trim();
5353
String appVersion = Objects.toString(execution.getVariable(AppVersionDelegate.VAR_APP_VERSION), "").trim();
5454
String tier = Objects.toString(execution.getVariable(TierDelegate.VAR_TIER), "").trim();
5555

@@ -73,4 +73,4 @@ public void execute(DelegateExecution execution) {
7373
throw new IllegalStateException("Failed to serialize matched rules to JSON", e);
7474
}
7575
}
76-
}
76+
}

src/main/java/net/ironoc/rules/engine/enums/FeatureType.java renamed to src/main/java/net/ironoc/rules/engine/enums/FeatureFlag.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package net.ironoc.rules.engine.enums;
22

3-
public enum FeatureType {
3+
public enum FeatureFlag {
44

55
TIER, APPVERSION, COUNTRY
66
}

src/main/java/net/ironoc/rules/engine/service/RulesService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import net.ironoc.rules.engine.domain.ApiResponse;
77
import net.ironoc.rules.engine.dto.Feature;
88
import net.ironoc.rules.engine.dto.Rule;
9-
import net.ironoc.rules.engine.enums.FeatureType;
9+
import net.ironoc.rules.engine.enums.FeatureFlag;
1010
import net.ironoc.rules.engine.enums.RuleGroup;
1111
import net.ironoc.rules.engine.enums.RuleOperator;
1212
import org.camunda.bpm.engine.delegate.DelegateExecution;
@@ -93,16 +93,16 @@ protected List<Rule> rulesMatcher(String country, String appVersion, String tier
9393
Rule rule = this.objectMapper.convertValue(ruleMap, Rule.class);
9494
RuleOperator ruleOperator = RuleOperator.fromStr(rule.op());
9595
// validate features (check for matching rules)
96-
validateStringMatch(country, rule, ruleOperator, ruleMatch, FeatureType.COUNTRY);
96+
validateStringMatch(country, rule, ruleOperator, ruleMatch, FeatureFlag.COUNTRY);
9797
validateAppVersionMatch(appVersion, rule, ruleOperator, ruleMatch);
98-
validateStringMatch(tier, rule, ruleOperator, ruleMatch, FeatureType.TIER);
98+
validateStringMatch(tier, rule, ruleOperator, ruleMatch, FeatureFlag.TIER);
9999
}
100100
}
101101
return ruleMatch;
102102
}
103103

104104
private void validateStringMatch(String inputStr, Rule rule, RuleOperator ruleOperator, List<Rule> ruleMatch,
105-
FeatureType featureType) {
105+
FeatureFlag featureType) {
106106
if (rule.attr().equalsIgnoreCase(featureType.name())) {
107107
switch (ruleOperator) {
108108
case RuleOperator.IN:
@@ -119,7 +119,7 @@ private void validateStringMatch(String inputStr, Rule rule, RuleOperator ruleOp
119119
}
120120

121121
private void validateAppVersionMatch(String appVersion, Rule rule, RuleOperator ruleOperator, List<Rule> ruleMatch) {
122-
if (rule.attr().equalsIgnoreCase(FeatureType.APPVERSION.name())) {
122+
if (rule.attr().equalsIgnoreCase(FeatureFlag.APPVERSION.name())) {
123123
switch (ruleOperator) {
124124
case RuleOperator.GTE:
125125
case RuleOperator.GT:

src/main/resources/processes/rules-matcher.bpmn

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
<bpmn2:outgoing>Flow_03tvbfd</bpmn2:outgoing>
4141
</bpmn2:serviceTask>
4242

43-
<bpmn2:serviceTask id="Activity_0sdwngs" name="Country Code Valid / Supported?" camunda:class="net.ironoc.rules.engine.delegate.FeatureDelegate">
43+
<bpmn2:serviceTask id="Activity_0sdwngs" name="Country Code Valid / Supported?" camunda:class="net.ironoc.rules.engine.delegate.CountryDelegate">
4444
<bpmn2:incoming>Flow_03tvbfd</bpmn2:incoming>
4545
<bpmn2:outgoing>Flow_0df9t6r</bpmn2:outgoing>
4646
</bpmn2:serviceTask>
@@ -303,4 +303,4 @@
303303
</bpmndi:BPMNShape>
304304
</bpmndi:BPMNPlane>
305305
</bpmndi:BPMNDiagram>
306-
</bpmn2:definitions>
306+
</bpmn2:definitions>

src/test/java/net/ironoc/rules/engine/controller/FlagControllerTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import net.ironoc.rules.engine.domain.ApiResponse;
77
import net.ironoc.rules.engine.dto.Feature;
88
import net.ironoc.rules.engine.dto.RuleGroups;
9-
import net.ironoc.rules.engine.enums.FeatureType;
9+
import net.ironoc.rules.engine.enums.FeatureFlag;
1010
import net.ironoc.rules.engine.service.FeatureDetailService;
1111
import net.ironoc.rules.engine.service.RulesService;
1212
import org.camunda.bpm.engine.RuntimeService;
@@ -111,7 +111,7 @@ void evaluateFlags_matchesFromAllAndAny_returnsOkAndCombinedList() {
111111
assertNotNull(response.getBody());
112112
assertEquals(2, response.getBody().rules().size());
113113

114-
assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureType.COUNTRY.name().equalsIgnoreCase(r.attr())));
115-
assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureType.TIER.name().equalsIgnoreCase(r.attr())));
114+
assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureFlag.COUNTRY.name().equalsIgnoreCase(r.attr())));
115+
assertTrue(response.getBody().rules().stream().anyMatch(r -> FeatureFlag.TIER.name().equalsIgnoreCase(r.attr())));
116116
}
117-
}
117+
}

src/test/java/net/ironoc/rules/engine/service/RulesServiceTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import com.fasterxml.jackson.databind.ObjectMapper;
66
import net.ironoc.rules.engine.dto.Rule;
7-
import net.ironoc.rules.engine.enums.FeatureType;
7+
import net.ironoc.rules.engine.enums.FeatureFlag;
88
import net.ironoc.rules.engine.enums.RuleOperator;
99
import org.junit.jupiter.api.Test;
1010
import org.springframework.core.env.Environment;
@@ -37,7 +37,7 @@ void rulesMatcher_countryIn_matches() {
3737
List<Rule> matches = service.rulesMatcher("ES", "10", "FREE", rules);
3838

3939
assertEquals(1, matches.size());
40-
assertEquals(FeatureType.COUNTRY.name(), matches.getFirst().attr());
40+
assertEquals(FeatureFlag.COUNTRY.name(), matches.getFirst().attr());
4141
assertEquals(RuleOperator.IN.name(), matches.getFirst().op());
4242
}
4343

@@ -56,7 +56,7 @@ void rulesMatcher_appVersionGte_matches() {
5656
List<Rule> matches = service.rulesMatcher("ES", "12", "FREE", rules);
5757

5858
assertEquals(1, matches.size());
59-
assertEquals(FeatureType.APPVERSION.name(), matches.getFirst().attr());
59+
assertEquals(FeatureFlag.APPVERSION.name(), matches.getFirst().attr());
6060
assertEquals(RuleOperator.GTE.name(), matches.getFirst().op());
6161
}
6262

@@ -76,4 +76,4 @@ void rulesMatcher_countryWithUnsupportedOperator_doesNotMatch() {
7676

7777
assertTrue(matches.isEmpty());
7878
}
79-
}
79+
}

0 commit comments

Comments
 (0)