Skip to content

Commit d5e47ce

Browse files
authored
BAEL-9161 Added forward chaining example (#18745)
* Added forward chaining example * Updated pom
1 parent 47d7124 commit d5e47ce

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

drools/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@
6262

6363
<properties>
6464
<httpcore.version>4.4.16</httpcore.version>
65-
<drools.version>9.44.0.Final</drools.version>
66-
<poi.version>5.2.3</poi.version>
67-
<optaplanner-core.version>8.32.0.Final</optaplanner-core.version>
65+
<drools.version>10.1.0</drools.version>
66+
<poi.version>5.4.1</poi.version>
67+
<optaplanner-core.version>9.44.0.Final</optaplanner-core.version>
6868
</properties>
6969

7070
</project>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.baeldung.drools.forward_chaining;
2+
3+
import com.baeldung.drools.config.DroolsBeanFactory;
4+
import com.baeldung.drools.model.Applicant;
5+
import com.baeldung.drools.model.SuggestedRole;
6+
import org.kie.api.runtime.KieSession;
7+
8+
public class ForwardChaining {
9+
public static void main(String[] args) {
10+
ForwardChaining result = new ForwardChaining();
11+
result.forwardChaining();
12+
}
13+
14+
private void forwardChaining() {
15+
KieSession ksession = new DroolsBeanFactory().getKieSession();
16+
Applicant applicant = new Applicant("Daniel", 38, 1_600_000.0, 11);
17+
SuggestedRole suggestedRole = new SuggestedRole();
18+
19+
ksession.setGlobal("suggestedRole", suggestedRole);
20+
ksession.insert(applicant);
21+
22+
int fired = ksession.fireAllRules();
23+
System.out.println("Rules fired: " + fired);
24+
System.out.println("Suggested role: " + suggestedRole.getRole());
25+
26+
ksession.dispose();
27+
}
28+
29+
}

drools/src/main/resources/com/baeldung/drools/rules/SuggestApplicant.drl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ rule "Suggest Manager Role"
1414
suggestedRole.setRole("Manager");
1515
end
1616

17-
rule "Suggest Senior developer Role"
17+
rule "Suggest Senior Developer Role"
1818
when
1919
Applicant(experienceInYears > 5 && experienceInYears <= 10)
2020
Applicant(currentSalary > 500000 && currentSalary <= 1500000)

0 commit comments

Comments
 (0)