We just released Drools v4.0.2. This is a minor release with a few improvements on existing features and several bug fixes. We also included a lot of new documentation, specially in the examples section.
Important: there is one backward compatibility break when using Rule Flow. If you use Rule Flow, please check the section 1.2.5 of the manual for details.
We would like to really thanks all the contributors that helped on getting this release out. From those contributing patches and docs, to those testing and reporting bugs and providing feedback. The list is a bit long to post all names here and I may incur in a mistake forgetting someone, so our open public thank you to you all!
This is now the stable version of Drools and from now on, we expect to only release eventual bug fixes in this branch. We are starting now the development of the new major release of Drools and new features shall all be added to it.
For those curious about what is coming, please check previous posts on this blog. Mark’s slides presented at Synasc also talk about several things we want to do for the coming versions.
Follows the release notes.
Happy Drooling
Drools Team
Release Notes
Sub-task
<ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-779">JBRULES-779</a> ] Better error reporting in the GUI </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-996">JBRULES-996</a> ] Admin screen option to remove archive items </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1210">JBRULES-1210</a> ] Implement support to multi-pattern accumulate to the XML parser. </li></ul> <h2><span style="font-size:100%;">Feature Request</span></h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-910">JBRULES-910</a> ] upgrade GWT to 1.4 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-944">JBRULES-944</a> ] Support in Rule Workbench for custom colors </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1040">JBRULES-1040</a> ] Multi-pattern accumulate support </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1098">JBRULES-1098</a> ] Add action support in ruleflow </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1107">JBRULES-1107</a> ] Support for multiple pattern in accumulate source pattern </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1118">JBRULES-1118</a> ] Add support for rf, xml and dsrl into drools-ant task </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1138">JBRULES-1138</a> ] MVEL code completion does not work for nested expressions </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1155">JBRULES-1155</a> ] In Decision Table actions, cannot reference variables that were not referenced in LHS </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1165">JBRULES-1165</a> ] StatelessSessionResult should have getGlobal </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1175">JBRULES-1175</a> ] soundslike operator </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1178">JBRULES-1178</a> ] trivial jbrms issues </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1183">JBRULES-1183</a> ] Add global support in ruleflow </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1184">JBRULES-1184</a> ] Refresh snapshot binaries if needed </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1185">JBRULES-1185</a> ] Add support to RuleBase events on the Event Support system </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1189">JBRULES-1189</a> ] Auto coercion of String to date in MVEL actions </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1196">JBRULES-1196</a> ] Cannot specify file and dir paths with spaces using RuleAgent properties file </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1198">JBRULES-1198</a> ] Add a launch shortcut for debugging drools applications </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1201">JBRULES-1201</a> ] Allow rule agent to pick up DRL files and compile as needed </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1227">JBRULES-1227</a> ] Add drools-analytics support to drools-ant </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1228">JBRULES-1228</a> ] Enums to allow reference to another fields value </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1236">JBRULES-1236</a> ] Sort getters alphabetically in drop-down </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1241">JBRULES-1241</a> ] Dynamic rules should be able to lock for a series of updates and fireAllRules should be optional </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1252">JBRULES-1252</a> ] DrlDumper does not dump import functions </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1255">JBRULES-1255</a> ] add alternating coloured rows for rule analysis reporting and allow for user provided css </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1256">JBRULES-1256</a> ] publish source jars with maven </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1257">JBRULES-1257</a> ] Add Banking Example from John Dunning </li></ul> <h2><span style="font-size:100%;">Bug</span></h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-723">JBRULES-723</a> ] Eclipse plugin detects error inconsistently and without location information </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1013">JBRULES-1013</a> ] Two functions with Janino compiler end up with out of memory error </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-1124">JBRULES-1124</a> ] Code completion does not work for 'with' blocks </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1141">JBRULES-1141</a> ] context assist no longer works for functions in the drl. </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1144">JBRULES-1144</a> ] Toggling breakpoint gives an exception </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1145">JBRULES-1145</a> ] Break points do not work at all </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1146">JBRULES-1146</a> ] No variables are shown for Debug points </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1148">JBRULES-1148</a> ] Out of memory exception asserting more than 100 facts </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1151">JBRULES-1151</a> ] Bulding sources from root folder fails </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1152">JBRULES-1152</a> ] my unit tests are hanging with drools 4.0.1 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1153">JBRULES-1153</a> ] Accumulate/Collect can't be used in queries </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1154">JBRULES-1154</a> ] ClassCastException retrieving query parameters </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1156">JBRULES-1156</a> ] WorkingMemoryFileLogger is raising NPE for rules containing unbalanced OR CEs </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1157">JBRULES-1157</a> ] threads using one ruleset throws exception </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1159">JBRULES-1159</a> ] Function calls or static method calls do not work for the MVEL dialect </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1164">JBRULES-1164</a> ] DSL is not working well when mapping includes () </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1166">JBRULES-1166</a> ] BRL not rendering inpattern eval() correctly (for a predicate) </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1169">JBRULES-1169</a> ] PredicateConstraint and/or MVEL Constraint issue? </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1170">JBRULES-1170</a> ] ClassCastException using dynamic salience </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1171">JBRULES-1171</a> ] Nested accessors in "from" clause are not supported in depth more then 2 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1172">JBRULES-1172</a> ] In nested accessors "this" keyword is required in front </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1174">JBRULES-1174</a> ] debug steps into "when" statement </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1177">JBRULES-1177</a> ] Problem when adding dynamic rules to networks with shared AlphaNodes </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1179">JBRULES-1179</a> ] Premature rule execution </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1180">JBRULES-1180</a> ] java.lang.ClassCastException: org.drools.reteoo.RightInputAdapterNode </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1182">JBRULES-1182</a> ] serialized rules using MVEL depend on a compiler class </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1187">JBRULES-1187</a> ] Bug in guided editor when you add a boolean restriction field </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1190">JBRULES-1190</a> ] Can't use "=" in a DSL expression </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1191">JBRULES-1191</a> ] compilation error when consequence has no space between rule mappings </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1193">JBRULES-1193</a> ] Getting org.mvel.PropertyAccessException in rule flow actions when using class names without package </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1202">JBRULES-1202</a> ] primitive types all return Longs for getValue </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1203">JBRULES-1203</a> ] Shadow facts of final classes not working correctly </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1204">JBRULES-1204</a> ] Problem with memberOf and/or eval used in collect statement </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1205">JBRULES-1205</a> ] AND works in a rule, but OR gives a classCastException </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1207">JBRULES-1207</a> ] RuleBase serialization does not handle the process field </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1208">JBRULES-1208</a> ] Errors for some OR junctions in LHS conditional elements </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1211">JBRULES-1211</a> ] Rules with accumulators cannot be serialized </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1212">JBRULES-1212</a> ] Rete throws NoClassDefFoundError when asserting facts with classess loaded by inaccessible classloader. </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1217">JBRULES-1217</a> ] RuleFlow Editor -> Constraint Editor -> Imports Editor context help </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1220">JBRULES-1220</a> ] Integration with jBPM does not work </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1221">JBRULES-1221</a> ] org.drools.base.accumulators.CountAccumulateFunction error when building a package with rules including an accumulate construct in Drools BRMS 4.0.1 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1223">JBRULES-1223</a> ] Concurrent problem in MVEL </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1224">JBRULES-1224</a> ] regular expressions inside mvel expressions require escaping </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1231">JBRULES-1231</a> ] Functions do not get added to new BRMS package when package imported from drl file </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1239">JBRULES-1239</a> ] Fix class loaders so that creating multiple rulebase with separate class loader hirarchy works </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1240">JBRULES-1240</a> ] Remove Dialect state from PackageBuilderConfiguration </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1244">JBRULES-1244</a> ] Ruleflows should have a package name </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1245">JBRULES-1245</a> ] class cast exception </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1248">JBRULES-1248</a> ] <literal-restriction> requires an 'value' attribute, but it can't be null </literal-restriction></li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1253">JBRULES-1253</a> ] drools-examples-drl does not work under Java 6 as-is </li></ul> <h2><span style="font-size:100%;">Task</span></h2> <ul><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-683">JBRULES-683</a> ] Document solver in the manual </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-834">JBRULES-834</a> ] Setup decent svn:ignore on all modules </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1082">JBRULES-1082</a> ] minor changes to the drools documentation </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1160">JBRULES-1160</a> ] Update DSL docs to include new features </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1162">JBRULES-1162</a> ] Minor corrections in IDE documentation </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1163">JBRULES-1163</a> ] Update ORG homepage to be more up to date with 4.0 </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1200">JBRULES-1200</a> ] Documentation for Number Guess Example </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1206">JBRULES-1206</a> ] ParserException on misplaced parenthesis </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1233">JBRULES-1233</a> ] Solver should use slf4j, like jbrms </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1237">JBRULES-1237</a> ] Upgrade MVEL library to 1.2.final </li><li> [ <a href="http://jira.jboss.com/jira/browse/JBRULES-1238">JBRULES-1238</a> ] Upgrade BRMS to use jboss seam version 2.0 </li></ul>