This is an incremental release on our previous build that focus on a few key improvements to round up the 6.x series.
You can find more details, downloads and documentation here:
Read below some of the highlights of the release.
You can also check the new releases for:
Some runtime environments (like for example Google App Engine) don't allow to directly create new Threads. For this reason it is now possible to plug your own ThreadFactory implementation by setting the system property drools.threadFactory with its class name.
Use of any expressions as input for a query
It is now possible to use as input argument for a query both the field of a fact as in:
query contains(String $s, String $c) $s := String( this.contains( $c ) ) end rule PersonNamesWithA when $p : Person() contains( $p.name, "a"; ) then end
Update with modified propertiesProperty reactivity has been introduced to avoid unwanted and useless (re)evaluations and allow the engine to react only to modification of properties actually constrained or bound inside of a given pattern. However this feature is automatically available only for modifications performed inside the consequence of a rule. Conversely a programmatic update is unaware of the object’s properties that have been changed, so it is unable of using this feature.
To overcome this limitation it is now possible to optionally specify in an update statement the names of the properties that have been changed in the modified object as in the following example:
Person me = new Person("me", 40); FactHandle meHandle = ksession.insert( me ); me.setAge(41); me.setAddress("California Avenue"); ksession.update( meHandle, me, "age", "address" );