Rulebook Versions Save

100% Java, Lambda Enabled, Lightweight Rules Engine with a Simple and Intuitive DSL

v0.11

5 years ago
  • Rules are made injectable using @Autowired with SpringAwareRuleBookRunner
  • ERROR_ON_FAILURE now throws meaningful exceptions
  • @RuleBean is now used to properly decorate Spring POJO rules

v0.10

6 years ago

This release includes:

  • Enhanced support for Spring Boot Fat Jars
  • Additional logging in RuleAdapter
  • Fix for mapping facts to instance variables in POJO rules when NameValueReferableMap key is different than NameValueReferable name
  • Corrections to the README

v0.9.1

6 years ago

Null facts used in the invocation of a rule caused an exception. This patch allows null facts to be used without throwing an exception.

v0.9

6 years ago
  • Added Rules Auditing
  • Updated DSL to include support for Rules Auditing
  • Added Rules Auditing for POJO Rules

v0.8.1

6 years ago
  • Fixed POJO Results - previously getResults() on RuleBookRunner always returned Optional true; now it only returns Optional true if a Result was set
  • Fixed Spring Boot Bug - when POJO Rules were packaged in a Spring Boot uber jar, RuleBookRunner would fail to scan rules in a package; this has been corrected

v0.8

6 years ago
  • RuleBooks using the RuleBookBuilder now must specify a default result immediately affter a result type is specified
  • A Rule can break the rule chain when a rule fails if RuleChainActionType.STOP_ON_FAILURE is specified when the Rule is created
  • Errors are no longer logged when a default result is not specified for a RuleBookRunner

v0.7

6 years ago
  • RuleBooks are made thread safe for POJO and DSL created RuleBooks
  • RuleBooks can now be safely used as singletons with Spring
  • RuleBook results are now unique per thread

v0.6.2

6 years ago
  • Result reads are now chained on POJO Rules - fixes Megabank example
  • Conditions omitted from POJO rules now cause actions to always fire (instead of never fire)

v0.6.1

6 years ago

NameValueTypeConvertible is used in the lambda when() and then() functions. Previously, it was decorating the FactMap, but not delegating to its toString method. This meant when filtering facts via the using() method and using the System.out::println function reference, the String value of the fact was not being outputted (e.g. in the Home Loan example in the README).

The bug was corrected by having NameValueTypeConvertible delegate its toString method to the map it decorates.

v0.6

7 years ago
  • added BigDecimal to NameValueTypeConvertibleMap
  • added Boolean to NameValueTypeConvertibleMap

Now when() and then() methods in the DSL will be able to convert facts of an unspecified type easily to BigDecimal or Boolean types using the methods getBigDeciVal() and getBoolVal, respectively.