### Drools 6.5.0.Final is available

The latests and greatest Drools 6.5.0.Final release is now available for download.

This is an incremental release on our previous build that focus on a few key improvements to round up the 6.x series.

Read below some of the highlights of the release.

You can also check the new releases for:

Happy drooling.

## What’s new?

### Core Engine

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 properties

Property 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);
ksession.update( meHandle, me, "age", "address" ); 

#### Monitoring framework improvements

A new type of MBean has been introduced in order to provide monitoring of the KieContainers, and the JMX MBeans hierarchical structure have been revisited to reflect the relationship with the related MBeans of the KieBases. The JMX objectnaming has been normalized to reflect the terminology used in the Kie API.A new type of MBean has been introduced in order to provide monitoring for Stateless KieSession, which was not available in previous releases.

### Drools Workbench

#### Guided Rule Editor : Support formulae in composite field constraints

Composite field constraints now support use of formulae. When adding constraints to a Pattern the “Multiple Field Constraint” selection (“All of (and)” and “Any of (or)”) supports use of formulae in addition to expressions.

#### Authoring – Project Editor – Reimport button

The “Reimport” button invalidates all cached dependencies, in order to handle scenarios where a specific dependency was updated without having its version modified.