OT/Equinox

Children of this node

Overview

OT/Equinox is the integration of OT/J into the Equinox? framework. It can be used to develop

  • Eclipse plug-ins
  • RCP applications/products
  • arbitrary OSGi bundles?

In the sequel, any mentioning of "bundles" could also be read as Eclipse "plug-in" if you that is your focus.

Description

The initial publication about OT/Equinox is the TOOLS'07 paper.

The central new concept is an OtEquinox/AspectBinding which is defined at the architecture level, connecting a team class sitting in an aspect bundle to a base bundle. Such binding grants the team permissions to adapt base classes from that base bundle.

Starting from version OTDT 1.2.0, OT/Equinox is provided as a regular Eclipse feature that can be installed into Eclipse using the regular mechanisms of Eclipse's p2 provisioning subsystem (successor of the former "update manager"). With the OT/Equinox feature installed, an Eclipse instance is able to run bundles written in OT/J and declaring AspectBindings.

With an AspectBinding declared, a bundle may use playedBy, callout and callin to attach to classes/methods of the base plugin. This includes the options of decapsulation, while generally adhering to export/import rules of OSGi. In those rare cases where an aspect bundle needs access to a base class that is not exported from its bundle, an aspect bundle may declare a forced export to inject the required export into the base bundle. A forced export is declared as part of an AspectBinding and must be confirmed by a system-wide declaration in the file eclipse/configuration/config.ini.