Changes in Model RealTime 11.0

Model RealTime 11.0 2021.16-iFix3

175015: Adopt Log4j version 2.17.0

Log4j version used in Model RealTime has been upgraded to 2.17, which is more secure and includes a fix for CVE-2021-45105. See here for details:
https://nvd.nist.gov/vuln/detail/CVE-2021-45105


Model RealTime 11.0 2021.16-iFix2

175004: Adopt Log4j version 2.16

Log4j version used in Model RealTime has been upgraded to 2.16, which is more secure and includes a fix for CVE-2021-45046. See here for details: https://nvd.nist.gov/vuln/detail/CVE-2021-45046


Model RealTime 11.0 2021.16-iFix1

175001: Adopt Log4j version 2.15

Log4j version used in Model RealTime has been upgraded to 2.15, which is more secure and is not affected by CVE-2021-44228. See here for details:
https://nvd.nist.gov/vuln/detail/CVE-2021-44228


Model RealTime 11.0 2021.16

174564: Conflicting specifiers extern and static

Now extern specifier is not generated for type descriptor declaration corresponding to nested class with Manual type descriptor. It fixes compilation errors like this:
error: conflicting specifiers in declaration of 'RTType_MyNestedClass'

174555: constexpr definition not present in source cpp file

Definitions of constexpr class member attributes are also generated into C++ source file. This fixes unresolved reference linker errors when these variables must be available in the object file.

174533: Model RealTime should provide feedback during model loading that no license are available

Now problems with license are explicitly reported before "Load UML Models" command execution is started.

174505: User losing code changes during edit and build

Now "Save All" command ensures the changes done in the Code View are also saved.

174483: CQPAR00254634 : ERROR FOR RTSYMMETRICSIGNAL.INL, NO #INCLUDE FOR RTMESSAGE.H

Now RTSymmetricSignal.inl includes RTMessage.h to avoid a compilation error if RTSymmetricSignal is used in a context where RTMessage is not available.

174478: State diagram name for sub-states are showing only "State Diagram" as name in tab

Models imported from RoseRT can have "State Diagram" as diagram names. To address this apply fixup - 'Delete name for state chart diagrams called 'State Diagram' ' to get the default names that include capsule name and substate name.

164473: Possibility to compare generated code

Added a new feature - Code Preview. Now it is possible to quickly generate code for selected model elements or transformation configuration. Context menu command "Generate Code Preview" is available, as well as keyboard shortcut Alt + Shift + E. Generated code is placed under a separate special location controlled in global preferences. Previous version of files is maintained in *~ files and can be used with Eclipse Compare commands.


Model RealTime 11.0 2021.10

174468: Model RealTime model compiler server fails to renew license after borrow time expires

Build server has been enhanced to be able to renew the license from the license server if it has expired when the build has been started.

174166: Model Debugger: Enable full capsule tracing between two or more capsules

Now, traces captured for individually selected capsule include information about state activations, events sent and events received by that capsule.

173964: RFE: Creating templates as new UML objects

UI Improvements :
1. Capsule development view now facilitates context menu to create template parameters according to C++ standard
2. Simplified view of template parameters in Project Explorer
3. Property page UI of template parameters streamlined with other property pages
4. Analyze model and add missing dependencies now considers template parameters in the analysis

163919: RFE: Porter View

Now it can be visualized graphically how a protocol event can be routed in the composite structure of a capsule. The composite structure can be explored interactively by "Go Inside" and "Go Outside" commands on the ports to follow the communication paths.

99519: Smart navigation from code that sends an event, to the code snippet that is triggered when the event is received

The Event Routing Visualization feature now enables easy navigation from a place in the code where an event is sent to the transition(s) that may receive it. Use the "Visualize - Event Routing" command in the Code editor's context menu on a line that sends, invokes or replies an event. Then use the Event Routing diagram to find the receiving port, and invoke the "Find Triggers" command on it. Finally double-click on a found transition.


Model RealTime 11.0 2021.04

174287: Difference in code generation of constexpr expression (default value assignment)

Code generation for variables with different combinations of global, constexpr, and initializer kinds have been improved and fixed.

174087: CQPAR00252953 Port tracing take 2 minutes to start

Performance of monitoring elements during a model debug session has significantly improved: from 2 min to 20 sec. This is achieved by monitoring only selected model element and not the entire application and filtering in events Trace Editor.

148351: RFE: Improve Qualified Names

The qualifiers included names of elements that are hidden in the Project Explorer. This often made qualified names long and complex. Qualified names are now always be computed in accordance with what elements are shown in the Project Explorer.

87981: Align tooltips of transition line and effect/guard decorators

The tooltip of the transition effect decorator was removed and instead the transition tooltip will be used. However, the tooltip for the guard decorator was kept since it usually contains much fewer lines of code (often just 1).


