Release Notes 5.12
Multi Module Project. Project and Module Dependencies.
OpenL Tablets dependencies management is changed to provide consistent experience across our rules management environment. To ease dependencies setup we’ve added project dependencies when all the modules of dependent project have access to any rules in dependency project modules. The implementation still relies on Dependency management for modules but makes it transparent for users.
All modules inside one project can reference any rules or other tables in all modules inside the same project. It also means that a rule/table can be used from any rule of any module of the same project. We call such projects as Multi Module Projects.
The old approach when all module dependencies are explicitely defined for each module still remains in place.
The following diagrams illustrate OpenL Tablets dependencies approach:
Figure 1: Example of a project with modules’ hierarchy
Figure 2: Example of a project dependency (with all modules)
Figure 3: Example of a project and module dependencies combined
Viewing a Module in Single-module or Multi-module modes in WebStudio
To support convenient work with dependencies in WebStudio there are 2 modes of opening and viewing a module: Single-module and Multi-module.
Single-module mode opens the module taking into account only module dependencies that are defined in Environment table of the module, while Multi-module - opens all modules of the current project with all their dependencies - modules of projects defined as the project dependencies. In other words, the whole project with its infrastructure is being opened:
Properties from File Name
Table properties can be defined for all tables of a module (module level properties) in a file name of the module. It can be used if a business user is more comfortable with defining appropriate file name instead of creating Properties table. For that, a file name pattern is configured and module file name has to match the pattern:
Enhanced testing tool for Spreadsheet Results
Now WebStudio provides possibility to test cells of the resulting Spreadsheet which contain values of complex types such as
- array of values
- datatype with several attributes
- another Spreadsheet(s) nested in the current one
To use such tests ‘Custom Spreadsheet result’ feature must be activated in WebStudio using Administration page.
Moreover, in cases when test result is complex (compound) like Spreadsheet Result, a business user can choose an option to display the full result of running test cases or only values which are being tested (using ‘Compound Result’ setting).
For example, if the option is switched on, the result of running IncomeForecastTest (which is intended to check Minimal and Maximal Total Salary values in the resulting spreadsheet) looks as follows:
- All rules calls are dispatched transparently between dependent modules. Even if the rule from dependency module calls a rule which is defined in both main and dependency modules the dispatcher will choose the matching method (Before the dispatcher worked only within dependency module and chose its rules, for call to the rule from main module keyword ‘top’ was used)
- Added possibility to access any Spreadsheet Result cell from other rules by indicating cell’s column and row names, to use it in the rules explicit cell’s datatype statement is required: (MyDatatype) spreadsheet.$ColumnName$RowName
- WebStudio links to projects, modules and rule tables became bookmarkable, so that a user could quickly share links to rules related information with their colleagues without any additional explanations
- Implemented Project and Module Pages in Rules Editor where a user can view and edit project general information and configuration details
- Implemented intuitive breadcrumb navigation among projects and modules in Rules Editor
- WebStudio header design is restyled
- User profile is enriched by User Settings page which allows to define default values of project, table or testing settings individually for each user
- Implemented auto-adding of a new module in the rules project descriptor manually uploaded by a user via Repository
- During creation of a new project from zip file, project name is populated with project name defined in existing rules project descriptor or with the zip file name
- Added multi-threading execution of a test table: possibility to run their test cases in parallel by configuring settings Run test cases of the test in parallel and Thread number for tests in Administration
- Isolated projects in Rules Editor which means rules within a current project and its dependencies are accessed only
- Added possibility to add comment when saving a project from Rules Editor
- Implemented auto-adjusting of a table width to display the whole table on a page without horizontal scroll bar
- Added columns for Context variables in test results display and in Popup menu of Run test button
- Implemented automatic scrolling to table entry in left side Module tree if the table entry was hidden on the screen
- Empty value in test result display is replaced on 'Empty' label
- Synchronized the opening of all parts of a page
- Optimized memory usage in Rules Editor
- Optimized performance of Repository page: browse, edit, save
- Implemented limitation and configuration of number of compilation threads
- Provided more “business” friendly UI in Web Services Example Client
- Updated tutorials in WebStudio repository
- Display mode for showing rules in Rules Editor of WebStudio is set ‘By Type’ by default
- ‘Update table properties ('createdOn', 'modifiedBy' etc.) on editing’ setting is turned off in WebStudio by default
- Multi-module mode is switched on in WebStudio by default
- Introduced Maven Plugin: generating interface to access OpenL Tablets rules, validating and testing them
- Eclipse plug-insare discontinued and deleted from OpenL Tablets
- Tag id of a rules project descriptor (rules.xml file) is deprecated
- Dependencies in WebStudio Repository are deleted and replaced by a new implementation of Project dependencies (see Project page in WebStudio Rules Editor)
- Rules Configuration tab in Repository is rewritten on Project page in Rules Editor
- Removed Common repository (by our observations no users used it and it proved to be inefficient solution)
- Fixed bug with deleting and closing a project that contains jar file
- Fixed bug related to adding property to big tables via WebStudio
- Fixed bug according to using of Data tables from dependency module
- Fixed bug related to Table Part functionality in Data table
- Fixed bug related to transposing of Test table
- Fixed bug related to explanation functionality from dependency module
- Fixed bug of the maximum number of cell styles excess
- Fixed bugs related to using of empty value in Data tables
- Fixed bugs according to validation empty collections in Data tables instead of collection with null elements
- Fixed bugs related to testing of separate element from array
- Fixed bug related to calculation and display of results without round
- Fixed bug related to dependency functionality in Web Service
1) Eclipse plug-insare deleted. Please, use OpenL Maven Plugin instead.
2) Dependencies in WebStudio Repository do not work. There is a new implementation of project dependencies configurable in a rules project descriptor. If your rules project has project dependencies, namely, calls rules from other projects, please add corresponding dependencies on Project page via Rules Editor.
3) Replace Data table on analogous SimpleRules table in case Data table with the same name needs to be defined in several modules of the project. The reason is that Data tables are not versioned. In previous OpenL Tablets releases such case could work taking data from the root module, the behavior is changed on duplicate exception.