We just released Drools version 4.0.1. This is a maintenance release whose focus was to address community feedback regarding the previous 4.0.0 release.
There are a lot of fixes and a bunch of minor improvements, and so, we strongly advise the update from 4.0.0 to 4.0.1. There are no expected backward compatibility issues.
Downloads, as usual from:
http://labs.jboss.com/drools/downloads.html
Happy Drooling.
Drools Team
<h2>Release Notes: Drools 4.0.1<br /></h2><h2>Sub-task</h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-821">JBRULES-821</a> ] ValueList in rule model </li></ul> <h2>Feature Request</h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-322">JBRULES-322</a> ] Allow the conversion of normal Java projects to Drools projects </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-642">JBRULES-642</a> ] Extract solver configuration </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-981">JBRULES-981</a> ] Milestone </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1020">JBRULES-1020</a> ] BRMS Custom Rule Selector for Creating Deployable Packages </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1039">JBRULES-1039</a> ] Add Number Guess example with Rule Flow </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1041">JBRULES-1041</a> ] Subflow </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1042">JBRULES-1042</a> ] Integrate ruleflows in drools build </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1043">JBRULES-1043</a> ] Enhanced Java completion proposals </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1051">JBRULES-1051</a> ] Guided Editor does not remmeber the folder location for new editors </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1061">JBRULES-1061</a> ] jsr94 constants wrong package builder config constant, same name as rulebase config constant </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1067">JBRULES-1067</a> ] Allow RuleAgent to take a RuleBaseConfiguration to configure the RuleBase it creates </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1077">JBRULES-1077</a> ] Decision tables to have ruleflow-group attribute column </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1084">JBRULES-1084</a> ] Provide case insentive completions in eth DRL Editor for MVEL and Java completions </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1090">JBRULES-1090</a> ] Simple data field enums in BRMS </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1120">JBRULES-1120</a> ] Implement Step Over for mvel debugger </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1123">JBRULES-1123</a> ] Custom Consequence Exception handlers </li></ul> <h2>Bug</h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-849">JBRULES-849</a> ] DynamicRulesTest fails with JDK 1.6 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-992">JBRULES-992</a> ] Optional dependencies not marked as optional in maven pom xmls </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1027">JBRULES-1027</a> ] unable to use moderately complicated expression in from </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1030">JBRULES-1030</a> ] NPE Building Rule with inexistent field </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1031">JBRULES-1031</a> ] only 4 equality checks are made for fact </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1032">JBRULES-1032</a> ] NPE in HashKey.equals when LHS checks for null object, the object is null, and there are more than 3 rules </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1033">JBRULES-1033</a> ] clearAgenda removes scheduled activations twice, resulting in a NullPointerException </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1034">JBRULES-1034</a> ] NullPointerException in a simple test </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1035">JBRULES-1035</a> ] Deploy sources jars on mvn deploy </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1036">JBRULES-1036</a> ] dialect errors if after import declarations </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1037">JBRULES-1037</a> ] Ruleflow RF file does not correctly generate RFM </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1038">JBRULES-1038</a> ] addRuleFlow throws Exceptions </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1044">JBRULES-1044</a> ] dialect appears to be a reserved keyword, not allowed in package name </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1045">JBRULES-1045</a> ] Predicate Null Pointer exception when using Java 5 Enum </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1046">JBRULES-1046</a> ] Business Object returns null due to Shadow Fact, unless declared final </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1047">JBRULES-1047</a> ] class Cast Exception when using OR (||) </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1048">JBRULES-1048</a> ] Context assist is not working for DSLs in Eclipse </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1049">JBRULES-1049</a> ] WorkingMemory.iterateFactHandles() generates endless loop with 4.0GA. </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1050">JBRULES-1050</a> ] Extra space between variable and field name in LHS causes crash </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1052">JBRULES-1052</a> ] When Inserting a fact cannot set a String field </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1053">JBRULES-1053</a> ] Import collision when static inner classes of 2 different classes have same name </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1054">JBRULES-1054</a> ] DSL-Editor: "Add" button does not work </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1055">JBRULES-1055</a> ] Regex-Special characters can not be used in DSLs. </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1056">JBRULES-1056</a> ] Performance of RuleBase().addPackage(.) goes down on sub sequent instances of RuleBase with large number of packages. </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1057">JBRULES-1057</a> ] properties keyword list is missing memberof </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1058">JBRULES-1058</a> ] nested accessors with Sets - "not contains" is not a valid operator for MVEL </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1063">JBRULES-1063</a> ] Failing location determination tests </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1064">JBRULES-1064</a> ] "->" notation for predicates missing in documentation </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1065">JBRULES-1065</a> ] Unable to return Declaration for identifier </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1066">JBRULES-1066</a> ] org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction is not serializable </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1069">JBRULES-1069</a> ] DSL sentence widget is too small and combobox with sentences should not be expanded </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1070">JBRULES-1070</a> ] Exception with "not in" condition with (int-values) </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1071">JBRULES-1071</a> ] BinaryRuleBaseLoader doesn't accept custom ClassLoader </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1073">JBRULES-1073</a> ] CompositeContextEntry is raising NPE </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1079">JBRULES-1079</a> ] Problem with "!=" field constraint </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1083">JBRULES-1083</a> ] Brackets are not always optional for non-existential quantifier "not" </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1085">JBRULES-1085</a> ] Rule fires before calling fireAllRules </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1086">JBRULES-1086</a> ] InitialFact should not be shadowed </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1087">JBRULES-1087</a> ] Context Assistant that shows list of filtered DSL does not work on DRL editor </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1089">JBRULES-1089</a> ] Getting "could not access property ('=')" for a valid rule. </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1091">JBRULES-1091</a> ] NullPointerException when the 'result' block of an 'accumulate' function returns null </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1092">JBRULES-1092</a> ] Invalid Java code generated from 'accumulate' function with nested classes </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1093">JBRULES-1093</a> ] ClassObjectFilter is not accepting subclasses of the given class </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1094">JBRULES-1094</a> ] PackageBuilderConfiguration.setDialectConfiguration() method is not correctly setting dialect configurations </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1096">JBRULES-1096</a> ] NPE when using "exists" with "from" </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1097">JBRULES-1097</a> ] Manual html_single does not have TOC entry for Chapter 9 BRMS </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1100">JBRULES-1100</a> ] BRMS Bug on view source in weblogic </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1101">JBRULES-1101</a> ] MVEL direct property accessors being converted to a ReturnValueConstraint </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1102">JBRULES-1102</a> ] Bug in DefaultBetaConstraint class indexing to never turn on </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1104">JBRULES-1104</a> ] Inserted internal Objects (like InitialFactImpl) are lost if no matching ObjectTypeNodes </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1105">JBRULES-1105</a> ] web.xml does not conform web-app_2_3.dtd </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1106">JBRULES-1106</a> ] Copied rules using a guided DSL in BRMS produce duplicate rule names in built binary packages. </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1113">JBRULES-1113</a> ] renaming a package messes up the assets in it </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1114">JBRULES-1114</a> ] Rule compilation not thread-safe </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1115">JBRULES-1115</a> ] Modifications to list objects contained within a bean and carried out during the execution of a rule are not reflected in the original list i.e. the changes are lost between the instance available within the rule and that of the original bean </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1116">JBRULES-1116</a> ] "not" doesn't work for StatelessSessions </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1125">JBRULES-1125</a> ] Java Step over is broken </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1126">JBRULES-1126</a> ] Step over in MVEL is broken </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1127">JBRULES-1127</a> ] External vars do not appear if you hve a break point on the first line </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1129">JBRULES-1129</a> ] import does not work with code competion </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1131">JBRULES-1131</a> ] Errors not including line numbers </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1134">JBRULES-1134</a> ] drools variable appears twice in context assist </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1136">JBRULES-1136</a> ] Rule not firing when expression contains nested accessors </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1137">JBRULES-1137</a> ] Rules are not removed when they have shared nodes </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1139">JBRULES-1139</a> ] code completion doesn't work as you type </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1140">JBRULES-1140</a> ] Context Assist does not show available declarations and globals </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1142">JBRULES-1142</a> ] nested accessors on the lhs of the memberOf (or not memberOf) operator lead to an exception </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1149">JBRULES-1149</a> ] Parser is only saving last CE for prefixed AND/OR </li></ul> <h2>Task</h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-678">JBRULES-678</a> ] Remove spring dependency </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1028">JBRULES-1028</a> ] importing .brxml into the application </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1059">JBRULES-1059</a> ] Online typos in Section 1 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1062">JBRULES-1062</a> ] Include DefaultSpecificationEntries and DefaultImplementationEntries in jar manifests </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1076">JBRULES-1076</a> ] Typos, Build Instruction problems in Ref Manual, revision 14125 in Section 3.4 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1088">JBRULES-1088</a> ] Spelling check on docs </li></ul> <h2>Patch</h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1128">JBRULES-1128</a> ] Xstream should be optional for drools-core and it should use the non-legacy groupId </li></ul>