Eclipse Object Teams 2.3.0
Luna annual release (2.3) of Object Teams.
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
The project leadership certifies that the APIs in this release are "Eclipse Quality".
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.
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
Continued improvements, and adoption of upstream improvements (notably from JDT/UI).
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 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
- 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