Eclipse Object Teams 2.5.0
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)
The project leadership certifies that the APIs in this release are "Eclipse Quality".
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.
No known security issues
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
No changes regarding usability in this release.
Nothing has been deprecated.
OTRE, while currently unmaintained, is still a good choice for development with Java 7 and below.
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
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.