Release Notes for the OTDT
- TPX-123
- Reference to the issue tracker (at FIRST) (login required)
- 1.2.3-otjld-some-name-4
- Reference to jacks tests case
- SomeTestClass
- Reference to junit tests case
- OTJLD § 1.2(b)
- Reference to paragraph in the language definition (OTJLD)
Release 1.0.0_finalMar 30, 2007
- Jacks suite test results for release 1.0.0_final
- JUnit suite test results for release 1.0.0_final
- Diffs in test results v1.0.0_final wrt. the previous version
- Deployment: support several new options of installing OT/Equinox and the OTDT.
- Call Hierarchy: Fixed regression by which call hierarchy failed for short hand callout bindings.
- Help: Completed updating the programmer's guide and the OTJLD for 1.0.0.
- UI: Updated OTDT icons to a slightly improved image.
- Compiler,Quickfix: Corrected source positions for callout to field, needed, e.g., for quickfixes on the type of a field specifyer.
-
Compiler: Support decapsulation for type references within the right hand side of a parameter mapping.
2.4.2-otjld-inaccessible-base-class-17 -
Compiler: Support parameterized role methods.
2.4.2-otjld-inaccessible-base-class-17
Release 1.0.0_RC2Mar 28, 2007
- Debugger: enable OT-specific stepping for OT/Equinox, too.
- Debugger: always step over calls to internal method _OT$setExecutingCallin().
- User guide: updated several pages.
- UI: final brush-up of several icons/images.
Release 1.0.0_RC1Mar 22, 2007
- Jacks suite test results for release 1.0.0_RC1
- JUnit suite test results for release 1.0.0_RC1
- Diffs in test results v1.0.0_RC1 wrt. the previous version
- Help: Started to update the user guide (feature list and content/code assist).
-
UI/Code Assist: Consistently generate/maintain
base
imports for base classes. Applies to Binding Editor and Organize Imports action.- Never import a role type (see below "OTJLD/Compiler")
- Always import base classes with "
import base ..
" - Keep "
import base ..
" declarations, even if base class seems to be invisible (e.g., private inner class).
- Quick Fix: Previously a quick fix was offered to import an unresolved role type, resulting in illegal code (see below "OTJLD/Compiler"). Changed this to replace the import quick fix with a new quick fix for adding a team anchor to the role type (offering any matching team anchors which are in scope).
-
Quick Fix: Avoid a
NullPointerException
which occurred when the quick fix processor called into the compiler, which was at that time not properly configured. -
Quick-Fix: Fixed standard Java Quick-Fixes for roles; was throwing, e.g.,
IllegalArgumentException("RoleTypeDeclaration has no property modifiers")
. -
Completion: New support to generate callout-to-field after typing
"get"
or"set"
. Also support completing the field specifier (right hand side of callout) after the modifier"get"
or"set"
. - JavaModel: Fixed a long outstanding problem surfacing as "Save Failed: null" when trying to save a buffer with heavy syntax errors.
-
Java Model/UI: Avoid
ClassCastException
observed inJavaElement.getSourceElementAt()
. -
DOM-AST/Selection: Fixed
IllegalArgumentException
thrown byASTNode.setSourceRange()
when working with a method mapping with syntax errors.
org.objectteams.otdt.ui.tests.dom.converter.CalloutMappingDeclarationTest.testSourceRangeOfBuggyCallout()
.
Similar corrections for some generated code elements. -
OT/Equinox: Renamed the OT/Equinox plug-in to
org.objectteams.otequinox
-
Debugger: Fixed a
NullPointerException
in the handling of OT/J launches. -
OTJLD/Compiler: Explicitly forbid importing a role type (which was useless anyway).
OTJLD § 1.2.2(i), 1.3.19-otjld-illegal-role-import -
Compiler: Perform team instance comparison for
instanceof
expression with role type even if no explicit type anchor is specified, compare to the current team.
(However, avoid team instance comparison if identity is statically known.)
1.3.3-otjld-role-not-subtype-of-superrole-1e - Compiler: Support overriding a native method with a callout binding.
- Compiler: Improved handling of static role fields: fixed externalized access to a static role field. Signal an existing compiler limitation: cannot handle non-final static role fields (note that inner classes in Java can have NO static members at all).
-
Compiler: Improve support for non-static inner class as a base-class: implicitly use existing
base
link as the required outer instance for a base constructor.
2.4.1-otjld-visible-base-class-19 -
Compiler: Avoid
InternalCompilerException("Required cast method not found.")
thrown when working with a team (class file) with syntax errors.
B.1.1-otjld-sh-49 -
Compiler: Avoid
InternalCompilerException("trying to search baseclass too early.")
: smarter lookup. Remaining problems are only reported as compile errors, not an exception. -
Compiler: Gracefully report if
org.objectteams.Team
cannot be resolved. -
Compiler: Avoid conflict regarding a user-defined class
Class
. Generated code was using unqualified nameClass
to refer tojava.lang.Class
which in that case became ambiguous.
Release 0.9.28Mar 06, 2007
- Jacks suite test results for release 0.9.28
- JUnit suite test results for release 0.9.28
- Diffs in test results v0.9.28 wrt. the previous version
- Starting with this release all ObjectTeams/Java projects are set to Java compliance 1.5.
- Welcome Pages: fixed URL to the Object Teams introduction and updated icon in the overview page.
- Samples: Fixed a regression in the samples adaptor, which caused the erroneous message "samples not installed".
- Samples: Updated the following samples: OTSample-Observer, OTSample-Flightbonus, OTSample-Ordersystem (project configuration for compliance 1.5, avoid name clash of Observer with java.util.Observer, use Java5 features, link to local copy of OTJLD).
-
OT/Equinox: Change console logging of OT/Equinox into standard Eclipse logging,
which can be configured using property
otequinox.debug
(possible values: OK, INFO, WARNING, ERROR). - OT/Equinox: Improve debugging support for OT/Equinox to include the Team Monitor view.
-
OT/Equinox: Fixed concurrency problem in OT/Equinox which surfaced as timeout in
EclipseLazyStarter.preFindLocalClass
. -
Binding Editor: Partial support for callout-to-field in the binding editor: no longer throws exceptions when displaying a team with callout-to-field and selecting these.
However, creating callout-to-field using the binding editor is not yet supported. - Editor: Display Javadoc in hover of method bindings.
-
Editor: Support hover for multiple matches containing method bindings (was throwing
ClassCastException
previously). -
Quick-Fix: Support
@SuppressWarnings
quick fixes for role classes, too (was reporting error "SuppressWarning quick fix: wrong node kind: 94"). -
Metrics: Removed dependency of
org.objectteams.otdt.metrics.export
on BIRT. -
UI (several views): Consistently suppress generated methods/fields (starting with
_OT$
) and classes (starting with__OT__
) in several views. -
Incremental Builder: Detect that incremental compilation needs to recompile a role file after the corresponding team file has been removed.
org.objectteams.otdt.test.builder.IncrementalTests (testRemoveTeamType). - Incremental Builder: Detect and report as a configurable problem if incremental compilation generates incomplete code. If this problem is reported some callin bindings may not work until a full build is performed.
- Compiler: Better handling of source file with local types and syntax errors. B.1.1-otjld-sh-47.
-
Compiler: Support a nested role to be played by a role of the outer enclosing team.
2.1.11-otjld-playedBy-within-team-1 -
Compiler: Support implicit redifinition of
playedBy
.
OTJLD § 2.1(d), 2.1.12-otjld-implicitly-refined-playedBy-1 -
Compiler: New warning for a situation where explicit role creation could cause subsequent smart lifting to fail.
OTJLD § 2.4.3, 2.2.33-otjld-explicit-creation-breaks-lifting-1 -
Compiler: Detect and report conflict of multiple callouts with same name and parameters.
3.1.16-otjld-duplicate-callout-1 -
Compiler: Fixed a situation were a synthetic accessor for an outer enclosing team generated illegal byte code.
0.a.8-otjld-role-field-accessed-by-team-4t -
Compiler: Improved resilience for terribly broken code, here: team missing its super-team and stacked team on top of the broken team.
B.1.1-otjld-sh-48 -
Java Model: Support anchored types using new syntax (
R<@t>
), fixes error marks that occurred in the editor only.
Release 0.9.27Feb 19, 2007
- Jacks suite test results for release 0.9.27
- JUnit suite test results for release 0.9.27
- Diffs in test results v0.9.27 wrt. the previous version
-
Fully adopt the Eclipse maintenance release 3.2.2 (Callisto).
When updating you have the following options:- The easiest way to benefit from all enhancements is to fetch a full new binary release of the OTDT, including Eclipse SDK 3.2.2 and the OTDT 0.9.27.
- If you are low on bandwidth you may also update the OTDT only via the Object Teams update site.
- It is furthermore possible (for whatever reasons) to first fetch a full new Eclipse 3.2.2 and before launching the workbench unpack the OTDT feature in your eclipse directory.
- Updating the OTDT to Eclipse version 3.2.2 using an official Eclipse update site is not recomended: we have observed the update to leave the OTDT in an unusable state. Whether this is a problem of the Eclipse update or of the OTDT remains to be analyzed.
Please report any problems with upgrading to the otj-users mailing list. - Prototypical new design of logo/icon by Marco Mosoni.
-
New option in OT/J launch configurations:
Link with SWT to link the SWT native libraries to an OT/J application. -
Better integration of OT/J specific elements in the Java Model.
The new strategy fixes the following issues wrt OT/J specific elements:- updating of method bindings in the outline
- "Link With Editor" behavior
TPX-121, TPX-181 -
Adapt decoration with error/warning ticks to apply to OT/J specific nodes, too.
Applies for the package explorer and the outline.
TPX-374 -
More complete support for searching method bindings (search and call-hierarchy).
TPX-291 -
Better validation in new role wizard.
TPX-187 -
Fixed Java Model resolving accross "phantom roles".
TPX-435
Release 0.9.26Feb 07, 2007
- Jacks suite test results for release 0.9.26
- JUnit suite test results for release 0.9.26
- Diffs in test results v0.9.26 wrt. the previous version
-
Migrate implementation of the OT package explorer from copy&paste code in
org.objectteams.otdt.ui
to theorg.objectteams.jdt.ui.adaptor
. This improves the consistency at the UI.
Note that this change causes an error dialog after updating, saying "Could not find view: org.objectteams.otdt.ui.PackageExplorer
". Please open a regular Java Package Explorer instead, which now has all the OT/J functionality, too. -
Migrated
org.eclipse.jdt.core
and JUnit test suite to Eclipse maintenance release 3.2.2. -
Byte-code incompatiblities:
- Restructured the run-time library wrt. the internal type
IBoundBase
. - Add more information to byte-code attributes to avoid some of the restrictions reported in TPX-434 (OT/Equinox cannot use class
de.fub.bytecode.Repository
).
Also fixes new cases 4.5.12-otjld-basecall-requires-lowering-1, 4.3.11-otjld-translating-mapped-parameter-1 ff.
- Restructured the run-time library wrt. the internal type
-
Encouraging migration to new syntax for externalized roles:
- New warning when still using path syntax (
p.q.R
). - Quick-fix to convert path syntax to a value type parameter (
R<@p.q>
).
- New warning when still using path syntax (
-
Improved grammar: support special type anchor
<@base>
within roles bound to a team.
OTJLD § 2.6(a), 1.9.6-otjld-base-anchored-type-1 -
Support role creation in new syntax:
new R<@aTeam>()
7.4.2-otjld-callout-access-to-hidden-method-3f -
Support refinement of
playedBy
in nested teams when also using the type anchor <@base>.
1.1.26-otjld-nesting-and-layering-2 -
Support callout to private method if the base class is a role, too.
7.4.2-otjld-callout-access-to-hidden-method-3 -
Support lowering also in these locations:
- sub-expression of an argument of a constructor's self call.
1.6.21-otjld-constructor-receives-externalized-role-1 - argument of a base-call
4.5.12-otjld-basecall-requires-lowering-1
- sub-expression of an argument of a constructor's self call.
Release 0.9.25Jan 20, 2007
- Jacks suite test results for release 0.9.25
- JUnit suite test results for release 0.9.25
- Diffs in test results v0.9.25 wrt. the previous version
-
Byte-code incompatiblity:
This version introduces some additions/changes regarding the generated byte code that require re-compilation of existing code. The run-time environment will refuse to work with byte-code that was generated by compiler versions < 0.9.25. - Fixed searching for private role methods. Should also solve related problems in refactorings.
-
OTDT API: Explicit support for guard predicates in the DOM AST.
org.objectteams.otdt.ui.tests.dom.converter.GuardPredicateTest,
org.objectteams.otdt.ui.tests.dom.rewrite.ASTRewritingModifyingTeamTest,
org.objectteams.otdt.ui.tests.dom.rewrite.ASTRewritingModifyingRoleTest -
Static role methods may access non-static team features. Support for this was incomplete.
See, e.g., A.1.5-otjld-role-class-literal-1 f. -
Reduced size of the batch compiler
ecotj.jar
TPX-433 - Fixed the team-monitor view for teams activated via launch configuration.
- Fixed "mark occurrences" for role type declarations.
-
Improved separation of regular import scope and base import scope.
A role and its base class may even have the same name without producing any name clashes.
2.4.6-otjld-baseclass-has-same-shortname-2 -
Fixed a combination of lowering and widening.
2.2.1-otjld-lowering-to-baseclass-11 -
Code completion after the
playedBy
keyword: if an import is needed generate as "import base ...
".
-
Allow lifting for a base object before it is fully initialized.
TPX-487, 2.2.31-otjld-lifting-uninitialized-object-1 f. -
Improved syntax hightlighting support for OT/J:
- Fixed non-deterministic failures by fully replacing the Java highlighting for the Java editor. See Eclipse bug #151280.
- Support OT/J syntax in the compare editor, too.
- Fixed selection/navigation for field designator in callout-to-field.
-
Improved quick-fixes: more corrections regarding mismatch between the
callin
modifier for methods and the callin modifiersbefore,after,replace
.
-
Fixed source position in error reporting if a method binding illegally mentions a (Java-) modifier.
3.1.10-otjld-binding-states-modifier-4
Release 0.9.24Jan 09, 2007
- Jacks suite test results for release 0.9.24
- JUnit suite test results for release 0.9.24
- Diffs in test results v0.9.24 wrt. the previous version
-
OTJLD clarifications on
- how garbage collection interacts with team activation,
OTJLD § 5.1.2 - no overriding of final roles.
OTJLD § 1.3.1(c)
- how garbage collection interacts with team activation,
-
Fix resolving of
this
within local types of roles.
1.1.3-otjld-method-invocation-4 -
Added DOM-support for precedence declarations.
org.objectteams.otdt.ui.tests.dom.converter.PrecedenceDeclarationTest -
More sophisticated treatment of combined nesting and implicit inheritance.
B.1.1-otjld-sh-44 -
New quick-fixes (Ctrl-1) to resolve these problems:
-
import modifier:
- It is recommended that base class {0} be imported with the modifier 'base'.
-
role modifiers:
- Member types not allowed in regular roles. Mark class {0} as a team if {1} should be its role (OTJLD 1.5(a,b)).
- Illegal access modifier for role {0}. Only public and protected are allowed here (OTJLD 1.2.1(a))
- Cannot reduce the visibility of role {0} to {1}, implicit super-role is ''{2}'' (OTJLD 1.3.1(h))
- Team {0} may need to be declared abstract, because irrelevance for abstract role {1} could not be shown (OTJLD 2.5(b)).
- Team {0} must be declared abstract, because abstract role {1} is relevant (OTJLD 2.5(b)).
-
modifiers relating to callins:
- Cannot bind method {0} using "replace": need a callin method (OTJLD 4.2(d)).
- Modifier "callin" not allowed here; overriding a method from {0} which is not a callin method (OTJLD 4.2(d)).
- Missing modifier "callin"; overriding a method from {0} which is a callin method (OTJLD 4.2(d)).
- Cannot bind static base method {1} to non-static role method {0} (OTJLD 4.7(b)).
- Cannot bind non-static base method {1} to static callin method {0} via replace (OTJLD 4.7(d)).
- Callin modifier (before, after or replace) missing for callin-binding {0} (OTJLD A.3.3).
-
precedence declarations:
- callin bindings {0}.{1} and {2}.{3} refer to the same base method; must declare precedence of these bindings (OTJLD 4.8).
-
import modifier:
-
New configurable warning if a regular import is used to import a role's base-class:
"It is recommended that base class {0} be imported with the modifier 'base'".
(warning token isbindingconventions
, more of this kind to follow).
OTJLD § 2.1.2(d), 2.1.10-otjld-base-import-5 f. -
Clarification: a role must not override a final tsuper-role.
OTJLD § 1.3.1(c), 0.c.10-otjld-override-final-role-1
Release 0.9.23Dec 20, 2006
- Jacks suite test results for release 0.9.23
- JUnit suite test results for release 0.9.23
- Diffs in test results v0.9.23 wrt. the previous version
-
Byte-code incompatiblity:
This version introduces some additions/changes regarding the generated byte code that might require re-compilation of existing code. -
Enhancements for the metrics plug-in:
-
new metrics:
- Chidamber and Kemerer metrics: Response for a class (RFC), Lack of cohesion in methods (LCOM), Coupling between objects (CBO), Number of Children (NOC), Depth of Inheritance Tree (DIT)
- LOC metrics: Physical Source Lines of Code, Method lines of code for method declarations, Method lines of code for method bodies.
- Counting elements: Number of unbound roles, Number of bound roles, Number of classes, Number of interfaces, Number of classes used by a class, Number of classes using a class
-
UI-enhancement
- The metrics view now groups metric trees for related metrics
-
bug-fix:
- fixed ArrayIndexOutOfBoundsException in InheritanceTreeOperation
- initial optimizations
-
new metrics:
-
New: Included export of metric results as XML.
Future versions will include report generation using BIRT. -
OT/Equinox: Improved the support for team-inheritance.
Now each team has to declare its super-team (if it's not org.objectteams.Team). -
Fixed a special situation of smart lifting in conjunction with team inheritance.
6.4.1-otjld-smart-lifting-19 et al -
Removed a compiler limitation: static role methods (including callin methods) can now access enclosing instances at any level.
7.1.16-otjld-static-role-method-6 -
Clarification: accessing a member of an externalized role requires the member to be public.
OTJLD § 1.2.1(e), 0.a.8-otjld-role-field-access-other-role-8 ff. -
Fixed a special situation of accessing a role field from team code involving also team inheritance.
(Internally restructured translation to use synthetic methods for role field access)
0.a.8-otjld-role-field-accessed-by-team-4 ff. -
New use of modifier base: restrict imports for use as a base class.
OTJLD § 2.1.2(d), 2.1.10-otjld-base-import-1 ff. -
Migrated icon decoration from copy&paste code in
org.objectteams.otdt.ui
to aspect plug-in org.objectteams.jdt.ui.adaptor.
Aside from code reduction this results in more consistent visualization across views. -
Clarification: a callin must not bind to an inherited final base method.
OTJLD § 4.1(f), 4.1.38-otjld-callin-to-final-1 -
OT/Equinox: Respect an implicit plug-in dependency from
org.eclipse.core.resources to org.eclipse.ui.ide
when determining the order of loading and instantiating teams from aspect plug-ins.
Fixes the failure to display the "choose-workspace" dialog. -
Re-worked parameter passing for special cases of callin bindings (static, callin-to-callin, parameter mappings).
4.3.10-otjld-maximum-parameter-tweeking-1 -
Checking exceptions thrown by base-calls.
7.5.8-otjld-callin-declares-other-exceptions-2
Release 0.9.22Dec 04, 2006
- Jacks suite test results for release 0.9.22
- JUnit suite test results for release 0.9.22
- Diffs in test results v0.9.22 wrt. the previous version
-
Fixed some combinations of callin-to-callin (parameter passing).
B.1.1-otjld-sh-42 - Support callin and callout method bindings in the call hierarchy view.
- Improved searching/selecting for method bindings.
- Made smart lifting work also in OT/Equinox.
-
Fixed lifting to an abstract role.
2.2.32-otjld-lifting-to-abstract-role-1 -
Support static role type adjustment also for parameters with declared lifting.
OTJLD § 2.3.2(a), - Support for a "T" overlay on a team package icon.
- Fixed dom AST handling of declared lifting and type anchors
Release 0.9.21Nov 22, 2006
- Jacks suite test results for release 0.9.21
- JUnit suite test results for release 0.9.21
- Diffs in test results v0.9.21 wrt. the previous version
- OT/Equinox: support multiple aspect plugins to adapt the same base plugin.
-
Fixed some visibility issues in nested team/role/local-type structures.
1.1.24-otjld-generated-method-of-nested-team-1
7.4.8-otjld-field-decapsulation-1 ff.,
1.1.2-otjld-team-method-invocation-4a, 1.1.2-otjld-team-method-invocation-5a -
Properly report decapsulation by callout-to-field.
7.4.8-otjld-field-decapsulation-1 f. -
Improved code completion regarding implicitly inheritd methods.
org.objectteams.otdt.tests.model.OTCompletionTests - Resurrected the binding editor, whose AddTypeBinding dialog was broken.
-
Clarification: role types cannot contain non-constant static initializers.
OTJLD § 1.2.1(g), B.1.1-otjld-ch-5a f. -
Improved support for array lifting/lowering in conjuction with baseclass decapsulation.
7.4.6-otjld-baseclass-is-invisible-7 -
Implicit inheritance of constants.
B.1.1-otjld-ch-5
Release 0.9.20Nov 16, 2006
- Jacks suite test results for release 0.9.20
- JUnit suite test results for release 0.9.20
- Diffs in test results v0.9.20 wrt. the previous version
-
Fixed activation of a role-as-base in conjunction with implicit inheritance.
B.1.1-otjld-sh-41 -
Integration with new overlay icons in the package browser: also show roles, teams and team-and-roles.
These overlays were introduced in Eclipse 3.2 by the name of "java type indicators".- Look here for "Java type indicators"
- Enable under
Preferences->General->Appearance->Label Decorations
.
- Previously, all role methods had an "implements" marker in the editor's gutter, which was caused by generated methods in a generated interface. These markers are now filtered out.
- Fixed one more occurrence of the InternalCompilerError "trying to search baseclass too early".
- Improved source positions for method bindings (relevant for highlighting, navigation, error reporting etc.).
-
Improved analysis of callin precedences wrt. inheritance (implicit, even diamond), overriding etc.
1.1.11-otjld-role-inherits-callin-from-tsupers-2, 4.1.3-otjld-overwriting-inherited-callin-binding-1g f. - Fixed new project wizard, which in one situation opened twice.
-
Revoke interim limitation: callin bindings to private methods are again supported
(now including implicit inheritance).
0.c.9.otjld-implicitly-inheriting-callin-to-private-1 -
Completed the support for static fields in roles.
B.1.1-otjld-ch-4 -
Fixed a combination of callin binding with lifting and implicit inheritance.
B.1.1-otjld-ch-3 f. - Repaired cheat sheets: description, code syntax, layout.
-
Fix base class decapsulation in combination with implicit inheritance.
7.4.6-otjld-baseclass-is-invisible-6 -
Allow mentioning of a decapsulated baseclass also as a role constructor argument.
OTJLD § 2.1.2(c), 7.4.6-otjld-baseclass-is-invisible-6 - Support new-style dependent types also in the DOM (the compare editor would, e.g., not open for classes using this syntax).
-
Fixed a duplicate team activation caused by a tricky combination
of different teams and base class inheritance.
5.2.16-otjld-activation-bug-1 -
Consolidated support for nested teams in role files.
1.5.17-otjld-nested-role-file-3 -
New constraint for value parameters: cannot be combined with qualified types.
OTJLD § A.9(a), 1.9.5-otjld-qualified-dependent-type-reference-1 -
Fixed runtime byte code error "
No such field _OT$base
",
B.1.1-otjld-ch-1 f.
Release 0.9.19Nov 06, 2006
- Jacks suite test results for release 0.9.19
- JUnit suite test results for release 0.9.19
- Diffs in test results v0.9.19 wrt. the previous version
-
Fixed guard predicate of a role in a nested team.
9.1.1-otjld-class-predicate-6 - Implement implicit inheritance for one more kind of synthetic methods (access to inaccessible method).
-
Interim compiler limitation enforced by error reporting:
Can't callin-bind to a private role method.
(such bindings caused problems when inherited accross teams).
This limitation currently causes two failures in the jacks suite. - Several issues of compilation order (avoiding cyclic dependencies).
-
Safer handling of anonymous classes in combination with implicit inheritance.
B.1.1-otjld-sh-40 -
Fixed a combination where a role extends a regular class and the team has a sub-team.
B.1.1-otjld-sh-39 -
Fixed a combination of role interfaces and implicit inheritance.
0.b.4-otjld-implements-accross-team-inheritance-2 -
Detect and report duplicate callin names.
4.1.32-otjld-overriding-of-callin-binding-9, OTJLD § 4.1(e) -
Fixed confusion regarding lowering to an exception.
B.1.1-otjld-sh-38 - Improved incremental building: re-use of binary roles only if no problem occurs.
Release 0.9.18Oct 16, 2006
- Jacks suite test results for release 0.9.18
- JUnit suite test results for release 0.9.18
- Diffs in test results v0.9.18 wrt. the previous version
- Updated two samples (Stopwatch and Flightbonus) to newer versions. Re-wrote the description of the Flightbonus sample and fixed run-link for this sample.
-
Improved order of processing for role files.
TPX-491 - Repaired integration of OT/J samples.
- Performance-optimizations of the runtime-environment.
-
Improved visualization for OT-elements:
- new icons for protected roles and nested teams (team and role)
- Role and Team icons for a few more views (e.g., OpenType, SelectMainType, QuickHierarchy).
- Special support in quick outline (ctrl-o):
When pressing ctrl-o again also role files are shown.
- Fixed selection for base calls in nested roles.
-
New: support for
MyTeam.this
style in static role methods (not callin).
OTJLD § 1.2.1(f) -
Fix for
instanceof
with non-role lhs and role-type rhs.
1.3.18-otjld-instanceof-non-role-to-role-1. -
Prohibit use of
base.T
if base class is not a team.
1.1.23-otjld-team-layered-on-regular-nested-2. - Improved search involving role files.
- Fixed label (Outline view et al) for callout to field.
-
Prevent the UI from displaying error "A non-abstract role method exists for this callout-binding..."
in cases where "
=>
" was already used. - Fixed an illegal access error which occurred when an anonymous role-nested type accessed a protected team feature if also team inheritance accross packages was involved.
- Avoid unused warning for type anchor - private fields and local variables.
Release 0.9.17Sep 20, 2006
(only a few refactorings are currently not implemented)
- Jacks suite test results for release 0.9.17
- JUnit suite test results for release 0.9.17
- Diffs in test results v0.9.17 wrt. the previous version
-
Respect implicit inheritance when determining if a method overrides a super method
(relevant for
@Override
annotations etc.). - Improved completion for creating callout declarations, which now should respect inheritance and overriding in all relevant ways plus correctly insert parameter names.
-
Callout to static field generates now a static method.
3.3.1-otjld-callout-get-2s, 3.3.2-otjld-callout-set-2s, 3.3.2-otjld-callout-set-2s2. - Fix for JDT issue #157996
-
Migrate old implementation of Extract Method refactoring.
org.objectteams.otdt.ui.tests.refactoring.extractmethod.ExtractMethodTests -
Enhanced support for exceptions:
- callout shorthand methods implicitly declare the exceptions of their resolved base method
OTJLD § 3.1(i) - declared lifting of catch parameters
OTJLD § 2.3.2(d) - throwing a role of an exception (via lowering)
OTJLD § 2.3.2(d)
- callout shorthand methods implicitly declare the exceptions of their resolved base method
-
Integrate
DefaultBindingResolver
withDependencies
.
Fixes InternalCompilerError triggered by theOccurrencesFinder
. -
Fixed two memory leaks:
(1) AHashMap<Thread,Integer>
inTeam
(run-time leak)
(2) Failure to release anAnchorMapping
(compile-time leak). - Improved incremental compilation: re-use a compiled role only if its tsuper-role is unchanged.
-
Avoid unneeded resolving of super classes (fixes the last failure in the original Eclipse test suite!).
org.eclipse.jdt.core.tests.dom.BatchASTCreationTests -
Byte code incompatibility:
Changed class file attribute
OTSpecialAccess
:
Prepare to use this attribute exclusivly for all decapsulation issues.
Record super classes of base classes needing adaptation. Prior to this change OT/Equinox could not decapsulate a method from a super class of the declared base class. - Don't report a local variable or private field as unused if it is used as a type anchor.
-
Fixed searching for callin methods when a signature is specified.
TPX-483 -
Correcting source range for method bindings.
TPX-444 -
Extended rules for decapsulation to also cover base constructor calls.
OTJLD § 2.4.2.b, 2.3.6-otjld-no-such-base-constructor-2 - Migration of pre-Eclipse-3.2 refactoring implementation, here: RenameField, PasteCallin, PasteCallout.
- Clean-up code of OT-Plugins by utilizing new capabilities of OT/Equinox.
-
Support base constructor calls in cases of baseclass decapsulation.
7.4.6-otjld-baseclass-is-invisible-5 -
OT/Equinox: new attribute
activation
in extension pointaspectBinding
for controlling automatic activation of teams. -
OT/Equinox: eager loading of role classes right after their team.
Fixes problems where transformers missed to add needed methods to base classes. -
Improved resolving of anchored types, which interfered with
some corner cases regarding generics and ambiguous methods.
Fixed many tests in junit suite:
org.eclipse.jdt.core.tests.compiler.regression.GenericTypeTest, org.eclipse.jdt.core.tests.compiler.regression.AmbiguousMethodTest -
Improved pretty printing of
tsuper
calls in error messages.
Release 0.9.16Aug 27, 2006
-
Let error erporting more closely follow the eclipse compiler.
Fixes many failures in org.eclipse.jdt.core.tests.compiler.regression. -
Improve completion on a right-hand-side of a method binding.
-
Show label decorations for role and team classes.
TPX-184 -
Improved/corrected multiplicities of OT/Equinox:
- only one base plugin per aspectBinding (extension point schema)
- many aspect bindings per aspect plugin
- many adapting aspect plugins per base plugin
-
Support completion to generate callout bindings.
TPX-456 - Support completion for base-calls using the correct signature.
-
Restrict baseclass decapsulation (see v13841) to specific positions.
7.4.6-otjld-baseclass-is-invisible-4 -
Support externalized role type in callout to field (get), field is implicitly inherited.
3.3.14-otjld-callout-to-field-type-externalized-5 -
NPE-fix regarding
instanceof
expression for role type anchored to a field.
1.3.3-otjld-role-not-subtype-of-superrole-1f -
Support inheritance of callin paramater mappings.
4.3.1-otjld-parameter-mapping-13, TPX-479
Release 0.9.15Aug 13, 2006
-
Support navigation (F3) for implicitly inherited fields.
TPX-127 -
Fixed VerifierError caused by implicit inheritance of roles using the
instanceof
operator. -
Fixed caching of roles created by a custom lifting constructor.
2.3.29-otjld-creation-as-statement-3 -
Safer strategy for testing stray threads using Thread.isAlive().
TPX-477 -
Clarified semantics of callin bindings to static base methods with respect to inheritance.
OTJLD § 4.7(e), X.1.5-otjld-callin-from-static-base-method-23 ff. -
Support baseclass decapsulation.
OTJLD § 2.1.2(c), 7.4.6-otjld-baseclass-is-invisible-1 ff., 2.4.2-otjld-inaccessible-base-class-13 ff. (for inaccessible roles) -
Support multiple callin bindings to the same role method with a base call.
9.1.4-otjld-binding-predicate-15, TPX-472
Release 0.9.14Aug 06, 2006
It features five plugins written in OT/J.
-
Support garbage collection for roles, using DoublyWeakHashMap and infrastructure based on org.objectteams.Team.IBoundBase to link bases to their roles.
TPX-66 ff., 2.5.1-otjld-garbage-collecting-unreferenced-1 ff. -
Fixed translation of role type casts.
TPX-458, B.1.1-otjld-sh-31 -
Avoid call of inexistent '_OT$registerObserver' (internal aspect registration infrastructure).
1.1.22-otjld-layered-teams-1 -
Report inconsistent partially compiled hierarchy (suggesting full build) (caused StackOverflowError).
TPX-26, B.1.1-otjld-sh-30 -
Adapt corext.dom for role files (new aspect RoleFileAdaptor in org.objectteams.jdt.ui.adaptor).
TPX-143 -
Throw UnsupportedFeatureException to signal when weaving has failed
because the base class has been loaded before the team class.
X.1.7-otjld-referenced-teams-1 -
Support auto(un)boxing for return of callout binding.
TPX-468, A.1.4-otjld-autounboxing-in-method-mapping-1 -
Avoid cast for absent role instance in static base call.
X.1.3-otjld-static-callin-to-callin-1
'isActive(myThread)' now throws an 'IllegalThreadStateException' if 'myThread' has been finished (run method exited).
5.2.15-otjld-explicit-activation-for-all-threads-2 -
Fixed runtime exception AIOOE caused by wrong transformation of parameter mapping.
TPX-384, X.1.5-otjld-callin-from-static-base-method-17 -
Resolving type via
base
: consider that base may be a role or a team.
1.1.22-otjld-layered-teams-3 - Special treatment for compiling org.objectteams.Team.__OT__Confined. Now the OT/J compiler can fully compile the OTRE.
-
Special treatment for super calls to __OT__Confined.<init>
TPX-466 - In the hierarchy view, display supertypes in their natural order, facilitating search for inherited methods.
-
Fixed completion for anonymous class in the scope of a role (caused NPE).
TPX-421 -
Avoid NPE in RoleModel.recordIfcPart() (keep going with syntactically broken sources).
TPX-423 -
Avoid error marker on a line w/o error (type anchored to method argument).
TPX-454 -
Avoid runtime NPE in role type casts.
TPX-465, 1.7.7-otjld-otjld-example-3 - Start OT/J-aware dependency-management for incremental compilation: new aspect-plugin org.objectteams.otdt.compiler.adaptor
-
Support array lowering in base calls.
2.2.12-otjld-array-lowering-to-baseclass-7 -
Support searching callin method declarations.
org.objectteams.otdt.tests.search.OTJavaMethodSearchTests.test033-35 -
Fixed implicit inheritance for methods with generics (produced invalid byte code).
A.1.2-otjld-generic-role-feature-5 - OT/J specific icons for the search result view (implemented as an aspect).
-
NPE when trying to revert the generated name of a base-call (caused: internal error occurred during: "Breakpoint location validation")
TPX-457 -
Allow '
team
' to appear as a package identifier in an import declaration.
8.11.1-otjld-importname-contains-team-1, f.
Release 0.9.13July 24, 2006
-
Byte code incompatibility: Avoiding "Repository-workaround" in OT/Equinox.
TPX-434 part 2a). - Re-writing of annotations of a callout binding.
- NewRoleWizard: disable buttons for illegal modifiers (only public/protected allowed).
-
Role file nested in inline role.
TPX-149. -
Nested role files (initial implementation).
1.5.17-otjld-nested-role-file-1, f., TPX-269 -
Keep processing a team class despite of errors in a role.
3.1.15-otjld-callout-called-within-localtype-2, TPX-452 -
For dependent type base class use the anchor for resolving callout base parameters.
1.1.22-otjld-layered-teams-1 - Metrics plugin: initial exporting of metrics data to XML.
-
Accessing a package-visible team field from a role -- implicit inheritance accross packages.
0.a.12-otjld-role-accessing-team-field-1 -
Byte code incompatibility: ensure unique names for different kinds of generated methods (creator vs. base-call surrogate).
B.1.1-otjld-sh-29
Release 0.9.12July 17, 2006
-
Externalized roles: respect assignment of anchor (final field) in constructor.
B.1.1-otjld-sh-28, TPX-451 -
Handling of base predicates in a class with syntax errors.
B.1.1-otjld-sh-26, TPX-448 -
Regression (was broken by v13163): missing pop in byte code generated from a role creation as a statement.
2.3.29-otjld-creation-as-statement-1, TPX-401 -
Regression (was broken by v13128): Team activation via launch configuration.
TPX-450
Release 0.9.11July 13, 2006
- Fix NPE for Roles extending Thread or implementing Runnable.
- Avoid quasi non-determinism regarding inheritance of callin bindings.
- New plugin org.objectteams.otdt.junit for launching JUnit tests for OT/J.
-
Avoid JVM-SIGSEGV by respecting "Signature" byte code attribute during
copy inheritance.
A.1.2-otjld-generic-role-feature-5 -
(1) Workaround: Special handling of AWT-Event-Thread, because this thread is not captured by the current mechanism.
If a team is globally active it will now be always active for this thread!
(2) Preventing SourceMap from beeing created more than once for a base class. -
Fixing a StackOverflow by a new rule in OTJLD § 2.1.2(b):
Prohibit cycles of combined playedBy and memberType relations.
B.1.1-otjld-sh-25
Release 0.9.10July 10, 2006
-
InternalCompilerError("Unresolved copy inheritance source") concerning
_OT$castTo$Confined
.
4.1.27-otjld-precedence-declaration-11p, if run with existing class files on disk -
Search declaration finds declaration in super interface.
TPX-443 -
Subtype compatibility in implicit parameter mappings
3.3.18-otjld-callout-to-field-compatible-type-1 -
Error handling in callin methods.
B.1.1-otjld-sh-24 -
Disallow decapsulation for private members of a base class's super class.
TPX-442, 7.4.7-otjld-private-feature-is-not-inherited-1 ff. - Packaging of org.objectteams.otdt.pde.core.lib (broke the developement of OT/J plugins).
-
Two occurrences of InternalCompilerError("Translation does not advance,...").
Context: Opening the team selection dialog for a launch configuration. -
NPE in PotentialLowerExpression.resolveType
Context: OTSample-Observer.
Release 0.9.9July 01, 2006
© Stephan Herrmann
Last modified: Sun April 1, 2007