Release Notes
v5.23.8 on the GitHub
New Features
Versioning by folder names
Business dimensional properties can be extracted not only from the file name, but from the containing folder names too.
Rule Services is compatible with Spring Boot
An ability to build Spring Boot Application based on Rule Services code. Now jar artifact can be used as SpringBoot component without additional configurations.
Improvements
Rule Services:
- Support inheritance of beans in Swagger and OpenAPI
- Implemented "@RulesType" annotation that allows to expose Extra Method in webservice which accept OpenL types
- Rule Services is configured to use random temporary folder for deployments cache
Core:
- Support Java 15
- An ability to set multiple properties under one pattern for file name processor
- "toBoolean(a)" function converts String to Boolean is implemented
- The rule with the newest effectiveDate is selected in case is expirationDate is not defined
- "yyyyMMdd" date pattern is defined by default for PropertiesFileNameProcessor
Rule Services, Webstudio:
- File System (local) repository type is supported for Deploy Repository
Fixed Bugs
Core:
- "The element is null" message is presented to user, if array parameter in child datatype is the same as in parent datatype
- Duplicated errors appear in the log
- No error message is presented to user, if rule or spreadsheet overloaded by dimensional property has different input parameters name per version
- A lot of "Skip duplicated message" errors in the log
- An error message is displayed for empty Decision Tables
- "Ambiguous dispatch" error is not presented to user the number of business version with different effectiveDate is even
- Cell type is identified incorrectly for float literal
- An external return is not matched with SmartRules, if array is defined in merged columns
- Incorrect date is successfully parsed from the filename by pattern
Webstudio:
- The filename pattern functionality doesn't work properly with the symbol "$", "^", "+" and "."
- Module loading failure: StackOverflowError: in case of cyclic inheritance
- Full list of patterns is not displayed on Copy module UI
- Non-alphabetical sorting of projects in Editor
- Duplicate of table with different input Alias is not displayed on the UI
- Error on clicking '+' for input types Collection, Set
- The field " Current Revision" should be renamed to "Current Revision Id"
Webstudio Repository:
- Slow performance on repository tab if there are a lot of projects
- Git merge messages misleading user
Rule Services:
- Date type serialization and deserialization are not consistent
- Swagger errors on Demo server
Updated libraries
- Spring Framework v5.2.10.RELEASE
- Spring Security v5.4.1
- Jackson v2.11.3
- Jetty Server v9.4.33.v20201020
- Tomcat v9.0.39
- commons-io v2.8.0
- commons-codec v1.15
- JGit v5.9.0.202009080501-r
- Bouncy Castle v1.67
- httpclient v4.5.13
- elasticsearch v6.8.13
- Kafka v2.5.1
- cache2k v1.6.0.Final
- JUnit v4.13.1
- Awaitility v4.0.3
- ASM v9.0
- XStream v1.4.13
- Joda Time v2.10.7
- Microsoft JDBC Driver v8.4.1.jre8
- SnakeYAML v1.27
- stax-ex v1.8.3
Migration Notes
Rule Services
The following properties were changed
Before | After |
---|---|
ruleservice.datasource.filesystem.supportVersion | Removed. |
ruleservice.datasource.deploy.clean.datasource | Removed. Use your startup script if it is required to clean files before run RuleServices. |
ruleservice.datasource.dir | production-repository.uri |
ruleservice.tmp.dir | Removed. java.io.tmpdir is used instead. |
OpenL Rules
The following API was deprecated
Before | After |
---|---|
org.openl.rules.ruleservice.core.interceptors. AnyType | org.openl.rules.ruleservice.core.interceptors. RulesType |
org.openl.rules.project.resolving. CWPropertyFileNameProcessor | Remove any references from rules.xml files. The default implementation covers this functionality out-of-the-box. |
org.openl.rules.project.resolving. PropertiesFileNameProcessor | Migrate custom implementation to use new API. Be noted that the default implementation covers multiple scenarios of parsing file names and can be used instead of the custom implementation. |