Eclipse Object Teams 2.3.0 Release Review

End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.




Luna annual release (2.3) of Object Teams.

Main themes:


  • Adopt new features of Java™ 8 into the language OT/J
    • merge grammars and address potential conflicts
    • merge compiler implementation
  • Enable running OT/J programs on a Java™ 8 VM, by providing two alternative weavers
    • the traditional BCEL-based weaver is a mature technology that handles all of Java 7 and OT/J, but it cannot handle Java 8 class files.
    • a new ASM-based weaver will be first released with Luna, which can handle all elements of Java 8 byte code. Additionally, this weaver is capable of runtime weaving (as opposed to load-time weaving), However, this weaver needs more maturing before being enabled as the default
    • to support both weavers, the compiler can produce class files in two alternative formats.


  • Provide essential IDE support for the combination of Java 8 features with OT/J


  • Migrate to the Luna version of Equinox
  • Reduce dependence on Equinox-specific API in favor of standard OSGi API


API Certification

The project leadership certifies that the APIs in this release are "Eclipse Quality".

Architectural Issues

As part of the re-implementation of OT/Equinox, the existing bundle org.eclipse.objectteams.runtime has been split into three bundles:

  • org.eclipse.objectteams.runtime: only minimal runtime classes used by OT/J programs
  • org.eclipse.objectteams.otre: the tradiational bytecode weaver based on BCEL (previously part of the above)
  • org.eclipse.objectteams.otredyn (version 1.0.0): new ASM based weaver
    • this bundle introduces a dependency on ASM 5.0.1

With 9 plug-ins written in OT/J, OTDT is a mature self-application of our own technology.

Bugzilla balance since the 2.2.0 release:

  • 30 bugs fixed (several of which where comprehensive migration tasks)
  • 2 bugs resolved as worksforme
  • increase in open bugs from 31 to 62
  • decrease of open enhancement requests from 19 to 17

The increase in open bugs can be explained by the comprehensive maintenance efforts imposed by the migration to Java 8 and to the Luna version of Equinox. Both migrations require follow-up work for Luna service releases.



Security Issues

No known security issues

Non-Code Aspects

Documentation is hosted at, including

  • many wiki pages: introductory texts, examples and patterns and much more
  • developer guide (also bundled as a help plug-in)
  • OT/J language definition
  • ...

The tool ships with learning material in various forms:

  • installable examples
  • cheat sheet
  • developer guide
  • OT/J language definition
  • new&noteworthy
Usability Details

Continued improvements, and adoption of upstream improvements (notably from JDT/UI).


End of Life

Nothing has been deprecated

  • No standard exists for OT/J, the project provides the only implementation for this technology
    • Language definition (OTJLD) is maintained at
    • OTDT 2.3.0 implements OTJLD version 1.3.1
    • OT/J as implemented by OTDT 2.3.0 supports all features of Java™ 8
  • OT/J is executed on a standard Java virtual machine
  • OT/Equinox runs on the Equinox framework using ...
    • only standard OSGi headers in MANIFEST.MF
    • only regular extensions in plugin.xml
    • the WeavingHook as standardized in OSGi
  • Installing the OTDT (and any OT/Equinox appl.)
    • using only existing p2 mechanisms


  • Interaction in Bugzilla
  • Activity on the Object Teams newsgroup
  • Object Teams blog is integrated on and features Object Teams as well as JDT/Core work
  • Tight integration with the JDT team
    • Some bugs in JDT found during work on Object Teams
    • All improvements in the JDT are promptly adopted in Object Teams
This release is part of Luna