1. Introduction
  • Introduction to course
  • What is a Rule Engine?
  • How to Design Rules and When (not) to Use Drools.
  • Introduction to Drools Language Syntax
2. Example Code and Running it Locally
  • Structure of Example Code
  • Get example code running with IntelliJ IDEA Community Edition
  • Get example code running with Eclipse
3. Stateless Sessions
  • Introduction to Stateless Sessions
  • Step1: First two rules to validate passports
  • Step2: Split a rule
  • Step3: Bind a variable
  • Step4: Using the bound variable
  • Steps 5 and 6: Avoid repetitions
  • Stateless Sessions Summary
4. Stateful Sessions
  • Introduction to Stateful Sessions
  • Step1: Modify Object in the Middle of Session
  • Step2: Inference
  • Stateful Sessions Summary
5. Cross Products - Drools Version of SQL JOIN
  • Introduction to Cross Products
  • Step1: Join Visa Application to a Passport
  • Fixed a bug in upcoming lecture
  • Step2: Is Passport Valid 6 Months After Trip?
  • Step3: When setting a value check that property is not already with this value
  • Pattern Matching and Cross Products Summary
6. Insert New Facts and Determine Execution Order
  • Intro to Adding New Facts & Setting Execution Order
  • Step1: Create a New Fact and Insert it into the Session
  • Step2: Control Execution Order with Salience
  • Step3: Control Execution Order with Agenda-Groups
  • Step4: Use Agenda Groups with Salience
  • Step5: Run a Singe Rule from a Activation Group
  • Bonus Step! Step 6. Set Focus to Agenda Group In Drools Rule.
  • Summary of Adding Facts and Setting Execution Order
7. Insert a Fact Logically. Check That a Fact Does Not Exist.
  • Introduction to Logical Insertion of Facts and Checking the Fact Does Not Exist
  • Step1: Add Fact Using insertLogical()
  • Using optional "this" keyword in left-hand-side of MVEL rules
  • Step2: Create Fact Objects and Check that Fact Does Not Exist Using not()
  • Step3: Replace Changing of the Objects with Fact Objects
  • Step4: Reduce the Number of Rules Needed by Eliminating Positive Cases
  • Section Summary
8. Exists and Forall Conditional Elements
  • Intro to working with groups of objects
  • Step1: Rewrite visa application logic to support FamilyVisaApplications
  • Step2: Exists keyword introduced
  • Step3: Use forall to match group of objects
  • Step4: Use forall to extract object from group based on min/max value
  • Step5: Forall with only one expression
  • Summary of Working with Groups of Facts