LSPS documentation logo
LSPS Documentation
Release Notes

New Features

  • The scaffolding_forms module for the forms module with resources for prototyping of CRUD components has been added to the Scaffolding Library. LSPS-8352
  • Support for decision tables has been added: you can now design decision tables with your business rules in PDS, display and edit them in the Application User Interface, and use them to obtain decision results based on the rules. LSPS-8834
  • The Slider component has been added. LSPS-8854
  • The LocalDate data type, which represents the java.time.LocalDate, has been added. Note that related functions have been added to the Standard Library as well. LSPS-9299
  • The LSPS Application now uses Vaadin 8. This has the following impacts:

    • Internet Explorer 8, 9, and 10 are no longer supported
    • Java 8 or newer is required.
    • Connecting classes of custom form components that use Vaadin implementation might need adjusting if their Vaadin API changed. LSPS-9340

3.3.2054

Command-Line Console

Fixed Issues
  • When unloading multiple modules, the modules were not unloaded following their dependencies and unload could have failed with an exception. Now the modules are sorted according to their dependencies and unloaded in the correct order. LSPS-9888

Management Console

Fixed Issues
  • Previously, the user could have disabled themselves which caused a runtime exception. Now, the user can disable only other users from the Management Console. LSPS-9901
  • The person's properties were not displayed on first display and after saving changes on the Settings page. LSPS-9902
  • After recent changes introduced to the Setting page of a user in the Management Console, changes introduced to the user data were ignored and some sections could not be edited. LSPS-9904

PDS

Fixed Issues
  • The data on the release commit in the About dialog of the Process Design Suite were incorrect. LSPS-9922

SDK

Improvements
  • When generating classes and interface for the data type models, you can now specify a common Interface for the generated Interfaces of each given module. LSPS-9906

Web Application

Fixed Issues
  • Previously, when the user run a model instance from the Run Model view, they were navigated away, while it seemed that the view remained focused. With this update, a notification about a new model instance is displayed and the view remains focused. LSPS-9723
  • Previously, missing version.properties files of the Application User Interface or Management Console cause an exception when the user opened the About dialog. With this update, the dialogs are populated with N/A values instead. LSPS-9898

3.3.2053

Forms

Fixed Issues
  • Setting the default filter value on a Table Column with a date interval caused an exception. LSPS-9886
  • The visible property of View Models was ignored. LSPS-9893

3.3.2052

Command-Line Console

Improvements
  • The lsps-db-migration-lsps tool now supports the info command, which prints the details and status information about the migrations. LSPS-9882

Forms

Improvements
  • The PDFViewer now logs a WARN Client side returned an error: Invalid or corrupted PDF file. when the resource is not displayed since it is not a PDF format. LSPS-9830
Fixed Issues
  • When you drop multiple files to a single Drop Zone component, the files are handled at once by a single callback. Note that the change is backwards incompatible since the upload result listener has now a list of files and a list of error messages as its input. LSPS-9009
  • The multiple options filter of a grid with a custom datasource returned its current value as an Object of a non-record type making it difficult to work with it in the Expression Language. This has been corrected so it now returns a list of Filter records. LSPS-9889

Management Console

Improvements
  • The user data on the Settings page now contains all relevant data and features, such as, substitution, and security roles data. LSPS-9802
Fixed Issues
  • If the user did not have the Log:Read security right, accessing logs of model instances in the Management Console caused an error. Now the message on insufficient access right appears. LSPS-9878

PDS

Fixed Issues
  • If the user that is used to establish the connection to the LSPS Server from PDS does not have the Management:Login security right, all management views in PDS now display the "Missing rights." message.

    LSPS-9808

UI

Improvements
  • The error dialog box displayed in forms is now centered when the detail information is expanded for the first time. Also the dialog can be resized. LSPS-9887

3.3.2051

Forms

Improvements
  • The value-change event (ui::ValueChangeEvent) now has the oldValue property with the value that was stored in the binding prior to the given value change event. Therefore, if the user is changing the value, it returns the last valid value. If the binding value was set programmatically, it returns the value from binding even if the value is incorrect. LSPS-9863
