Configuration | |
Migration of old OT-projects |
When opening Object Teams project that have been created by a previous OTDT version (1.x from objectteams.org)
some internal data need to be migrated to the new
Quick fixes have been implemented for performing the necessary changes, like: |
Use compiler options for plug-in export |
When interactively exporting an OT plug-in (using the corresponding export wizard)
it is now possible to tell the builder to use the OT/J compiler options from the project settings.
In order to do so simply include the following directive in your javacProjectSettings=true |
Views & Dialogs | |
Binding to callout-method via binding editor |
The binding editor now also shows base methods that are defined by a callout binding (relevant in role-of-role situations): Also a new icon for the "New method()" entry was introduced. |
Create callout-to-field via binding editor |
The binding editor now supports the creation of callout-to-field bindings. Simply select (a) "New method()", (b) "->", (c) a base field: As the result you will see two new callout bindings ( |
"Go to Language Definition" without using Problems view |
The action Go to Language Definition, which previously could only be invoked from the Problems view, can now be invoked in two more ways: Using the context menu on the problem marker in the editor's left gutter:
Using a new button on the problem hover:
|
Content assist | |
Create "precedence after" |
When a quickfix is used for creating a |
Add/remove signatures of method bindings |
New quick assists support converting between method bindings with and without signatures. When, e.g., creating a method binding by means of completion, signatures are automatically included. In that case a quick assist can be used to convert that verbose binding into its shorter versions without signatures: Conversely, a method binding without signatures can be converted to the long form: |
Proposal to override inherited role |
A new kind of completion proposal has been added for overriding a role class inherited from the super team:
Bonus.Subscriber (OTJLD §1.3.1(c))
and may override methods and/or refine extends (OTJLD §1.3.2(b))
and playedBy (OTJLD §2.1(c)) relationships.
|
Run / Debug | |
Fade out JMangler |
Previous versions of the OTDT featured two alternative strategies for launching OT/J applications: JMangler and JPLIS. During the move to Eclipse.org, the support for JMangler was discontinued because the JPLIS launch mode has long matured and bringing JMangler to Eclipse.org would have caused additional license issues. For users this means that launch configurations have been simplified as the checkbox Java 5 JPLIS Launching has been removed, leaving only the Enable OTRE checkbox:
|
Show "_OT$base" field |
The Variables view has the option to filter any synthetic variables generated by the OT/J compiler (Java > Show OT/J internal variables).
However, the synthetic
Also note the similarity to the synthetic field |
API | |
Teams and roles can now be serialized if they declare to implement
Additionally, new API has been added for persisting / restoring the global activation state of a team:
| |
Language | |
Semantics of precedence |
The semantics of how exactly a To fix these issues OTJLD §4.8(a) has been extended to
The new semantics have been implemented in the OTRE accordingly (see also the corresponding quickfix). |
Merging precedence of different kinds |
The semantics of how exactly
bl1, bl3, bl2 ) or (bl1, bl2, bl3 ) (both order are consistent with
the input lists). Which order is chosen depends on in which order the two precedence lists are passed into the algorithm.
To fix these issues OTJLD §4.8(d) has been extended to
specify that more deeply nested precedence declarations have higher priority than outer precedence declarations.
So in the above example the final order of callin bindings will be: ( The compiler has been updated accordingly. |
Callin in role with binding ambiguity |
Previously, callin bindings in a particular situation would be flaged as illegal showing the following message:
Callin mapping not allowed here, because lifting to role TX.RY is
not possible due to a reported binding ambiguity (OTJLD 4.1(b)).
A closer analysis revealed that despite lifting ambituity the callin could succeed in lifting if
In order to support even such corner cases,
|
Compiler | |
Warn about unused result |
In an So this binding:
Callin after binding cannot return a value to the base caller, role method return value of type int will be ignored (OTJLD 4.4(a))
By contrast, the following declaration does not trigger the warning:
"ignoredresult"
|
OT/Equinox | |
Previously, aspect bindings for nested teams could only be specified by using the internal name involving an ugly "$__OT__" prefix. Specifically, when selecting a nested team using the Browse button the resulting declaration would not work. To fix these issues support has been added to OT/Equinox for interpreting the source and binary names of nested teams without the internal prefix, i.e., both
| |
Extension point for lifting participant |
The recently introduced
concept of a lifting participant is now supported also within OT/Equinox.
This is done using the new extension point |
Object Teams Runtime Environment | |
Detect all system threads |
It was a long outstanding issue that per-thread (de)activation of teams could not correctly handle all system threads that
are created before entering the Warning: Deactivation for the AWT-Event-Thread is not effective right now!This problem could be resolved and the workaround is no longer used. |