Model RealTime 11.0 2020.50

174168: CQPAR00252908 Model Debugger: Hard coded 100 ms timeout for a response from application

Target application events handling is improved and now can be controlled by two new preferences.

174167: CQPAR00252886 Model Debugger: Double click on state in state diagram monitor to 'go inside' is too hard

Workaround with context menu option,and double click on active state instance navigates inside composite states

174150: CQPAR00252690 Keyword 'override' is used in generated code despite 'Older than C++ 11' is specified

The override keyword is generated in code, based on the code standard specified in preferences.

174133: CQPAR00252578 Right-Click Paste isn't work in a newly created transitions code view

For any transition or state, Right-click in the code view, the user was not able to select any functionality(eg.. Paste any text) from the context menu because the widget was being disposed of. This is fixed now.

174041: Having the 'Redefined Operation' defined should be grayed out 'Override' checkbox

When an operation is set to redefine another operation the Override checkbox is automatically checked and disabled.

174040: Performing 'Set…' on 'Redefined operation' should enable 'Override' checkbox

If any operation is redefined, now override property would be enabled by default and grayed out for better user understanding.

109158: Model RealTime: RFE: Missing drag and drop in Properties / Operations

It is now possible to reorder operations in the Properties view by using drag and drop, multi-selection is also supported.

109040: moving transitions(from one state to state above) is impossible

Now we support the Drag and Drop functionality for moving transitions in the Project Explorer


Model RealTime 11.0 2020.45

174127: CQPAR00252546 GeneralDependencyProperties on the top package are not considered by code generator

The problem with General Dependency properties specified on the top package has been fixed. Now Code Generator considers Property Sets defaults applied on the top package.

174096: CQPAR00252579 Incremental build re-builds everything

Incremental builds for different target platforms has been fixed. Now comments around common preface generated to unit header file do not contain the name of original TC file and do not result in rebuilding everything when switching between different platform TCs.

173633: CQPAR00248683 - Model RealTime: Do not use C-style pointer cast in generated code

C-style casts were removed from TargetRTS source files. Where needed corresponding C++ casts (static_cast<> and reinterpret_cast<>) are now used instead.

118377: operation parameters property page issues

Previously, the scrollbar made the table header and side toolbar scroll out of view. Now, the scroll bar works inside the table for the parameters tab.


Model RealTime 11.0 2020.39

173927: Change default name of setters and getters

Global preference has been added to be able to specify Property Sets defaults model file references as workspace property.
Modeling --> Profiles --> Property Sets --> Defaults
Model Compiler now supports both, defaults model in the global preference and defaults model specified on top package in the model file

173918: RFE: Creating typedef as new uml object

Type alias is a name that refers to a previously defined type (similar to typedef).
Type Alias is now a seperate UML element added in our tool

173877: CQPAR00251061 Incremental build does not detect dependencies to "Inclusion paths"

Code generator and TargetRTS have been enhanced to support Incremental builds for models with external code. If a model is including some external header files and any of these files is updated, then build will detect this and compilation and linking for affected C++ files will take place.
In order to enable generation of dependency files as side effect of compilation, $(DEP_OPTS) or any other combination of flags with similar action must be added to LIBSETCCFLAGS in the libset.mk file corresponding to your GNU compiler. Also TargetRTS must define DEP_EXT = .d (for example, in default.mk or libset.mk)
If DEP_EXT is not defined in your TargetRTS then -include for dep files will not be generated into makefiles. This covers old custom version of TargetRTS. Also it gives you an opportunity to disable generation of -include for some compilers by overriding DEP_OPTS to nothing in your libset.mk

173872: RFE: Option for generation of constructors

This feature enables an easy way of creating constructor, destructor, and getter setter operations.
A new menu item "Special Operation" is introduced under "Add UML" menu. This menu has the new commands which are explained in the below section.
Default Constructor, Copy Constructor, Move Constructor, and Destructor commands creates respective operation with no default implementation. These four commands are enabled for Class.
Getter/Setter: This command opens a new dialog for choosing attributes and their method properties. This command is enabled for Class, Capsule, Interface and Property. On property, dialog contains the selected attribute in other cases it contains all its eligible child attributes.
An attribute is eligible for getter/setter creation only if it has a valid type. Created operations will have default implementation which user can customize easily.

173325: CQPAR00247317 MC: We'd like an option to include .d files

Code generator and TargetRTS have been enhanced to support Incremental builds for models with external code. If a model is including some external header files and any of these files is updated, then build will detect this and compilation and linking for affected C++ files will take place.
To enable this, TargetRTS must be updated to define DEP_EXT, DEP_OPTS and also add $(DEP_OPTS) to LIBSETCCFLAGS inside libset.mk files.

