Thursday, August 30, 2007

Drools 4.0.1 Released

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


Release Notes: Drools 4.0.1

Sub-task

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

2 comments:

  1. 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.
    ---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

    ReplyDelete
  2. Looks like the solver issues also got noted in the list:
    [ JBRULES-678 ] Remove spring dependency

    For the record: Drools 4 never depended on spring :)

    ReplyDelete