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

I love getting emails like this on the mailing list :) Drools 4.0.1 is 200x faster than 4.0.0 for Patterns that use a large number of field constraints.
ReplyDelete---paste from email---
A nice surprise, the latest 4.0.1 GA is running 35% faster than my
patch for the following two JIRA bugs:
http://jira.jboss.com/jira/browse/JBRULES-1102?page=all
http://jira.jboss.com/jira/browse/JBRULES-1101?page=all
So I guess there were additional improvements that made this cut.
For the rest of the list, the above two fixes made my load tests run
200x faster than 4.0.0 GA.
thanks,
-- yuri
Looks like the solver issues also got noted in the list:
ReplyDelete[ JBRULES-678 ] Remove spring dependency
For the record: Drools 4 never depended on spring :)