Eclipse Object Teams 2.5.0

Release Date
Deliverables

Features to be included in the release:

  1. org.eclipse.objectteams.otdt: The full Object Teams Development Tooling
  2. org.eclipse.objectteams.otdt.core.patch: Feature that replaces the original jdt.core with the enhanced variant for OT/J
  3. org.eclipse.objectteams.otequinox: Feature that adds OT/J capability to Equinox (using standard OSGi API)
  4. org.eclipse.objectteams.otequinox.turbo: Optional parts of the original OT/Equinox implementation (pre Luna) that builds on Equinox specific API.

 

Compatibility

No source code incompatibilities, i.e., the no incompatible changes in the language OT/J nor changes in the API of OTDT.

With the maturing of the new weaving scheme (OTDRE), two different bytecode formats exist, that cannot be mixed with each other. This implies, that class files for sources that utilize OT/J concepts, which where compiled for the old weaving scheme (OTRE), cannot be used when targetting the new runtime environment.

The format is recorded as a bytecode attribute in the class files. Compiler and runtime environment will detect any illegal mixing of class files of different formats.

It is planned to keep supporting the old bytecode format, provided that the BCEL based weaver (OTRE) can be upgraded in time for the release as to fully support Java 8 bytecode. (no version of BCEL capable of Java 8 bytecode has been released in time for Neon)

The BCEL based weaver (OTRE) is still shipped but its development is currently on hold until a Java 8 capable version of BCEL is available.

Internationalization

Strings used in the UI are externalized.

 

Target Environments
  • JRE
    • Minimum required: 1.7
    • Special focus: 1.8-compatibility
    • Preparation towards 1.9 (not applicable as of Neon)
  • Command line compiler has no further dependencies
  • Runtime environment requires ASM and/or BCEL
  • OTDT 2.5.0 requires Eclipse Neon

 

Themes

Running OTDT on OTDRE

Do demonstrate maturity of OTDRE, the Object Teams IDE itself (OTDT) should run on top of the new technology. All existing functionality should be preserved and tested.
  • ability to run OTDT on OTDRE [462605] (target milestone: 2.5 M4)
  • SneakyException spoils catching of LiftingVetoException [479687] (target milestone: 2.5 M3)
  • run OTDT on OTDRE as its own runtime by default [480068] (target milestone: 2.5 M3)
  • processing log-related classes during weaving causes NoClassDefFoundError during logging [480069] (target milestone: 2.5 M3)
  • exception handlers are lost when moving code to _OT$callOrig [480244] (target milestone: 2.5 M3)
  • super call destroyed by callin binding to sibling class from common ancestor [480257] (target milestone: 2.5 M3)
  • Deadlock below AbstractBoundClass.handleTaskList [480417] (target milestone: 2.5 M3)
  • NPE from CheckUniqueCallinCapture$__OT__Batch.reportDuplicateCallinCapture() [480466] (target milestone: 2.5 M4)
  • Redefine during define may cause ClassNotFoundException [480570] (target milestone: 2.5 M3)
  • Some classes are not fully read by asm, visitMethod has null name.description [480596] (target milestone: 2.5 M3)
  • CCE in BaseImportChecker._OT$callReplace() - possibly confused callinIds? [481858] (target milestone: 2.5 M4)
  • IAE in ASTNode.setSourceRange() from synthetic ast for BaseAllocationExpression [481870] (target milestone: 2.5 M3)
  • NPE when lifting finds a role but the role has been gc'ed [481881] (target milestone: 2.5 M3)

Facilitate migration to the new weaving scheme

Several validations and small tools shall be provided to mitigate the necessary configuration & releng changes when migrating to the new weaving scheme.
  • Preference UI for weaving scheme [481065] (target milestone: 2.5 M3)
  • Project preference weaving scheme should only be editable when project specific options are enabled [481860] (target milestone: 2.5 M4)
  • automatically select weaver when launching [462785] (target milestone: 2.5 M7)
This release is part of Neon