This is an Archived Page
Children of this node
- OtEquinox/ConfigIni OT-Specific Declarations in `config.ini`
- OtEquinox/AspectBindingNegotiation Aspect Binding Negotiation
- OtEquinox/HowtoRunAProduct How to run an OT/Equinox application or product
- OtEquinox/AspectBinding Binding aspect bundles to base bundles
- OtEquinox/RunningStandalone How to run a minimal OT/Equinox framework outside Eclipse
- OtEquinox/HowtoRunOtEquinoxBundles How to run OT/Equinox bundles in an OT/Equinox Framework
- OtEquinox/HowtoCreateOTEquinoxAppFromOTApp How to create an OT/Equinox application from an existing OT application
- Eclipse plug-ins
- RCP applications/products
- arbitrary OSGi bundles?
while utilizing all of the features of OT/J. In the sequel, any mentioning of "bundles" could also be read as Eclipse "plug-in" if that is your focus.
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 either by a system-wide declaration in the file eclipse/configuration/config.ini, or using one of the options of AspectBindingNegotiation.