Eclipse Object Teams 2.5.0 Release Review

Type
Release
State
Successful
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.

Release

2.5.0

Description

New Weaver

The Neon release (2.5.0) of Object Teams will be shipped with the new byte code weaver OTDRE (Object Teams Dynamic Runtime Environment) in production quality. This adds the following functionality:

  • Team and role classes can be dynamically added to a running application, the necessary weaving can be performed even on classes that have already been loaded into the JVM. This provides the ultimate flexibility for unanticipated adaptation.
  • Weaving is fully capable of handling Java 8 bytecode. Workarounds applied in the previous weaver are no longer needed.

Additionally, the previous weaver OTRE (Object Teams Runtime Environment) will be updated (time permitting) to also handle Java 8 bytecode, as to provide both weavers with quite different characteristics as options.

Support for Java 9 will be merged from JDT (and adjusted for OT/J) when it is available. (not applicable as of Neon)

API Certification

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

Architectural Issues

This release completes the necessary work to fully support Java 8.

By relying on the byte code library BCEL, the traditional runtime component org.eclipse.objectteams.otre can no longer be used in Java 8 settings, because the support for Java 8 in BCEL is (a) unreleased and (b) insufficient as of this writing. When the Eclipse platform moved to requiring Java 8, this put pressure on completing work on an alternative to OTRE.  This alternative (OTDRE for "Object Teams Dynamic Runtime Environment") was initially released in OTDT 2.3, but at that time it had not reached the maturity of OTRE. In 2.5, OTDRE is finally considered production-ready as witnessed by running the Object Teams Development Tooling on top of OTDRE as its runtime.

Bugzilla balance since the 2.4 release:

  • 78 bugs & enhancements fixed
  • 7 bugs resolved WORKSFORME
  • 75 remaining open bugs
    • 13 of these where filed after the Mars release
  • 18 open enhancement requests

See also this chart.

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

No changes regarding usability in this release.

 

End of Life

Nothing has been deprecated.

OTRE, while currently unmaintained, is still a good choice for development with Java 7 and below.

 

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.5.0 implements OTJLD version 1.3.1
    • OT/J as implemented by OTDT 2.5.0 supports all features of Java™ 8
  • OT/J is executed on a standard Java virtual machine
    • The new bytecode weaver uses the quasi-standard library ASM
  • 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

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

The Object Teams presentation "Runtime Specialization - Java has never been so dynamic before" at EclipseCon Europe 2015 was very well received, lots of positive feedback.

7 bugs were fixed in response to automated reports from AERI.

This release is part of Neon