Changes in Model RealTime 12.0

Model RealTime 12.0.1

176531: Create Sample for gRPC

A new sample that shows how a realtime application can implement a gRPC server is now available at https://github.com/HCL...TWARE/lib-grpc-server

176529: Qualifier is not generated for nested type reference when it comes from external TC

Qualifier is now properly generated to C++ code for references to nested type when it is included into the build via external TC

176494: Question marks in model compiler log when Windows language is Hebrew

The encoding format for the model compiler server log is set to UTF-8. All the unicode characters in the log would be displayed correctly without any distortion.

176492: Fix XXE vulnerability for XML parsing

Model RealTime 12.0.1 has become more secure by eliminating the possibility of XXE attacks when XML files are read.

176474: Make TCJS files more user-friendly

The properties are sorted in the TC file with sources, parents and pre-requisites on top followed by other properties alphabetically sorted. During sorting, the comments at the top of a property would be moved along with the property to the new position. There is a preference "Auto sort properties on save" under RealTime Development -> Transformation Configuration editor to turn on/off the sorting. By default the sorting of the TC file is turned on.

176464: Constructor initializer for capsule constructor to be generated in order

Constructor initializer for the capsule constructor is now generated properly in order

176448: Closing brace and semi-colon get commented out in generated code

Closing brace now always gets generated in the new line if there is a comment for a initial value

176275: Run Model RealTime runtime library as an independent task in a QT application

A new sample is available on GitHub showing how a realtime application generated by Model RealTime can be integrated with a UI developed with Qt. See https://github.com/HCL...WARE/qt-traffic-light

176062: CVE-2023-52389: Uplift POCO to version 1.12.5p2 in lib-tcp-server

LibTcpServer library previously used POCO version 1.12.4, which is vulnerable to CVE-2023-52389. In this release POCO version was uplifted to 1.12.5p2, which is not vulnerable.

172317: State comment added in parent model instead of child

When a state comment is added to an inherited redefined state, the container of the comment is the redefined state located in subCapsule.

127771: Run Active Transformation sometimes appeared in loop

Fixed the looping of Run active transformation dialog when there is some problem during the save of the opened code editors and also when user cancels the save operation.


Model RealTime 12.0.0

176463: Improve dependency injection for incarnation of optional capsule parts

The dependency injection service of the TargetRTS (as implemented in RTInjector) was improved. It's no longer necessary to register create functions for optional capsule parts which may be incarnated by a sub capsule of the capsule that types the capsule part. Now, if no create function is registered for a capsule part that gets incarnated, RTInjector will not attempt to create an instance of the capsule based on the static type of the capsule part. Instead it will fallback to creating the capsule instance in the default way. This improvement means that it's now only necessary to register create functions for those capsule parts where you want to override the default behavior of creating capsule instances.

176391: Enhance Properties view to select substitutable types for optional abstract capsule parts

When isSubstitutable property is checked for a capsule part, SET button can be used to specify which specialized that inherits from the abstract capsule will be used by the capsulePart to incarnate at run-time.
Clicking on the Set button opens a dialog box containing a list of all capsules that inherit from the abstract capsule.
Checkboxes are provided against each subcapsule which can be used to create/delete dependencies with <create> stereotype.
These dependencies can be used to navigate to the specialized capsule.
Note: Unbound capsules containing a dependency will be displayed as "Unresolved Capsule" in the dialog box.

176350: In Code-to-Model Sync, ANT task from command-line hangs

Now code to model synchronization Ant task no longer requires a running model compiler server, thus avoids hanging when started from command line. Note, that for command line execution sync is performed only for the specified TC and not for its prerequisites. An Ant task attribute mapFile can be used instead of a concrete TC to sync all projects including prerequisites. For the command line code generation scenario model compiler can automatically generate a mapFile for syncing with additional option --syncMap <full/path/to/mapFile.map>

176214: Automation for Code to model synchronization should accept absolute TC path

Now code to model synchronization Ant task supports absolute path for TC file specified as file:/ URI in transformConfig argument.