172966: User is unable to save work during indexing

It is possible now to modify model and code snippets and save them during indexing.

172846: CQPAR00242351 - Use C++11 nullptr in generated code/TargetRTS library

Model RealTime generated code and TargetRTS files were using 0 to denote a null pointer, casted to a pointer type using a C-style cast. These 0's have now been replaced with nullptr and the unnecessary casts have been removed.


Model RealTime 11.0 2020.33

173887: Model RealTime 11 get stuck while adding dependency and then exception is thrown

Changed limit for search operation that caused hangings and high memory usage.

173885: Model RealTime multiple tabs crash

We have searched for current Properties view site to make sure site won't be disposed.

173812: "Open evaluated version" option for GENERIC TCJS sometimes doesn't work and it doesn't show any reason or error message

Added Model Compiler console where you can check details about Model Compiler server requests including error and warning messages and full command line.
Fixed in Model RealTime 11.0 2020.33

173811: "Clean transformation configurations..." toolbar option doesn't work when using Build Variants

Now "Clean transformation configurations…" toolbar option also works when build variants are enabled. Although there are some limitations: when there are several TCs for selection in the Clean dialog, "Build selected transformation configuration after clean" option will be disabled. The reason is Build Variants UI that should also be shown for building and a dialog can show build variants UI for only one TC at a time.
Also we have added "Select All" and "Deselect All" buttons to Build and Clean dialogs and ok-button is disabled if all files are deselected.

173748: cannot change KindInHeader or KindInImplementation

Property pages now are changeable for elements selected on a Browse diagram.

173641: CQPAR00249544 - Model RealTime: autoset override checkbox when overriding a member function

The Override checkbox is auto selected for redefined operations along with C++ code generation for override in suffix of such operations.

173634: CQPAR00248684 - Model RealTime: Use C++11 override keyword in generated code

The override keyword is now used in generated code for functions that override TargetRTS functions (getActorData, rtsBehavior etc).

173144: Stop using "&#xD;&#xA;" characters as a new-line signs.

CDATA is now supported in the storage format to avoid this problem.

138514: CQPAR00183688 - Use CDATA to store code snippets inside model files

CDATA is now supported in the storage format to avoid this problem.

129206: Can we remove the Property Sets settings for protocols ?

Properties view for Protocols became cleaner due to removal of obsolete and unused controls.

99554: Use CDATA sections in model XML files for better storing of code snippets

It's now possible to use CDATA in model files to improve readability of code snippets.

81569: TR1019: Hard to know which properties of an object that will affect generated code, and how it will affect it

Now the user have access to wide range of Context sensitive dynamic help content for the Properties section.

77001: TR0927: Red text for console warning can be confusing

Now we use orange color for warnings in UML Development console.
Fixed in Model RealTime 11.0 2020.33


Model RealTime 11.0 2020.22

173715: C++11 support for in-class member initializes doesn't work properly

While using the C++ 11 in-class initializers set the Initializer Kind property to "Equal" or "Brace".

173700: CQPAR00250766 Model RealTime hangs when opening TC folder

In some cases Model RealTime was hanging when you click on virtual Transformation Configurations folder to expand TCs in the project. For example, this could happen when TC relationships are complex and contain inheritance and loops.
This problem has been fixed in Model RealTime 11.0 2020.22

173664: RFE: C++ 11 "final" modifier

C++ 11 feature of final is introduced to prevent inheritance/overriding of Classes, Capsules and Operations using Final checkbox and generate C++ Code.

173635: CQPAR00248809 - Libraries recompile due to different place in model hierarchy

Now if a prerequisite library has been built when building some topTC, it will not be rebuilt (if no changes) when starting a build from other top TC.
Fixed in Model RealTime 11.0 2020.22

173616: Usability issue: automatic binding of C++ Primitive types

