Drools - Ability to define rules at runtime?

22,661

Solution 1

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

Solution 2

Read the documentation and check out the tests about "KnowledeAgent" to see what you can do and how you can do it.

Share:
22,661
Soumya Simanta
Author by

Soumya Simanta

Updated on September 09, 2021

Comments

  • Soumya Simanta
    Soumya Simanta over 2 years

    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.

  • bfrguci
    bfrguci over 4 years
    Is there a equivalent for Drools 7+ (I am using 7.27.0.Final). The code you point to uses internal classes/methods (KnowledgeBase and KnowledgeSession), while the KieBase class does not have a addPackage method.
  • Liam Bohl
    Liam Bohl about 3 years
    Does anyone have the power to resurrect that lost file, DynamicRulesTest.java?
  • DiegoAlfonso
    DiegoAlfonso over 2 years
    All the links from your answer are currently broken