Fixed Issues
  • Previously, when editing a Grid entry with a Type value, the editing failed with a ClassCastException. LSPS-9790
  • In the testing framework for forms, Javadoc for openTabById(String id) of LspsAccordion has been improved. LSPS-9833
  • An empty forms::Repeater component caused an ErrorException. LSPS-9840
  • Filters with a filter configuration (`FilterConfig) on Grids could have failed on rendering with a RuntimeException. LSPS-9864
  • As part of changes due to the update of filters to Vaadin 8, filtering of grid columns with a property of a shared record did not work correctly and could have caused an ErrorException. LSPS-9865
  • The method findByTextContent() searched the entire form, not the subtree of the given component. LSPS-9866
  • An improved error message is returned when sorting a grid according to a collection of records. LSPS-9868
  • Errors when obtaining the count of the items in a grid data source were ignored which could result in incorrect filtering and sorting. LSPS-9870

Management Console

Improvements
  • Previously, when the version.properties files of the LSPS Application, either of the Management Console or Application User Interface, did not contain all the properties, displaying the About information caused an NPE. Now, the dialog is displayed with "N/A" as values of the missing properties. LSPS-9832

3.3.2050

UI

Fixed Issues
  • In a ui::TreeTable with Vaadin 8 implementation, when an input component attempted to access the tree item iterator of the ui::TreeTable, the form rendering failed with an app.lspsException saying that the input component could not be created. LSPS-9817

3.3.2049

Cloud

Improvements
  • The LSPS Cloud has been updated to LSPS 3.3. LSPS-9829

Forms

Fixed Issues
  • The options filters in Grid Columns now display the option for null option values when defined. LSPS-9819

Other

Improvements
  • When installing LSPS Cloud Edition, the installation reported a problem running a post-install step and a bogus bundles_info_temp folder was created in the installation folder. LSPS-9831

Server

Fixed Issues
  • A handleSystemException with the message Merging of model instance failed could have occurred when a record proxy was created over a record type, that is, without a proxied record and was later deleted. LSPS-9836

3.3.2047

Forms

Fixed Issues
  • When editing system records or complex data types in a Grid, the cells with such data are now read-only even when the column is set as editable and any changes are ignored. LSPS-9806
  • When the options of an OptionsFilter on grid columns hold SelectItems with collections, the options are now displayed as expected. LSPS-9812

Management Console

Improvements
  • The layout of the General Settings view has been improved. LSPS-9814

3.3.2045

Management Console

Improvements
  • The Management:Login security right, that governs the ability to log in to the Management Console has been added. LSPS-9491

Navigation Engine

Improvements
  • The Management:Login security right, that governs the ability to log in to the Management Console has been added. LSPS-9491
Fixed Issues
  • The navigation call could have failed with an exception due to a concurrency problem during file upload. LSPS-9782

3.3.2044

Forms

Improvements
  • You can now listen for sorting and filtering on Grid with the setSortListener() and setFilterChangedListener() methods. LSPS-9793
  • The clearBinding() convenience method for <componentWIthBinding>.setBinding(null as ObjectBinding) has been added. LSPS-9798
Fixed Issues
  • Error messages on components can be added as validators (addValidator()), custom messages (setCustomErrorMessage()), the infer validation feature (inferValidator()), or showing constraint violations (showConstraintViolations() and showDataErrorMessages).

    Previously, only one set of the error messages was displayed resulting in missing error messages. LSPS-9691

  • The error popups in the Application User Interface now contain the full call-stack with precise information about the error cause. LSPS-9786
  • Previously, the server returned an exception when the user attempted to edit an enumeration in an editable grid. This update adds the editor for enumerations and the enumerations in the scenario become editable as expected. LSPS-9789
  • When filtering a grid, the selection retained items that were no longer visible. LSPS-9791
  • When a Grid Column had the value provider set to Property path and the record had value null, the server returned an NPE. With this update, a non-editable row is rendered. LSPS-9794

UI

Fixed Issues
  • The input components of UI Vaadin 8 returned an NPE when they refreshed themselves or their parent. LSPS-9800

3.3.2043

Forms

Improvements
  • You can now set the order of columns in a Grid or Table with the setColumnOrder() call. LSPS-9759
Fixed Issues
  • When the user set a SubstringFilterConfig on a Grid Column, the configuration of the substring value of the configuration was not applied on form initialization. LSPS-9783

3.3.2042

Forms

Improvements
  • You can now define the value providers for sorting and filtering for grid columns and that either in their Properties on the Sorting and Filtering tab or as parameters of the addColumn() method. LSPS-8953
  • The PDFViewer component is now by default rendered with a non-zero width and height. LSPS-9683
Fixed Issues
  • The setFiltrable(false) method did not work correctly and resulted in, the filter was displayed on all columns, even if you set it to disabled on a column. LSPS-9582
  • Methods for sorting Grid Columns setSorted(), isSorted() and isSortAscending() have been added. LSPS-9770
  • Drag-and-dropping of Grid Columns is now supported: the feature is enabled and disabled by the setColumnReorderingAllowed() method. To allow the user to check if the feature is active, the isColumnReorderingAllowed() methods have been added. The getColumns() method has been adjusted to return column in the current order with the possible changes introduced by dragging-and-droppping of columns and to include any hidden columns; LSPS-9771
  • You can now select all items in a grid in multiselect (MULTI) selection mode with the Select All check box. Note that by default the check box is not available. The availability of the check box is set with the setSelectAllCheckBoxVisible(Boolean) method. When you use the select-all feature, all items in the datasource are loaded into memory therefore make sure not to use the feature on large data sources. LSPS-9776

Management Console

Fixed Issues
  • Previously, when editing the security rights of a person, all the rights were unset and therefore removed from the person on save. This was caused by Vaadin update and has been fixed. LSPS-9766

SDK

Improvements
  • In addition to generating a Java class for a record, you can now define for each Record whether to generate Java interfaces with the required properties and, the property getters and setters. LSPS-9773
  • When generating Java classes for your data types, you can now map an existing Java class to your Enumeration types: the setting is available on the Java tab of Enumeration properties and prevents the enumeration classes from being generated. LSPS-9774
  • When generating classes for records, you can now specify the target project and package for the generated Java sources for each module. LSPS-9775

UI

Fixed Issues
  • The UI Vaadin 8 implementation of the text box component with a date has been added. LSPS-9740
  • The UI Vaadin 8 implementation of the local-date text field has been added. LSPS-9742
  • The UI Vaadin 8 implementation of the text area component has been added. LSPS-9752
  • The UI Vaadin 8 implementation of the radio-button list component has been added. LSPS-9757
  • The UI Vaadin 8 implementation of the check-box list component has been added. LSPS-9763
  • When the user tried to sort a table column that contained a record, the action resulted in a NullPointerException, which occurred as a result of a ClassCastException. Now, the column content is sorted according to record ids. LSPS-9767
  • API for UI Vaadin 7 and UI Vaadin 8 component factories is now exposed via the createV7Factory(connector) and createV8Factory(connector) methods to allow easier factory customization. LSPS-9777

3.3.2041

Command-Line Console

Improvements
  • The db-migration tool used an outdated SQL Server driver. Since the driver was no longer maintained, hibernate errors could have occurred. The Microsoft JDBC driver for SQL Server driver is now used.

    LSPS-9732

Forms

Fixed Issues
  • If a table column contained a multi-select options filter, the filter fired events that caused redundant loads of the table data source. LSPS-9737

PDS

Improvements
  • You can now easily define count queries for HQL queries directly in the query definition. Note that count queries of HQL queries with group by do not work correctly. LSPS-9727
Fixed Issues
  • You can now use parameters of HQL query in the start index and count parameters of the query. LSPS-9726

Server

Fixed Issues
  • Local variables of Inline Event Subprocesses failed to be initialized correctly. LSPS-9729

UI

Fixed Issues
  • The Vaadin 8 implementation of the UITextBox has been added: note that switching to this implementation introduces backwards incompatible changes and hence requires thorough testing. LSPS-9734
  • The UI Vaadin 8 implementation of the check-box component has been added. LSPS-9736
  • The LSPS Application has been adjusted to allow switching between Vaadin 7 and Vaadin 8 implementations of UI forms. This requires you to adapt existing LSPS Applications so that they use one of the new component factories: in the DefaultLspsAppConnector class or your custom class that extends it, adjust the getComponentFactory() method so it returns the required UI factory implementation:

    • UIComponentFactoryV7Impl to retain the current implementation, originally called UIComponentFactoryImpl.
    • UIComponentFactoryV8Impl to use Vaadin 8 implementation.

      With this factory, component implementations in Vaadin 8 will be used if available (The implementations will be provided gradually). Note that new implementations will not be backwards compatible and your forms will require thorough and full testing.

        @ Override
        public UIComponentFactory getComponentFactory() {
                    //original content:
            //return new UIComponentFactoryImpl(this);
            return new UIComponentFactoryV7Impl(this);
        }

    LSPS-9756

Web Application

Improvements
  • The db-migration tool used an outdated SQL Server driver. Since the driver was no longer maintained, hibernate errors could have occurred. The Microsoft JDBC driver for SQL Server driver is now used.

    LSPS-9732

3.3.2040

Command-Line Console

Improvements
  • The db-migration scripts now takes an optional comma-separated list of key-value pairs managed by Flyway. The list is provided as a parameter in the format keyname1=keyvalue1,keyname2=keyvalue2. To use the key value in your SQL script, use the syntax ${keyname}. LSPS-9720

Forms

Fixed Issues
  • The table column method isCollapsed() no longer requires parameter. If you used the method with a parameter in your models, make sure to adjust the calls. LSPS-9717

3.3.2039

Command-Line Console

Fixed Issues
  • The db-migration and lsps-cli tools available in the LSPS runtime package have been reworked to provide a more consistent experience: they are now provided as jar files and delivered in the cli-tools directory of the runtime package. LSPS-9596

Forms

Improvements
  • The table failed to detach some of the components that were no longer needed. Later these were detached automatically and the event was logged as a warning. This has been fixed and the logs are no longer cluttered. LSPS-9483
  • The modeling ID defined on a Reusable Form component in the calling form is now preserved on runtime. Also the findByFormId method that returns the components created by the reused form has been added to the test bench. LSPS-9682
  • To provide better support for the sorting feature of tables, the following methods have been added to table columns:

    • setSorted: sorts the column in the ascending or descending order and deactivates sorting
    • isSorted: returns whether the table is sorted by the specified column
    • isSortAscending: returns true if the sorted column is sorted in ascending order LSPS-9688
Fixed Issues
  • In the testing suite, the getId() on components with no ID defined now returns null and no longer fails with an exception. LSPS-9697
  • Previously, in Pdf Viewer, pressing Enter did not produce a change event in Internet Explorer: as a result, when the user entered a page number into the page-number field and pressed Enter, the document failed to navigate to the page. LSPS-9713

PDS

Fixed Issues
  • When defining constraints in the text editor, validation now checks if the used constraint property, tags, and constraint types exist. LSPS-9718

UI

Improvements
  • The table failed to detach some of the components that were no longer needed. Later these were detached automatically and the event was logged as a warning. This has been fixed and the logs are no longer cluttered. LSPS-9483
Fixed Issues
  • The icons were not displayed due to incorrect HTML. LSPS-9690

Web Application

Improvements
  • When attempting to perform an action over finished model instances, the server threw an exception, which was logged with its stacktrace into logs leaving them cluttered with generally irrelevant data. Now, the server logs a brief warning into the logs and the details are added to error logs. LSPS-9711

3.3.2038

Command-Line Console

Fixed Issues
  • The db-migration tool from the LSPS Runtime 3.3.2037 failed to run. LSPS-9687

Management Console

Improvements
  • A new security right, Log:Read, that governs access to Logs created by the Log task and log() function has been added. LSPS-9657

Web Application

Fixed Issues
  • Maven used by PDS has been upgraded to a newer version, which tracks the source server of artifacts instead of only checking their name and groud id. As a result, when generating the LSPS Application, some artifacts fetched from other repositories were ignored and the generation failed. After this upgrade, the maven build of the LSPS Application is run with

    -Dmaven.legacyLocalRepo=true which restores the original behavior. LSPS-9609

3.3.2037

Forms

Improvements
  • The setOnValidValue() method has been added to input components. The method runs after the value has changed and the isValid() call has returned true. LSPS-9629
  • Input components now have the getUserText() method, which returns the content of the input field even if the input does not meet the requirements of validators. Also, the setNumberFormats(List<String>) method has been added to the DecimalField so that you can now define multiple input format. LSPS-9635
Fixed Issues
  • It is now possible to clear binding of a component by passing the null parameter to the setBinding() method, for example, myTextField.setBinding(null as Reference). LSPS-9584
  • In testbench, the selectBySubstring() method has been added to the combo-box components so you can select an option that contains a substring. LSPS-9586
  • Under certain circumstances, an expandable Text Area could have lost the scroll bar. LSPS-9616
  • The robustness of data serialization has been improved to prevent potential security exploits. LSPS-9640
  • The property DataSeriesItem.itemColor that defines the color of the given data item has been added. Also, the DataSerieItem.color property, which has never been applied on the data item, is now deprecated. LSPS-9671

PDS

Improvements
  • You can use an expression to define the BLOB size in data type models, such as, 1024*1024 //evaluates to 1048576. The BLOB expression must return an Integer and cannot access any constructs or variables from higher contexts. LSPS-9541
  • Textual definitions of constraints now support auto-completion. LSPS-9560
  • The Filtered roles field of the Modeled Roles dialog for a person no longer overflows to the drop-down with its values. LSPS-9619
  • When inserting a record import onto the canvas in the data-model visual editor, the Select Record Type popup with a tree of available modules is displayed. Previously, the modules were collapsed so it was not possible to immediately use the find feature (CTRL+F). LSPS-9627
  • The methods file of forms is now generated with the non-parametric constructor stub. LSPS-9672
Fixed Issues
  • The support for tags used by constraint validation has been added to the Expression Evaluator of the Model Instances detail. LSPS-9563
  • In the forms visual editor, it was not possible to change a horizontal split panel to a vertical split panel. LSPS-9599
  • The Model Upload popup displayed when uploading modules from the Management perspective has been renamed to Module Upload to reflect its purpose more accurately. LSPS-9620
  • The icon displayed in the run configuration item has been updated. LSPS-9658

Standard Library

Improvements
  • The extension methods of functions that take Person as its required parameter have been created. LSPS-9618

UI

Fixed Issues
  • The robustness of data serialization has been improved to prevent potential security exploits. LSPS-9640

3.3.2036

Expression Language

Improvements
  • You can now create a reference to a record property using the safe-dot operator ?., for example, &person?.name LSPS-9654

Forms

Fixed Issues
  • In Internet Explorer, the RichTextArea component failed to fire value change events while the component had the focus. LSPS-9636
  • If the user requested PDF files faster than the PDF Viewer managed to load, the action resulted in an error. LSPS-9647

Server

Fixed Issues
  • When persisting a to-do with a ui::form that contained multiple View Models, the entities from the resulting lower evaluation levels were not rebound correctly. As a result, the entities on higher evaluation levels could have ended up using wrong values. LSPS-9641

Web Application

Fixed Issues
  • Previously, it was possible to run commands on the server with LSPS Application using the API of the LSPS Server. LSPS-9655

3.3.2035

Forms

Improvements
  • The setClickShortcut method has been added to the Button component. If the end-user presses the shortcut defined by the method, the button click action is performed. LSPS-9623
  • You can set the error message displayed on a Date Field or Local Date Field when the entered date is not in an allowed format with the setParseErrorMessage(String message) method. LSPS-9624
  • When opening a PDF in your browser, the browser saves data about the currently open page, applied zoom, and sidebar position. Previously, the PDF Viewer component always applied this data when it was available. Now you can enable or disable this behavior with the setRestorePdfStateOnLoad() method. LSPS-9626
  • The isConvertible() method of components that hold a value has been deprecated. Equivalent functionality is provided by the isValid() and getErrorMessages()methods. LSPS-9634

PDS

Improvements
  • In property paths, the use of dot access (.) operator is now validated as a warning when preceded by the safe-dot (?.) operator since the safe-dot access is rendered ineffective. For example, person?.address.street is considered invalid since the street access could return a NullParameterError. LSPS-9632

Server

Improvements
  • LSPS now logs messages about database schema update when a model with a modified schema is uploaded. LSPS-9638
Fixed Issues
  • When uploading a model with an updated data model and the upload strategy set to Updated database schema and a conflict between the schemas arose, the upload failed with the SqlExceptionHelper error violated - child record found. This occurred due to incorrect order when deleting the model data. LSPS-9617
  • If a to-do with a binary was persisted multiple times, the binary ID could have been used by another object: This could have resulted in a ClassCastException or use of an incorrect object or incorrect data. LSPS-9630

3.3.2034

Forms

Fixed Issues
  • When the user entered text into a text area, the page stopped responding due to an infinite loop in the text area. This happened, due to a conflict in an HTML attribute and CSS style rules of the text area. LSPS-9615

3.3.2033

Forms

Fixed Issues
  • When throwing an exception after calling the hide() method on a popup, the popup lost the path to the global exception handler and the exception failed to be handled. LSPS-9612

Installer

Fixed Issues
  • Generation and building of the LSPS Application from PDS failed. This was caused by an outdated Maven version included in the PDS. The correct Maven version is now included in PDS. If you keep experiencing issues when building the LSPS Application after PDS upgrade, please, delete the maven repository, <home>/.m2/repository by default. LSPS-9594

Server

Fixed Issues
  • When a parent record has the O-R mapping set to "Each record to own table", the tables of its child records hold only values for not-inherited fields: parent's fields are stored in the parent table. When the child inherited the ID from the parent, previously, the database did not contain a constraint that would restricts the foreign-key value in the child to be identical with the primary key of the parent. LSPS-9610

3.3.2032

Command-Line Console

Improvements
  • The flyway:clean, flyway:repair, flyway:migrate options have been added to the migration tool for LSPS database initialization and migration tool to allow to define the flyway run (the migration is run by the migration.sh and migration.bat script). LSPS-9605

Forms

Fixed Issues
  • The stream resources (files) sent from the server, for example, streams displayed in PDFViewer, now contain the "no-cache" headers to prevent caching by the browser. LSPS-9604

PDS

Improvements
  • Validation now checks whether exclusive gateways have a default outgoing flow. By default, a missing default flow is marked as a warning. LSPS-9603

3.3.2031

Forms

Fixed Issues
  • When a model used a version of the standard library that did not have the forms::setModelingId() method, the model compilation, which is performed either right after model upload or when a model is first requested, failed with a ModelUploadException. This caused backwards incompatibility of models. Models with such standard libraries are now compiled without calling the setModelingId() method and the models are compiled successfully. LSPS-9601

Navigation Engine

Improvements
  • The errors in server log now include information about which gateway was involved when applicable. LSPS-9597

3.3.2030

Forms

Fixed Issues
  • In the testing framework, the cast of element to Text Area test bench element did not work. LSPS-9577
  • The tabChangeListener() value of a TabSheet component was lost during the save and restore of a todo or document. LSPS-9593

3.3.2029

Forms

Improvements
  • Support for Accordion has been added to the testing framework. LSPS-9588
Fixed Issues
  • Under certain circumstances, the restoreState() call of a table failed with a NullPointerException. LSPS-9591
  • The Form.save() call failed with an exception on forms with an input field with a validator. This occurred due a recursion in an internal call referencing the input field itself. LSPS-9592

3.3.2028

Forms

Improvements
  • The setter and getter methods, setModelingId() and getModelingId(), have been added to all form components. LSPS-9575
Fixed Issues
  • Input values failed to be validated on refresh and hence were not marked as being invalid. LSPS-9581
  • After a refresh() call, the component validation and on-change actions were executed in an incorrect order. This caused that the on-change actions used the previously validated component value, which could have resulted in a NullPointerException or inconsistent data. LSPS-9583

PDS

Improvements
  • The setter and getter methods, setModelingId() and getModelingId(), have been added to all form components. LSPS-9575

Web Application

Improvements
  • The createUserMenu() method has been created and exposed in the DefaultMainMenu class to simplify customization of the Main Menu of the LSPS Application User Interface. LSPS-9571

3.3.2027

Expression Language

Improvements
  • You can now define Integer literals as hexadecimal in the format 0x<code>. LSPS-9552
Fixed Issues
  • Previously if a string literal was defined by a code which was out of range, the PDS validation failed with a NumberFormatException. Now validation correctly reports such a situation. LSPS-9553

Forms

Improvements
  • The Drop Zone component now allows to set the minimum and maximum number of dropped files with the setMinFiles(Integer numberOfFiles) and setMaxFiles(Integer numberOfFiles) methods. LSPS-8751
  • The Button, ActionLink, Label and Link form components can now contain HTML in their captions: call setCaptionMode() method to enable or disable the feature. LSPS-9410
  • The TableColumn.getComponentInRow() method has been added to allow you to obtain the content of a table cell easily. LSPS-9523
  • The TableColumn.getComponentInRow() method has been added to allow you to obtain the content of a table cell easily. LSPS-9523
  • In the testing frameworks, javadocs of methods for acquiring modeling components by their ID have been improved and the findByPrefixIId() method has been added. LSPS-9559
  • The getCellComponent method has been added to the table cell of the testing framework.

    Also the openUrl(String url, By anyElementId) method has been added to app tester as a convenience method for easier ad-hoc testing. LSPS-9562

  • The LspsCaption class that represents a form component caption and methods isRequired(), getCaption(), inputComponent(), hasClassName(), and getClassNames have been added to the form components testing framework. LSPS-9565
Fixed Issues
  • Support for FontAvesome 5 has been added. LSPS-9238
  • Calling setOptions() on a combo box, single select list, etc. failed to set the option caption correctly. LSPS-9532
  • The Repeater modeling ID is now rendered on the layout component created by the repeater. LSPS-9558
  • TextArea now displays the required indicator (*) when applicable. LSPS-9566

Management Console

Improvements
  • When the login name of a user changed or a user is disabled while the user is logged in, the application displayed a stacktrace and the user could not invalidate the session. Now the session is invalidated and the application is loaded on reload as expected. LSPS-9539

Navigation Engine

Fixed Issues
  • The maintain condition of a Maintain Goal was not checked after the persist() function call. LSPS-9561

PDS

Improvements
  • When the login name of a user changed or a user is disabled while the user is logged in, the application displayed a stacktrace and the user could not invalidate the session. Now the session is invalidated and the application is loaded on reload as expected. LSPS-9539
  • Constraints can now define metadata. LSPS-9554

Web Application

Fixed Issues
  • The global message area is now displayed correctly when the application uses the horizontal layout setting. LSPS-9572
  • The NoRightsPage class in the <YOUR_APP>-vaadin project has been renamed to SingleMessagePage. LSPS-9573
  • Since the support for font awesome has been deprecated by Vaadin, it is now delivered as part of the extensions of the vaadin project. If you are using your custom style, include the @include lsps-extensions-at-root; statement in your styles.scss. Failure to do so will result in missing font-awesome icons.

    @import "../../../VAADIN/themes/<my_theme>/wtpdfviewer.scss";
    @include lsps-extensions-at-root;

    LSPS-9574

3.3.2026

Forms

Improvements
  • Constructors of data series are now variadic. LSPS-9512
  • The code of the Settings page has been refactored to allow easier customization of the page. LSPS-9540
Fixed Issues
  • When using the Scaffolding Library and displaying an Entity Detail from the Entity Overview form component,

    the component allowed editing of Entity Details even though the Entity Overview was read-only. LSPS-9426

  • The RecordOption.maxRecursionDepth property for a Record on a scaffolding component was ignored. This happened when the property was defined also on a nested component. LSPS-9427
  • In the scaffolding_forms module of the Scaffolding library, the field PropertyOptions.propertyCustomForm of closure type

    was incorrectly described as having the current Record value as its input parameter, while the record property to be rendered is passed. LSPS-9530

Management Console

Improvements
  • The Server Settings view has been added to the Management Perspective and Management Console. From the view, you can set the exposed execution and database related settings. LSPS-9502
  • The icons from the deprecated FontAwesome have been substituted with Vaadin icons in the Management Console. LSPS-9527
  • It is now possible to change the login name of a person after it was created. LSPS-9529
Fixed Issues
  • Under certain circumstances, saving of a person's details failed silently. LSPS-9531

PDS

Improvements
  • A Form Preview button has been added to the main menu of the Forms editor so you can preview forms quicker. LSPS-8900
  • The auto-completion visualization has been improved:

    • The proposal popup displayed when the user presses Ctrl+SPACE while writing code now retains its size on next display.
    • The popup with description displayed when the user selects an item in the proposal popup wraps the content. LSPS-9418
  • The Server Settings view has been added to the Management Perspective and Management Console. From the view, you can set the exposed execution and database related settings. LSPS-9502
  • The Module Dependency view has been improved. LSPS-9524
  • It is now possible to change the login name of a person after it was created. LSPS-9529
  • Validation now detects unused process and subprocess variables. LSPS-9533
  • You can now use Search > Find Unused Modeling Elements to find unused private module variables. Note that the validation of unused private module variables has been hence removed. LSPS-9534
  • Record constraints can now be defined in a text editor using specific syntax. LSPS-9536

Server

Fixed Issues
  • The deserialization of the core::File field of a shared Record no longer fails with a NulllPointerException. LSPS-9549

Standard Library

Fixed Issues
  • New JSON functions that handle parsing to existing data structures and provide more flexibility when working with JSON have been added to the Standard Library. LSPS-9519

3.3.2025

PDS

Improvements
  • The content assistant in decision table in SFEEL has been improved and now offers the time() and duration() conversion functions. LSPS-9144
  • You can now rename a custom component and its component property from the context menu of their declaration in the formComponents definition file. LSPS-9394
  • The context menu of finished model instances contained the restart button. Since the restart operation is not an operation allowed on finished model instances, the button has been disabled. LSPS-9488
  • The elements from organization models are now included in the autocompletion of the expression evaluator in the Management perspective. LSPS-9489
Fixed Issues
  • Due to a memory leak, PDS slowed down gradually and could have potentially crashed. LSPS-9522

Server

Improvements
  • A Signal Start event could have used only references to parent context data to store its Signal. Now it can now use a reference to variable from its own context in its Signal parameter. LSPS-9517
Fixed Issues
  • Accessing a deleted Internal Record property sometimes failed with an NPE. Such access now consistently finishes with an LspsEntityNotFoundException. LSPS-9511

3.3.2024

PDS

Improvements
  • It is now possible to disable parameters on roles and role units in organization models. LSPS-9487
  • The disabling of presentation hints was not applied. LSPS-9510
Fixed Issues
  • In the Java perspective, running a Form Preview caused a null pointer exception. LSPS-9497

Server

Fixed Issues
  • Merging a record that is created and deleted on a non-base level and deleted on the same level has been improved to prevent missing context data after merge. LSPS-9507
  • An internal issue in EvaluationLevelUtils.attachEvaluation has been fixed. LSPS-9513

3.3.2023

Forms

Fixed Issues
  • The API method setCloseable() and isCloseable have been added to the dashboard widget: the methods allow to hide and display the close button. LSPS-8786

Server

Fixed Issues
  • Binding of expressions, which is used, for example, when working with levels of ui forms, model update data, etc. failed to load, which could cause failures on ui reloads. LSPS-9493

UI

Fixed Issues
  • The refresh of lazy tables now works as expected. LSPS-9496

3.3.2020

Forms

Improvements
  • The Text Area now supports automatic vertical resizing to fit its content: use setExpandable(true) to activate the feature. LSPS-9226

UI

Fixed Issues
  • Lazy tables now display scrollbars when applicable as expected. LSPS-9177

Web Application

Improvements
  • The refreshBadges() method, which sets the numbers in the badges of navigation items, now calls the getBadge() method. This makes customizing the calculation of badge values simpler. LSPS-9484

3.3.2019

Expression Language

Improvements
  • Validation now detects identical case value in a switch statement as a problem. LSPS-9464

Forms

Fixed Issues
  • A grid component could have experienced performance problems. This was resolved by upgrading the underlying Vaadin 8. LSPS-9469

Server

Improvements
  • The flushAndRefresh(<sharedRecords>) function that reloads shared records from the database has been added to the standard library. This function serves to fetch the shared records from the database in cases when they might have been modified by custom objects or third-party systems. LSPS-8577
  • The TodoListCriteria type used by the Join Todo List of standard queries has been extended with the includeRejected and includeAllStates fields so that it is now possible to query todos that are no longer alive. LSPS-9357

3.3.2018

Forms

Improvements
  • The LocalDate renderer has been added to the Grid renderers. LSPS-9322

PDS

Fixed Issues
  • Management views now support sorting by column values. LSPS-9453

Server

Improvements
  • The LSPS_SETTINGS.VALUE column with database LSPS settings has been changed to VARCHAR(2000) to accommodate longer parameter values.

    LSPS-9461

Fixed Issues
  • When a model instance was created but its model has not been loaded yet, for example, on application server restart, the changes on shared records in the modeling instance were not persisted. LSPS-9452
  • If a record is changed on different levels in the same transaction, the server no longer returns an optimistic lock exception. LSPS-9459

UI

Fixed Issues
  • When the list of options in a combo-box changed on runtime, the options were not displayed in the correct order. LSPS-9458

3.3.2017

Management Console

Fixed Issues
  • If the user submitted changes on a person multiple times from the same page, the submit failed with the com.whitestein.lsps.os.exception.PersonStaleException since the server failed to fetch the updated person from the database. LSPS-9400
  • The substitution section listed the substitutes in a lazy-loaded table with the active substitutes selected. The error occurred when a user who was not listed yet was an active substitute since the select failed. With this update, the token field is used instead of the table. LSPS-9447

Server

Fixed Issues
  • As part of model update, all goal and plan assignments were executed anew as the goals and plans were set to their target status in the updated model instances. This resulted in the repeated execution of the assignments since these were already executed in the original process instance. With this update, the goals and plan are set to their target status without executing their assignments. LSPS-9455

Web Application

Fixed Issues
  • The LSPS launcher for the SDK Embedded Server continued even if the OpenEJB launch failed. With this update, the launcher stop and reports an error. LSPS-9451

3.3.2016

Forms

Improvements
  • The showContextMenu()┬ámethod which displays a context menu has been added to forms components. Also the ClickEvent now contains data on the coordinates of the click. This allows you to display the context menu at the clicked position, for example, { e:ClickEvent -> panel.showContextMenu(e.x, e.y)}. LSPS-9270
Fixed Issues
  • When the user dropped a file into a drop zone, the action failed with a

    java.lang.RuntimeException as the upload result listener of the drop zone was called. LSPS-9429

  • The setAcceptedMimeTypes() method of the forms::Upload button failed to set the accepted mime types. LSPS-9434

PDS

Improvements
  • When designing a form, you can now add columns to a grid or table component from its context menu. LSPS-9412
Fixed Issues
  • When a module contained multiple enumeration types with the same name, a warning was logged and validation was not working correctly. LSPS-9446

Standard Library

Improvements
  • The deprecated UI components, ui::TreeTable and ui::Tree, have been removed from the standard library. LSPS-9122

UI

Fixed Issues
  • The setAcceptedMimeTypes() method of the forms::Upload button failed to set the accepted mime types. LSPS-9434

3.3.2015

Navigation Engine

Fixed Issues
  • Binary values were registered on an incorrect evaluation level since they were registered prematurely before the evaluation-level assignment. This resulted in a NullPointerException. LSPS-9428

PDS

Improvements
  • On a process, when the user unselects the Executable option, the Instantiate automatically option is now automatically disabled since it does not apply. LSPS-9414

3.3.2014

Packaging

Fixed Issues
  • The BAM library is now available from the LSPS maven repo. LSPS-9415

3.3.2013

Forms

Fixed Issues
  • On a Table, the getComponents() method failed to return components. LSPS-9407

3.3.2011

Forms

Improvements

Server

Improvements
  • When a BPMN error or escalation occurs, all interrupted tasks

    are notified by the call ExecutableTask.terminate(TaskContext, TerminationReason): The call now contains the error code from TerminationReason for errors, and escalation code and payload for escalations. LSPS-9406

Standard Library

Fixed Issues
  • A model instance created by the createModelInstance() function called from a process now has the parent model instance set correctly.

    LSPS-9409

Web Application

Fixed Issues
  • The server returned a NullPointerException when a user without the required security rights attempted to log in. LSPS-9384

3.3.2010

PDS

Improvements
  • Validation now detects a problem on form variables, that are never read and on form variables that are never assigned a value.

    LSPS-9367

Fixed Issues
  • Rendering of the toolbar in the comparison editor has been fixed. LSPS-9402

SDK

Improvements
  • The LspsRemote class has been refactored and now takes the user and password as its arguments. Note that the class API has changed as a result. LSPS-9398

Server

Fixed Issues
  • Proxy sets were not saved when a model instance was persisted. LSPS-9403

3.3.2009

Management Console

Fixed Issues
  • Adding a property to a person resulted in an ServerRpcManager$RpcInvocationException or in an incorrect property value. The underlying problem has been fixed and person properties are stored correctly. LSPS-9399

3.3.2008

PDS

Improvements
  • The H2 database used by the PDS and SDK embedded servers has been upgraded. LSPS-9364
  • Validation now detects a problem on local variables that are never read or are never assigned a value. LSPS-9368
  • Validation now detects unused function parameters. LSPS-9369
  • Validation now detects unused ui-forms parameters. LSPS-9387
  • The settings of validation have been reordered. LSPS-9396
  • You can now search for all modeling elements based on their modeling ID. Note that the ID serves to identify elements from the server logs. LSPS-9397
Fixed Issues
  • The content assistant of the expression evaluator in the Model Instance Detail now contains the decision table records and methods. LSPS-9382

Server

Fixed Issues
  • The required parameters and returned errors of the RecordProxySet methods have been modified to resemble the functions in proxy.func. LSPS-9378

3.3.2007

Other

Fixed Issues
  • Infinispan of the JBoss and Wildfly servers returns the `ISPN000299:

    Unable to acquire lock after 15 seconds` due to a failed Vaadin heartbeat attempt. To fix this problem, the following has been done:

    • The underlying Infinispan setting acquire-timeout has been increased on the embedded servers. Consider increasing your acquire-timeout setting as well.
    • The heartbeat interval has been increased to prevent such situations. Adjust an existing Application User Interface as follows to apply the fix:

      In the web.xml file, set heartbeatInterval to 300s

    <param-name>heartbeatInterval</param-name>
    <param-value>300</param-value>
    ~~~~~ [LSPS-9358](https://experjira.whitestein.com/browse/LSPS-9358)</li>
    </ul>
    ### PDS
    ##### Improvements
    <ul>
    <li>You can now set proxy server for PDS LSPS connections in *Preferences* > *General* > *Network Connection*. [LSPS-9360](https://experjira.whitestein.com/browse/LSPS-9360)</li>
    </ul>
    ##### Fixed Issues
    <ul>
    <li>When a visual function definition with more than one metadata key-value pair was converted to the textual function definition,
    the metadata key-value pairs were not separated with a comma. [LSPS-9373](https://experjira.whitestein.com/browse/LSPS-9373)</li>
    </ul>
    ### Server
    ##### Fixed Issues
    <ul>
    <li>When fetching an instance of an audited shared record, the fetching could have failed with an error due to an infinite loop in some cases. [LSPS-9376](https://experjira.whitestein.com/browse/LSPS-9376)</li>
    </ul>
    # 3.3.2006 {#id3_3_2006}
    ### PDS
    ##### Improvements
    <ul>
    <li>When generating data type model from a database schema, the following improvements have been introduced:
    * If a type already exists in the module, it is detected: a new type is no longer generated under such circumstances.
    * Relationships between new types and existing types are generated.
    * Fields are generated in the order of database columns.
    * If the database table mapped to an existing type contains additional columns which are not in the existing type, the columns are *not added* to the existing type. [LSPS-8831](https://experjira.whitestein.com/browse/LSPS-8831)</li>
    </ul>
    ##### Fixed Issues
    <ul>
    <li>A validation warning is detected when the user defines a property of a custom form component as "Property is displayed in editor" on a component that is a child from a component which defines such a property already. [LSPS-9343](https://experjira.whitestein.com/browse/LSPS-9343)</li>
    <li>If a process that starts with a task is used as a reusable subprocess, validation no longer detects an error. [LSPS-9355](https://experjira.whitestein.com/browse/LSPS-9355)</li>
    </ul>
    ### Server
    ##### Fixed Issues
    <ul>
    <li>The server returned an LspsRuntimeException when a RecordProxySet merge call with optimistic lock check attempted to merge a proxy to its versioned record instance that was deleted. With this update, the server correctly detects a conflict. [LSPS-9350](https://experjira.whitestein.com/browse/LSPS-9350)</li>
    </ul>
    # 3.3.2005 {#id3_3_2005}
    ### Forms
    ##### Improvements
    <ul>
    <li>You can now search for read and write access to form and popup variables from their context menu in the Outline view. [LSPS-9356](https://experjira.whitestein.com/browse/LSPS-9356)</li>
    </ul>
    ### PDS
    ##### Fixed Issues
    <ul>
    <li>On shared-record fields, the *Exclude from optimistic lock* option is now disabled if the *Version* or *Primary key* options are selected (previously, on such fields, the *Excluded from the optimistic lock* option was ignored). [LSPS-9338](https://experjira.whitestein.com/browse/LSPS-9338)</li>
    </ul>
    ### Server
    ##### Improvements
    <ul>
    <li>Additional [HealthCheck](../server-deployment/serverparams.html#lspsappmonitoring) MBeans have been added to the LSPS Server to provide further monitoring details. [LSPS-7969](https://experjira.whitestein.com/browse/LSPS-7969)</li>
    </ul>
    ##### Fixed Issues
    <ul>
    <li>If the version field of a shared record was of the type Date, the server returned an *org.hibernate.engine.jdbc.spi.SqlExceptionHelper* error. [LSPS-9347](https://experjira.whitestein.com/browse/LSPS-9347)</li>
    <li>The count query for queries with the distinct option ignored the distinct option when used by the table and grid components to facilitate paging. [LSPS-9353](https://experjira.whitestein.com/browse/LSPS-9353)</li>
    </ul>
    # 3.3.2004 {#id3_3_2004}
    ### PDS
    ##### Improvements
    <ul>
    <li>When creating a form definition, the default setting of the *Use FormComponent-based UI* option now depends on the imported modules. [LSPS-9311](https://experjira.whitestein.com/browse/LSPS-9311)</li>
    </ul>
    ##### Fixed Issues
    <ul>
    <li>When you renamed a module and changed its path in the data types information in a REST webservice definition, the *Generate* action ignored the new module name. [LSPS-8866](https://experjira.whitestein.com/browse/LSPS-8866)</li>
    <li>In some cases, the right-hand side of an expression with a compound-assignment operator (+=, -=, etc.) was not validated. [LSPS-9328](https://experjira.whitestein.com/browse/LSPS-9328)</li>
    </ul>
    ### SDK
    ##### Improvements
    <ul>
    <li>You can now [generate record java sources](../custom-application/contextmanipulation.html#classesforrecords) for Enumerations. [LSPS-9291](https://experjira.whitestein.com/browse/LSPS-9291)</li>
    </ul>
    ### Server
    ##### Improvements
    <ul>
    <li>Validation failed to detect a problem when the condition of a conditional start event used a local variable of the process, although the variable cannot be used since it is not initialized at the moment the condition is checked. [LSPS-9257](https://experjira.whitestein.com/browse/LSPS-9257)</li>
    <li>Functions that check for conflicts when merging proxies of versioned records have been added. [LSPS-9332](https://experjira.whitestein.com/browse/LSPS-9332)</li>
    </ul>
    ##### Fixed Issues
    <ul>
    <li>Model update failed on forms types update. Now, forms are excluded from model update as expected. [LSPS-8948](https://experjira.whitestein.com/browse/LSPS-8948)</li>
    <li>A proxy merge could have overwritten a record that was changed by another proxy on a versioned record. [LSPS-9315](https://experjira.whitestein.com/browse/LSPS-9315)</li>
    <li>For a shared record with optimistic locking, if a proxy and the proxied instance were changed in the same transaction, no conflict was detected. [LSPS-9334](https://experjira.whitestein.com/browse/LSPS-9334)</li>
    <li>The `TypeValue.getType()`, `TypeValue.getCompiledType()` methods returned incorrect types. The method implementation has been fixed. [LSPS-9344](https://experjira.whitestein.com/browse/LSPS-9344)</li>
    </ul>
    ### Standard Library
    ##### Improvements
    <ul>
    <li>The functions `date()` and `formatDate()` that take the locale argument have been added. [LSPS-9323](https://experjira.whitestein.com/browse/LSPS-9323)</li>
    </ul>
    # 3.3.2003 {#id3_3_2003}
    ### Command-Line Console
    ##### Improvements
    <ul>
    <li>The `updatePerson` command that allows you to change your password has been added. [LSPS-9316](https://experjira.whitestein.com/browse/LSPS-9316)</li>
    </ul>
    ### Documentation
    ##### Improvements
    <ul>
    <li>The *Process Application*, front-end web application for end users, has been renamed to *Application User Interface* to reflect the actual purpose of the application. [LSPS-9319](https://experjira.whitestein.com/browse/LSPS-9319)</li>
    </ul>
    ### Expression Language
    ##### Improvements
    <ul>
    <li>The compound-assignment operators `+=`, `-=`, `*=`, `/=`, `%=` have been added. [LSPS-9243](https://experjira.whitestein.com/browse/LSPS-9243)</li>
    </ul>
    ##### Fixed Issues
    <ul>
    <li>Data types now define their visibility as *public* or *private*. [LSPS-2865](https://experjira.whitestein.com/browse/LSPS-2865)</li>
    </ul>
    ### Forms
    ##### Improvements
    <ul>
    <li>The select components *Combo Box*, *Single Select List*, *Multi Select List*, *Check Box List* and *Radio Button List* can now define their options as a collection: the label for the options is calculated as the value returned by the toString() call on the collection item. [LSPS-6170](https://experjira.whitestein.com/browse/LSPS-6170)</li>
    <li>Previously, if you wanted to insert an icon from the vaadin font into your form, you had to insert a piece of html code with the required classes set into a Label component. You can now use the `vaadinIicon()` function to do so. Also, to get a list of the available icons, you can use the `allVaadinIconNames()` function. [LSPS-9227](https://experjira.whitestein.com/browse/LSPS-9227)</li>
    </ul>
    ### Installer
    ##### Fixed Issues
    <ul>
    <li>If the user did not select the *Create desktop shortcut* option, the process resulted in a corrupt installation. [LSPS-8934](https://experjira.whitestein.com/browse/LSPS-8934)</li>
    </ul>
    ### PDS
    ##### Improvements
    <ul>
    <li>The select components *Combo Box*, *Single Select List*, *Multi Select List*, *Check Box List* and *Radio Button List* can now define their options as a collection: the label for the options is calculated as the value returned by the toString() call on the collection item. [LSPS-6170](https://experjira.whitestein.com/browse/LSPS-6170)</li>
    <li>The underlying Eclipse has been upgraded to Eclipse Oxygen. [LSPS-9163](https://experjira.whitestein.com/browse/LSPS-9163)</li>
    <li>You can now enter the `@Disabled` annotation into a method definition file before the record name to exclude all the methods from validation. [LSPS-9182](https://experjira.whitestein.com/browse/LSPS-9182)</li>
    <li>It is now possible to copy and paste the properties in the Custom Form Component editor. [LSPS-9183](https://experjira.whitestein.com/browse/LSPS-9183)</li>
    <li>The method visibility is now visually indicated on individual items of the Outline view. [LSPS-9230](https://experjira.whitestein.com/browse/LSPS-9230)</li>
    <li>The PDS content assist now correctly offers public and protected methods of the supertypes for `super`. [LSPS-9234](https://experjira.whitestein.com/browse/LSPS-9234)</li>
    <li>The Expand All and Collapse All buttons have been added to the model instance tree in the Model Instance view. [LSPS-9244](https://experjira.whitestein.com/browse/LSPS-9244)</li>
    <li>LSPS supports WildFly 11, which is now also used as the PDS Embedded Server. [LSPS-9261](https://experjira.whitestein.com/browse/LSPS-9261)</li>
    <li>If you adjust the position of an end of a flow element, such as, a data-type
    relationship, process flow, etc. you can reset the position of the end back to the default from the flow's context menu. [LSPS-9289](https://experjira.whitestein.com/browse/LSPS-9289)</li>
    </ul>
    ##### Fixed Issues
    <ul>
    <li>Previously, the PDS Embedded Server returned the following bogus error, when initializing its H2 database:

    Exception to find schema version.: org.h2.jdbc.JdbcSQLException: Table "LSPS_SCHEMA_VERSION" not found;

    ~~~~~

    This occurs due to a missing table with the data on the database schema, which is not required by the PDS Embedded Server. With this update, the PDS Embedded Server returns a warning. LSPS-8946

  • The GO-BPMN Search allows you to define whether to search for functions, methods, or constructors. LSPS-9222
  • If an HQL query used the keyword distinct in its select, the query failed with a com.whitestein.lsps.lang.exception.ValidationException error. LSPS-9271
  • In an HQL query, select can now use property path as well as an alias. LSPS-9272
  • In an HQL query, a property of a record was resolved incorrectly when used in the with clause and the query failed with an org.hibernate.hql.internal.ast.ErrorCounter error. LSPS-9274
  • Under certain circumstances, saving a modified data-type definition file after undoing changes could have failed with an exception. LSPS-9287
  • In the Expression Evaluator, pressing CTRL+Enter inserted a new line character \n into the evaluated expression. The key combination now send the expression for evaluation as is as expected. LSPS-9302

Platform

Fixed Issues
  • Previously, it was necessary to replace the javassist of the WildFly and JBoss server with a custom LSPS javassist and modify the jboss-deployment-structure.xml accordingly. With this update, these changes are incorporated in the jboss-deployment-structure.xml, which renders these steps unnecessary. LSPS-9097

Server

Improvements
  • The server now logs information on incorrect LSPS database schema version. LSPS-8187
  • The change proxy mechanism has been reworked to provide a more flexible and safer way of working with shared records.

    • It is now recommended not to merge your proxies directly but adding them to a RecordProxySet object and merge the set.
    • You can now define whether the server should perform an optimistic-locking check on the records on merge.
    • The merge functions mergeProxiesDeep(RecordInstance1, ..) and mergeAllProxiesDeep(List<RecordInstances>) have been removed. The same functionality can be achieved with the merge call of a RecordProxySet. LSPS-9215
  • The HealthCheck MXBean with attributes related to monitoring of the LSPS Application has been added and is accessible from JMX monitoring tools such as JConsole. The MXBean can be used for integration with Nagios. LSPS-9242
Fixed Issues
  • If, during model update, a transformation of a global variable that was added in the new model used the old() call, the update could have failed with a NullPointerException on the call. LSPS-9191
  • Native queries previously failed to map Boolean database type to a record property when running on a MySQL database. LSPS-9221
  • The BinaryHolder type is now serializable. LSPS-9288

Standard Library

Improvements
  • The notifyModelInstance() function that allows you to invoke a model instance has been added to the Standard Library. LSPS-9095
  • The function and extension method getProperty() has been added: it takes a Record and a String name parameters and returns the property of the Record with the name or null if such a property does not exist. LSPS-9211
  • The function sortByKey() has been added: it takes a collection of objects to be sorted, the keyExtractor closure that retrieves the keys to use for sorting and returns a list of elements sorted by the keys produced by the given keyExtractor. LSPS-9214
  • The groupBy() function, which aggregates a collection of items into groups with particular classifiers, has been added. LSPS-9224
  • The getRecordSupertype() function has been added: it takes a record type and returns its supertype.

    LSPS-9241

  • The function toInteger(String string, Integer radix) that allows the user to parse numbers with different bases has been added. LSPS-9255
  • The function isReadOnly(PropertyPath) and its extension method

    have been added. LSPS-9265

  • The functions for checking properties isPrimaryKey(Property property), isAutogenerated(Property property), isVersion(Property property) have been added. LSPS-9266
Fixed Issues
  • Previously, a record could have had two fields with the same name

    where one was inherited from its supertype and the other field was defined on the record. Such a situation now renders the model invalid. LSPS-9180

UI

Improvements
  • The Navigation Link component is now considered an action component. LSPS-9304
Fixed Issues
  • The Link component failed to navigate to the target location due to incorrect logic in history storing. LSPS-9301

Web Application

Improvements
  • When you generated the LSPS Application, PDS previously created the maven build configuration and application launch configuration as local files in the current workspace. These launcher configurations are now created in the <YOUR_APP>-embedded project so they can be easily shared and version-controlled as part of the application. LSPS-9223
Fixed Issues
  • The technical user processAgent can no longer log in to the Process Application via the login page. LSPS-9200

3.3.2002

Expression Language

Fixed Issues
  • If the iterator of the foreach loop was changed via its reference from the loop, write access was successful. Such write access now causes an error on runtime. LSPS-9159

Forms

Fixed Issues
  • A NullPointerException that occurred when saving documents with ui forms has been fixed. LSPS-9154

PDS

Improvements
  • You can now create queries in HQL. LSPS-9000
  • The Module Management view of the Management perspective now displays the module hash code and the number of unfinished model instances if applicable. LSPS-9030
  • If you declare a function with no parameters as an extension method, the validation now detects the missing required parameter as an error. LSPS-9131
  • TODO markers in task parameters are now detected and displayed in the Task view. LSPS-9142
Fixed Issues
  • When the user defined a UI listener in the Listener dialog and then selected Listener is defined by expression, the generated expression did not contain the executionContext field and the listener was executed in the top level context. LSPS-9136

Standard Library

Fixed Issues
  • An exception could occur when the user attempted to open or submit a saved to-do. This happened due to inconsistencies in the context of objects returned by the makeCopy() method of model instances and the

    synchronize(ModelInstance original, ModelInstance toBeSynchronized)

    of EvaluationLevelUtils. The calls now return objects with correct context. LSPS-9174

UI

Fixed Issues
  • When the user defined a UI listener in the Listener dialog and then selected Listener is defined by expression, the generated expression did not contain the executionContext field and the listener was executed in the top level context. LSPS-9136

3.3.2001

Expression Language

Improvements
  • Closures which reference only their arguments and global variables are executed more efficiently. LSPS-8878
  • The memory footprint of contexts related to closure and function invocations has been significantly diminished. LSPS-9082

PDS

Improvements
  • The Expression Evaluator REPL View has been added so you can test expressions on design time. LSPS-8920
Fixed Issues
  • When you changed the name of an element in the Properties view and a diagram with the element was displayed, the name in the diagram was not refreshed immediately. LSPS-9069

Standard Library

Improvements
  • The getAllSubGoals(Goal goal) and getSubGoals(Goal goal) functions and their extension methods that return the immediate and all sub-goals of a goal have been added. LSPS-9103

3.3.2000

Other

Fixed Issues
  • After installing LSPS Cloud Edition, PDS failed to connect to the server due to a certificate unsupported by older Java versions. Now the installer as well as PDS will warn the user that a newer Java version is required. The Java bundled with the installer has been upgraded so the certificate is now accepted by this Java as well. LSPS-8849

SDK

Improvements
  • If an implementation Java class of a task was not available on the server, the system failed to detect the problem. The system now logs the full stack trace in such cases so it is easier to identify the problem.

    In addition, you can now upload models created in LSPS 3.0 and older and check whether a task implementations is missing. This was previously not possible because the HumanInteractionTask was removed in LSPS 3.1. On execution, the task throws an exception. LSPS-8929