Version 7

    Drools 6.0 Feature List

    The purpose of this document is to provide a brief enumeration of new Drools features along with indication if the feature will be included into Drools 6.0. The enumeration is incomplete and subject to change. Each feature links to a document with its description.

    Initial version of this document focuses on DRL syntax changes, other areas may be added later.

     

    Update June 2013: remaining DRL changes/enhancements including Functional Programming have been deferred to Drools 7.

    DRL syntax related features

     

    Feature
    Included in Drools 6.0?
    Breaks backward compatibility?
    Comment

    Grouped  Accessors for Nested Objects

    yesno
    Inline Casts and Coercionyesno
    Unit Supportyesno
    Collection Filtering and XPath like statements? -> nono
    Flow operators with XPath like notation? -> nono
    Assignments? -> nono
    Blocksprobably yes?
    Then Blocksprobably yesno
    Conditional Blocksprobably yes**no
    Switch Blocksprobably yes**no
    Higher Order Queries (Query literal)? -> nono
    Query to add labeled blocks? -> no?
    Queries to support "then" blocksnono
    Pluggable Joins (builtins)nono
    LHS Mutable Objects? -> nono
    Annotationsyes?
    Tuple Filtersnono
    Accumulate? -> nono
    XOR Conditional Element? -> nono
    Inline Code Blocks? -> nono
    List element and Sublist Selection? -> nono
    Range Generation? -> nono
    Block Execution Timenono
    Event Sequencing? -> nono
    Type Safe Queries? -> noyes
    Anonymous LHS? -> nono




    Modified Activations should not refirenoyes
    Type safe annotationsyesyes
    Make boolean CEs ("guards") non-blockingnoyes
    Permit named constants in DRL (and their import from a DRL package)yesno
    Add CE templates? -> no
    no
    Enable RemoveIdentities by defaultyesyes




    Functional Programming In Drools (details below):(whole FP deferred to Drools 7)

    - Defining first-class functionsnono
    - Higher-Order functionsnono
    - Anonymous functions (lambda)nono
    - Partially applied functions (currying)nono
    - Functions composition and function applications pipingnono
    - Building a function librarynono
    - Rethinking advanced conditional elements in functional termsnono
    - Defining inline custom accumulate functionsnono
    - List generation, comprehension and manipulationnono

     

    ** Conditional and Switch blocks partially overlap, so probably there will be only one of them