Clean-up of packages with C++ primitive types has been done:
1) Obsolete 'C++ Types' package has been removed
2) Support for C language has been moved to a separate (optional) installation item Model RealTime Extra Functionality --> Model RealTime Support C
This includes CPrimitiveDatatypes package with C types, RTCClasses, RTCComponents packages, CPropertySets profile
3) 'unsigned' type was removed from CppPrimitiveDatatypes as it was a duplicate of 'unsigned int' type from the same package
Now, CppPrimitiveDatatypes package is the only package with C++ types that should be used.
Models containing references to obsolete types, packages or profiles can be fixed automatically by the following model fixups:
* Incorrect type references fixup
* Obsolete package import removal
* Obsolete profile application removal
Check here for more information about Model Fixup:
[Model RealTime documentation: Model Fixup Plugin.html](https://Model RealTime.hcldoc.com/help/topic/com.ibm.xtools.rsarte.webdoc/Utilities/Model%20Fixup%20Plugin.html)

173614: JS Syntax assistance in tcjs editor

TCJS Editor has been improved to highlight syntax errors on the Code tab. Now each time you save your changes, and if there are any syntax problems in your code, the line with syntax error will be highlighted with red and annotation with error message will appear on the left.
Also, problem markers with "TCJS Problem" type are created in Problems View, and you can also double click to navigate to the error position from Problems View.

173523: CQPAR00250767 Unable to fix broken references through the UI

Broken references can now be fixed either by rebinding them to other target elements, or by resetting (i.e. clearing) them. You can use the Quick Fix context menu command on a problem reported for a broken reference and choose either "Rebind Broken References" or "Clean Up Broken References". Note that these commands operate on all similar kinds of broken references at the same time which makes them convenient for fixing a large number of broken references. There is also a quick fix for rebinding an individual broken reference by manually searching or browsing to a new target element for it.
Read more about this feature in this article:
[Model RealTime documentation: Broken references.html](https://Model RealTime.hcldoc.com/help/topic/com.ibm.xtools.rsarte.webdoc/Articles/Working%20with%20files%20and%20folders/Broken%20references.html)
This was delivered in 11.0 2020.22

173508: Model compiler translates auto variable to int variable

Now C++ code generator supports 'auto' type. Also 'auto' type has been added to CppPrimitiveDatatypes package and if you write 'auto' in the type field, it will be automatically bound to CppPrimitiveDatatypes::auto. Note, that attributes typed with 'auto' should be declared as static const or static constexpr and should have initializer kind = Equal or Brace.

173445: After a rebase model validation fails due to invalid tag in .efx

Fixed interface realization merge for non-workspace files.

173438: Auto merge tool for Model RealTime doesn't merge properly

Fixed a problem causing owned attributes to be lost during merge.

172919: CQPAR00246993 Git merge from a submodule corrupts model when refactoring by moving entities between projects

Broken references can now be fixed either by rebinding them to other target elements, or by resetting (i.e. clearing) them. You can use the Quick Fix context menu command on a problem reported for a broken reference and choose either "Rebind Broken References" or "Clean Up Broken References". Note that these commands operate on all similar kinds of broken references at the same time which makes them convenient for fixing a large number of broken references. There is also a quick fix for rebinding an individual broken reference by manually searching or browsing to a new target element for it.
Read more about this feature in this article:
[Model RealTime documentation: Broken references.html](https://Model RealTime.hcldoc.com/help/topic/com.ibm.xtools.rsarte.webdoc/Articles/Working%20with%20files%20and%20folders/Broken%20references.html)


Model RealTime 11.0 2020.16

173440: Default platform not selected when performing clean build.

Clean dialog has been improved and now it also contains Build Variants section that allows user to select correct Build variants configuration for Building after clean when "Build selected transformation configuration after clean" is checked.
Fixed in Model RealTime 11.0 2020.16

173424: Model RealTime 10.3 - model compiler - CPPPropertySet settings in model libraries

Model compiler has been fixed to correctly handle CPPPropertySet settings defined in model libraries from an Eclipse plugin. Now, CPP native types like std::string and configurations such as "header preface" which are stored in CPPPropertySets in the referenced model library are correctly generated into C++. This has been fixed in Model RealTime 10.3 2020.16.

173229: Improve Clean support for External Library TCs

Now External Library TCJS has a new property "Clean command".
For example:
tc.externalCleanCommand = 'echo "External Clean Command"';
This command should be generated into batch.mk (both Inclusive and Recursive) and invoked when clean is performed from batch makefile with:
make -f batch.mk clean
Implemented in Model RealTime 11.0 2020.16

172965: Missing Visualize->Explorer in Browse Diagram option in the context menu for TCJS files in ProjectExplorer

1.Visualize->Explorer in Browse Diagram option is added as Experimental feature (context menu of TCJS files in Project Explorer).
2.Prerequisites of TCJS file will be visualized as a graph.
3.The feature can be enabled from "Preferences > Experimental Features".
4.Path for Graphviz dot utility has to be specified in "Preferences > Visualization".


Model RealTime 11.0 2020.14

173595: Model RealTime 10.3 2019.w43 crashes when opening certain models' Relationships tab (indexing problem?)

Now the Relationship tab in the Property section is completely redesigned to fix the problem of crashing while opening certain models.
In the new Relationship tab now we have a single table that contains Incoming, Outgoing and Self-referencing relationships. Last but not the least, the context menu options are revamped to enrich user experience

173563: Invisible half of text in search filter text box

Search filter text box now fully visible.

173520: Unhandled event loop exception when showing previous searches

Fixed infinite recursion that may occur in model search result view.