Eclipse Object Teams 2.3.0

2.3.0

Description

Luna annual release (2.3) of Object Teams.

Main themes:

OT/J

  • 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.

OTDT

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

OT/Equinox

  • 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 http://www.eclipse.org/objectteams/documentation.php, 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

Standards
  • No standard exists for OT/J, the project provides the only implementation for this technology
    • Language definition (OTJLD) is maintained at objectteams.org.
    • 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

 

Communities
  • Interaction in Bugzilla
  • Activity on the Object Teams newsgroup
  • Object Teams blog is integrated on planet.eclipse.org 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