It is possible to define rules dynamically completely at runtime ?
Also change the ruleset at runtime.
For example,
at time = t_1 the ruleset is { R1, R2, R3 }
at time = t_2 the ruleset is { R1, R3, R4 }
.....
R1, R2 are rules that are defined at runtime.
Thanks.
Yes, Drools is completely dynamic. You can add/remove/replaces rules at runtime. All the existing sessions are automatically updated in order to keep consistency. Check the documentation/javadoc:
http://www.jboss.org/drools/documentation
And here you can see some integration tests:
DynamicRulesTest.java
Read the documentation and check out the tests about "KnowledeAgent" to see what you can do and how you can do it.
In Drools 5 you just need to change KnowledgeBase, it will keep the KnowledgeSession implicitly up to date. That is what the integration tests tell you. You actually do not need a KAgent for that.