Release Notes for the OTDT v1.1.x
- Reference to the issue tracker (at FIRST) (login required)
- Reference to jacks tests case
- Reference to junit tests case
- OTJLD § 1.2(b)
- Reference to paragraph in the language definition (OTJLD)
Test results for version 1.1.9:
Release 1.1.9Apr 07, 2008
- Jacks suite test results for release 1.1.9
- JUnit suite test results for release 1.1.9
- Diffs in test results v1.1.9 wrt. the previous version
Test results for version 1.1.8:
Release 1.1.8Mar 08, 2008
- Jacks suite test results for release 1.1.8
- JUnit suite test results for release 1.1.8
- Diffs in test results v1.1.8 wrt. the previous version
Test results for version 1.1.7:
Release 1.1.7Feb 05, 2008
- Jacks suite test results for release 1.1.7
- JUnit suite test results for release 1.1.7
- Diffs in test results v1.1.7 wrt. the previous version
Test results for version 1.1.6:
Release 1.1.6Jan 04, 2008
- Jacks suite test results for release 1.1.6
- JUnit suite test results for release 1.1.6
- Diffs in test results v1.1.6 wrt. the previous version
- Trac listing of resolved issues
Team Monitor view: several small improvements:
- Improved detection of suspended threads and handling of focus changes.
Avoids blanking of the team view observed when changing the debug focus.
- Support (de)activating a team for all threads by selecting the debug target instead of a specific thread in the debug view and then using the context menu in the team monitor view.
- Improved detection of suspended threads and handling of focus changes.
Compiler: Generated code for a buggy callin method did not store the
callinflag, which caused an
InternalCompilerErrorwhen reading this class file.
- Compiler: Early adoption of Eclipse bug #209961 which caused exporting the OTDT plugins to fail when running on a Java 6 VM.
Test results for version 1.1.5:
Release 1.1.5Dec 18, 2007
- Jacks suite test results for release 1.1.5
- JUnit suite test results for release 1.1.5
- Diffs in test results v1.1.5 wrt. the previous version
- Trac listing of resolved issues
Quickfix: More scenarios for quickfix "Add team anchor to role type":
- also offer this quickfix for "MissingTeamAnchor" problem
- also offer method parameters as anchor
- reduce qualified role name to single name
Quickfix: Support quickfixes regarding unresolved method references also for role method spec in a callin binding.
- Rename method spec to match an existing method
- Create new method to match the method spec
OTJLD/Compiler: Cannot allow callin binding to inherited private base method, new rule OTJLD § 4.6(a) in analogy to OTJLD § 3.4(d)
Compiler: More robust strategy to analyze consistency between
import baseand declared
Compiler: More robust compilation order for implicit inheritance (copy inheritance).
Compiler: Fixed array lifting/lowering for callin with a base call.
- OTRE: Protect internal generated team activation infrastructure for concurrent access.
OTRE: Safeguard against an
ArrayIndexOutOfBoundsExceptionwithin generated method
Test results for version 1.1.4:
Release 1.1.4Nov 04, 2007
- Jacks suite test results for release 1.1.4
- JUnit suite test results for release 1.1.4
- Diffs in test results v1.1.4 wrt. the previous version
- Trac listing of resolved issues
- Launching: Support the team monitor even for OT/JUnit launches.
Runtime Environment: Bugfix: the OTRE previously generated
invokevirtualinstructions to invoke a private orig-method. Sun's JVM silently ignored this bug, but the JamVM, e.g., refuses to execute the erroneous instruction.
- CallHierarchy: Support call hierarchy of all write accesses to a given field, i.e., exploring all control flows that result in writing to the given field. A similar patch has also been submitted to Eclipse bug #75800.
Test results for version 1.1.3:
Release 1.1.3Oct 03, 2007
- Jacks suite test results for release 1.1.3
- JUnit suite test results for release 1.1.3
- Diffs in test results v1.1.3 wrt. the previous version
- OT/Equinox: New launch configuration type "OT/Equinox Appliction", for running OT/Equinox bundles without an Eclipse runtime workbench.
OT/Equinox: Support teams adapting classes from their own enclosing plug-in (bundle). This is achieved by declaring an aspect binding in the
plugin.xmlwith the pseudo base plug-in "
SELF". Activation is declared as usual using either
- OT/Equinox & OTRE: Reduce eager loading of classes but only scan the byte code attributes instead. Fixes a racing condition in Eclipse (bug 204829) by which the dialog for choosing a workspace was not shown.
OT/Equinox: Further protection against potential dead lock in the
BridgeClassloaderby explicit locking.
- OT/Equinox: Correctly detect and transform nested teams.
OTJLD/Compiler: Support callin bindings to base methods with covariant return types by appending "
+" to the type name. For replace callins this requires the role side to use a generic signature in order to avoid class cast exceptions.
OTJLD § 4.9.3(c), 4.1.39-otjld-callin-binding-with-plus-1 up-to -8
Compiler: Allow a callout binding to refine the return type of an inherited role method (covariance and refining a raw type to a parameterized type).
- Compiler: Interim fix for Eclipse bug 204749 (NPE when JavadocQualifiedTypeReference cannot be resolved).
- Compiler: For references within javadoc don't apply strict type checking requiring dependent types.
Compiler: Further improved the control of the compilation order. NPEs were reported caused by the
CompilationUnitProblemFinderwhen working with certain role files of the Disposition and OTPong case studies.
Compiler: Correct typing of return type of
callinmethod (here: basic types).
Compiler: More complete support for role types as a type parameter, especially if implicit inheritance applies to the role type.
- Quickfix: Add type parameter to a callin and its role method according to new rule OTJLD § 4.9.3(c).
Completion: Support completing after
playedByto produce the common pattern where role and base class share the same name. Previously, completion incorrectly treated this as a name clash, but actually the name clash is avoided by using a base-import for the base class.
Wizards: Role creation now supports to implement abstract methods inherited from implicit super role, too.
Outline: Support drag-and-drop re-ordering of method bindings.
- Help: Enable context menu option "Go To Language Definition" only on errors explicitly referring to the OTJLD.
Tests: Upgrade OT-specific JUnit tests to use Java compliance 1.5. This surfaced a number of omission in the implementation like analysis of
@Overrideannotations in the presence of implicit inheritance.
Test results for version 1.1.2:
Release 1.1.2Sep 07, 2007
- Jacks suite test results for release 1.1.2
- JUnit suite test results for release 1.1.2
- Diffs in test results v1.1.2 wrt. the previous version
OTJLD/Compiler: Support inferred callouts:
An implicit inference tries to resolve unimplemented inherited methods and unresolvable self-calls by creating corresponding callout bindings (no adjustments besides lifting/lowering are considered).
Inferred callouts create a configurable diagnostic with token
OTJLD § 3.1(j), 3.1.17-otjld-inferred-callout-1 ff.
OTJLD/Compiler: Grammar enhancement: do allow method bindings in a role interface.
Such bindings affect all role classes implementing the interface.
OTJLD/Compiler: Exception to rule OTJLD § 4.4(b): parameter mappings of a callin replace binding may now use cast expressions (which are perfectly reversible).
Batch compiler: Option
-help:warnalso lists the OT/J-specific warnings that can be configured.
- Quickfix: New quickfix to materialize inferred callouts (cf. OTJLD § 3.1(j)).
- Quickfix&Completion: When creating a callout via quickfix or completion insert proper imports and use short names for types in signatures.
Completion: Consider static base methods for generating callout.
- Quickfix: Support quickfixes for imports with warnings. Anticipates upcoming patch for Eclipse Bug #201203
Quickfix: It is now possible to create a missing method in the enclosing team of a role file (i.e., into a different compilation unit).
Rewrite: More complete re-writing of OT/J-constructs, here:
within(), tsuper(), base()statements. This allows to refactor sub-expressions of these constructs.
- Binding Editor: Enable opening the binding editor also from the outline.
- Outline: Don't show guard predicates (by their generated method name), don't show method bindings twice in the quick outline.
Debugging: Resurrected the Team Monitor (which was lost during the migration to Eclispe 3.3), and improve its functionality:
- Support columns in the tree view (like in the variables view)
- Observe the death of team instances, too.
- Context menu actions to (de)activated a selected team instance (for the selected thread).
- Debugging: Repair double-click toggle-breakpoint action (was broken during 3.3-migration). Also support all kinds of breakpoints for role files including class-loading and method breakpoints.
Runtime Environment: Fixed implicit (de-)activation in methods containing a
- OT/Equinox: Fixed two potential deadlocks during startup.
Compiler&OT/Equinox: Detect and report if in a plug-in project using OT/Equinox a base import lacks or violates a corresponding
aspectBindingdeclaration at the plug-in level.
Also in new OT/Equinox projects, importing a base class with a regular import (not
import base) is by default an error now.
OT/Equinox: Display icons for the elements of an
aspectBindingin the extension editor.
OT/Equinox: Basic profiling of class transformation during system start-up. Need to pass as vm arguments:
Deployment: Fixed packaging of the batch compiler
org.objectteams.otdt.ui.helpnow includes a jar, which is needed when compiling against the deployed plug-in.
Compiler: More complete handling of base-anchored types in method bindings.
Compiler: Make diagnostic regarding base imports configurable using token
Compiler: Support predicates also for bindings to static methods.
Compiler: Completed those locations which may use the base import scope and baseclass decapsulation: base guards and remaining cases in parameter mappings.
- Compiler: Avoid spurious message "Declared lifting is not supported in this position" after a syntax error has already been detected.
Compiler: Avoid warning "static method m should be accessed in a static way", which was caused by synthetic accessor to a private static role feature.
B.1.1-otjld-ch-5a (used to show a spurious warning).
Compiler: Don't show synthetic arguments when reporting error against a base-call.
Test results for version 1.1.1:
Release 1.1.1July 28, 2007
- Jacks suite test results for release 1.1.1
- JUnit suite test results for release 1.1.1
- Diffs in test results v1.1.1 wrt. the previous version
Refactoring: Re-integrate the support for OT-aware refactorings
as it was present in the OTDT 1.0.0. However, now this support is implemented by
an aspect-plugin of <15% the size of the previous copy&paste based implementation.
Also OT-awareness is now added to the original refactorings rather than adding additional refactorings/actions. While this improves the intergration of OT/J into the JDT it currently breaks 3 out of >3449 refactoring tests, because a small portion of our implementation is still based on code from Eclipse 3.0.
- Compare: Fixed formatting of comments in the compare editor for java sources.
- Quick Fix: Insertion of "final" modifier for a variable that is used as the team anchor of an externalized role.
Completion of keyword "playedBy" in roles and only in roles.
Completion after "playedBy" now offers invisible classes, too (for baseclass decapsulation).
- Metrics: Compute metrics even for code with (some) errors.
Compiler: Fixed reporting of illegal modifier in callin binding,
which caused an assertion violation in
- Compiler: Handle confined roles on both side of a playedBy declaration:
- GUI: Generally cope with "base" as a package name.
Test results for version 1.1.0:
Release 1.1.0July 1, 2007
- Jacks suite test results for release 1.1.0
- JUnit suite test results for release 1.1.0
- Diffs in test results v1.1.0 wrt. the previous version
- Launching: Remove "Link with SWT" checkbox, because no special handling for SWT application is necessary any more.
Search: Fix JDT bug 160301
(was finding too many method references) for implicit inheritance, too.
Model: Avoid opening a buffer just for reading the class flags (role?).
Optimization and fix for JavaSearchBugsTests.testBug148380_SearchAllTypes_*
See also JDT bug 148380.
OTJLD/Compiler (reporting): Cannot allow parameterized type after playedBy
(type information not available at run-time).
OTJLD § 2.1.2(e) A.1.7-otjld-generic-baseclass-2
New exception class IllegalRoleCreationException, thrown when an implicitly inherited constructor is used,
that has been invalidated by adding a playedBy declaration.
Compiler (reporting): Enforce
OTJLD § 1.2.3(b),
OTJLD/Compiler (reporting): report illegal static member class in team (OTJLD § 1.2.1).
Compiler (reporting): more complete reporting of warning for deprecated role type syntax.
Compiler (reporting): completed analysis of binding ambiguities (compile-time and run-time).
- Compiler: Improved support for 1.6 compliance.
Compiler: Improved resilience: recognize base-calls in classes with errors.
One less error in 4.1.2-otjld-callin-binding-without-parameter-names-1
Compiler: support callout to private role method/field.
Compiler: support implicit specialization of
OTJLD § 2.1(d), 1.1.26-otjld-nesting-and-layering-3, 1.1.26-otjld-nesting-and-layering-4
Compiler: improved analysis regarding tsuper constructor calls.
Compiler: improve analysis for casting to/widening from confined type.
Compiler: support value parameters in nested generic types.
Compiler: accept redundant type anchor
<@this>as used in an example in OTJLD § 1.2.2(d)
Compiler: support callout to array field.
Compiler: Support base class decapsulation for type parameters.
© Stephan Herrmann Last modified: Sun April 6, 2008