Changes in Model RealTime 12.0

Model RealTime 12.0.3

176750: 12.0.2: Error: Program “” not found in PATH

Error: Program “<default>” not found in PATH has been fixed.

This error could appear when building generated CDT target project, and transformation configuration make command is defined with rtperl, for example,

tc.compilationMakeCommand = 'rtperl -S rtsetup.pl $defaultMakeCommand';

Now make command is correctly set on the generated CDT project and rtperl by default points to installation location under ${RSA_RT_HOME}/tools.

176645: Introduce TargetRTS configuration macros for the constants that control the freeList

Introduced new TargetRTS configuration macros for the constants that control the freeList: MIN_FREE_LIST_SIZE, MAX_FREE_LIST_SIZE, RTMESSAGE_BLOCK_SIZE.

176616: When creating a new trace, complete trace setting from previous trace is used

It is now possible to have fully isolated trace sessions, where settings for one trace session do not affect other trace sessions. It is accomplished by means of a "trace manager" that computes a unified set of trace settings from all active sessions.

Model RealTime 12.0.2

176636: Tables are not getting refreshed automatically in docked properties view

The tables in the docked properties view were not refreshed automatically when there are changes. An explicit click on the table was required to refresh the view. This has now been resolved.

176611: Escaped XML in headers converts to corrupted CDATA code

Previously under some conditions end of line (EOL) characters could be wrongly removed from CDATA sections of model files, it could happen e.g. during merge operations. This issue has been fixed, the EOL characters used are controlled by the preference Modeling -> Line breaks in CDATA. If option "Same as in model file" is used and it is not possible to derive the EOL characters from the model file the value of the preference General->Workspace->New text file line delimiter is be used.

176597: ModelRT 12.0.1 on macOS Sonoma won't generate code

In some cases code generator failed to generate code with java.lang.NullPointerException: Cannot invoke "com.ibm.xtools.modelcompiler.generator.cpp.impl.mapping.Node.isExternal()" because "node" is null.
For example, this happened when nested type was referenced as a dependency and its owning type was not included into transformation configuration as sources; or when not all types from a package were included into transformation configuration as sources, but one of the types from that package was used in native type expression.
This problem has been fixed.

176589: Run active transformation dialog appears even after execution of code to model sync in the snippet editor

When an operation with a body is made pure virtual, and the body is removed, then the Run Active Transformation Configuration dialog could be incorrectly shown. This issue has been resolved now.

176588: Contents from source file loaded into code snippet

Fixed the issue with the random contents from the source file sometimes being loaded into the code snippet editors.

176586: Build variant only works with the full path not with workspaceloc reference

The preference for specifying a build variants script now supports the ${project_loc} variable which makes it possible to reference projects not located in the workspace folder.

176585: Provide script (or command) for conversion of models from 12.x to 11.x format

A script for converting 12.x model files to the file format required by older versions of Model RealTime is now available on the Utilities page in the Info Center.

176553: Return type shown incorrect

The return type of an operation can now be removed by simply removing the text in the Return Type field in the Properties view.

176549: Top capsule not found by Model Debugger

It's now possible to launch the model debugger on a TC that uses JavaScript expressions for defining TC properties.

173926: Model RealTime does not clear efx properly when switching between Abstract and non Abstract

When an operation with a body is made pure virtual you now have the option to either keep or remove the body by means of a new preference RealTime Development -> Properties View -> Remove body when making an operation pure virtual.

172943: ERROR : java.io.UTFDataFormatException: encoded string too long: 87498 bytes

With large tcjs files, UTFDataFormatException was thrown during transformation configuration evaluation. This has been fixed now.

155940: RFE: Bookmarks and tasks navigation improvement to allow exporting and sharing

The "Copy Element URI" command is now also available in the context menu of the Code Editor and Code View. It adds the current line number to the copied URI. If such a URI is used in the "Navigate by URI" command, the Code Editor will open and show that line. This makes it easier to share URIs that allow the recipient to not only navigate to a certain model element, but also to a line in a code snippet owned by a model element.
Furthermore, the "Copy Element URI" command in the context menu of the Project Explorer can now be used on type descriptor functions.


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.