Eclipse Object Teams 2.3.0



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