Release Notes
v5.22.0.1 on the GitHub
New Features
Use streaming read for xls and xlsx files
OpenL switches to use an Event API to process xls and xlxs files while in read-only mode. Consequently, WebStudio and WebServices consume much less memory when only reading xls/xlsx files. During Editing DOM read approach is still used
Functionality to use object binding in logging interceptors
Functionality supports converting of SpreadsheetResult before saving into storage
Ability to store description of Conditions, Returns and Actions in a separate table
Conditions, Actions and Returns now can be managed in separate tables and then used in SmartRules tables
Improvements
Core, Demo:
- Java 11 Support
Core:
- Support StringRange in Rules
- Support DateRange in Rules
- Ability to use $RuleId/$Rule in Rules and SmartRules
- Refactoring of OpenL Message to eliminate ThreadLocal usage
- Keyword "RETURN" is optional for Spreadsheet tables that returns a particular type
- Created a new property "calculateAllCells" for Spreadsheet type table that returns a particular type
- Ability to use SPI for loading implementation of ResolvingStrategy instead of Spring Framework
- Added a new function that receives Startdate, Enddate and returns fractional interval between it. The behavior is similar to native excel function DATEDIFF and has the same arguments. Example: dateDif(startDate, endDate, "D"), where "D" means difference in days
Webstudio:
- Added a hint for the types of SpreadsheetResult fields
- Added a the ability to save input data of executed test cases in Excel
- Reworked metainfo handling to reduce memory consumption. It is not stored for all cells like cell types, such info is loaded on demand
OpenL Tablets Repository:
- Split Design Repository to Projects Repository and Deploy Config Repository
Maven Plugin:
- Deprecated generateUnitTests parameter was removed from openl-maven-plugin
Fixed Bugs
Core:
- Out of memory error in WebStudio on open huge rating rules
- Incorrect return type for custom spreadsheet type in index operations
- Incorrect initialization of multidimensional arrays
- Date values formatted incorrectly in data table with foreign key
- Array access using user defined index isn't supported in conditions
- Impossible to cast multidimensional arrays of Alias types
- Insulation for a project between 2 users does not work
- Impossible to cast variable arrays
- Error "java.lang.IllegalArgumentException: array element type mismatch" is presented on runtime for flatten() function
- Array of double cannot cast to array of objects
- Error "Datatype validation is failed" is displayed on update datatype is project with dependency
- Error "Method is not found" appears on module update if rule calls another rules from another module, and input datatype is from jar file
- SimpleRules table incorrectly understands if Range or Array in in condition for Range datatypes
- Decision table parsing fails If two parameters is used in Decision Table expression where one parameter declaration is empty.
Core:
- Slow performance of Trace functionality for Tbasic tables
- Link to empty in errors cell doesn't work
WebServices:
- Scheme for non-standard url is returned incorrectly
- Huge memory consumption if project has a Lookup table which uses ranges
Maven Plugin:
- Maven plugin generates JavaBeans with invalid arguments in the constructor
Updated libraries
- POI v4.0.1
- ASM v7.1
- CGLIB v3.2.10
Migration Notes
OpenL Maven Plugin
Delete deprecated: generateUnitTests, unitTestTemplatePath, overwriteUnitTests in OpenL Maven Plugin
OpenL Rules
- Delete deprecated: org.openl.rules.calculation.result.convertor.* org.openl.rules.calc.result.convertor.*
- Cells calculation order in Spreadsheet type table with non-spreadsheetresult return value is changed. Calculation of such spreadsheets may need to be updated or property "calculateAllCells = false" can be added for backward compatibility.
- Month numbers are from 1 to 12 (January number is 1). Previously it was from 0.