anchor.diff:  [[_drools.releasenotesdrools.7.0.0]]
  -= What is New and Noteworthy in Drools 7.0.0
  +
  += Breaking changes in Drools 7.0 from 6.x
  +
  +== Type preserving accumulate functions
  +
  +In Drools 6 when using the ``sum`` function inside an accumulate pattern the result was always a Double regardless of the
  +field type on which the sum was performed. This caused the following 3 problems:
  +
  +* Loss of precision: the sum of a long `1881617265586265321L` will incorrectly return `1.88161726558626534E18`.
  +The BigDecimal sum of `0.09` and `0.01` will also be incorrect.
  +
  +* Loss of performance: summing with a Double total is significantly slower than summing with a Long or an Integer.
  +
  +* Leaked complexity: it enforced the user to pattern matching on Double, or more generically (suggested choice) on Number,
  +while it may be expected that the result of summing on a field of type Integer would be an Integer as well.
  +
  +Conversely Drools 7 preserves the type of the expression on which the sum is executed, so it will be possible to directly
  +match on that type as in:
  +
  +[source]
  +----
  +Long(...) from accumulate(..., sum($p.getLongWeight()))
  +----
  +
  +== Renaming TimedRuleExecutionOption
  +
  +The KieSession option to control when timed rules have to be automatically executed has been renamed into `TimedRuleExecutionOption` fixing a typing mistake in its name which affected previous releases; the property has been aligned into `drools.timedRuleExecution`.
  +
  +[cols="3", options="header"]
  +.Name changes
  +|===
  +|
  +|previous releases
  +|version `7.0.0.Final`
  +
  +|KieSession option
  +|`TimedRuleExectionOption`
  +|`TimedRuleExecutionOption`
  +
  +|property
  +|`drools.timedRuleExection`
  +|`drools.timedRuleExecution`
  +|===
  +
  += What is New and Noteworthy in Drools 7.0
   
   == Multithreaded rule engine
   
  
positive.code: new Thread( () -> executor.runUntilHalt( adultUnit ) ).start();
  ----
  
  ==== Data sources
  
  A ``DataSource`` is a source of the data processed by a given rule unit. A rule unit can have zero or more data sources and
  to each DataSource declared inside a rule unit corresponds a different entry-point into the rule unit executor. A DataSource
  
negative.code: Rules using salience or agenda-group are currently not supported by the parallel engine. In case they are present inside
  the rule base and compiler emits a warning and automatically switches back using the single threaded implementation.
  ====
  
  == OOPath improvements
  
  