Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Category:OTEquinox"

(New page: right ==Overview== OT/Equinox is the integration of OT/J into the Eclipse Equinox framework. It can be used to develop and/o...)
 
(Technical Background and Howtos: updated as of OTDT 2.3.0)
 
(3 intermediate revisions by one other user not shown)
Line 11: Line 11:
 
The initial publication about OT/Equinox is the [http://www.objectteams.org/publications/#TOOLS07b TOOLS'07] paper.
 
The initial publication about OT/Equinox is the [http://www.objectteams.org/publications/#TOOLS07b TOOLS'07] paper.
  
The central new concept is an [[OTEquinox/Aspect Binding|Aspect Binding]] which is defined at the architecture level, connecting a '''team''' class ({{otjld|1|.1}}) sitting in an '''aspect bundle''' to a '''base bundle'''. Such binding grants the team permissions to adapt base classes from that base bundle.  
+
The central new concept is an '''[[OTEquinox/Aspect Binding|Aspect Binding]]''' which is defined at the architecture level, connecting a '''team''' class ({{otjld|1|.1}}) sitting in an '''aspect bundle''' to a '''base bundle'''. Such binding grants the team permissions to adapt base classes from that base bundle.  
  
  
Line 23: Line 23:
 
:However, more general terms like '''AOSD''' (aspect oriented software development, see http://www.aosd.net) have been coined with the ''intention'' to cover various approaches that share the motivation of [http://www.cs.uoregon.edu/events/icse2009/awards/ multi-dimensional separation of concerns] while offering solutions that significantly differ from AspectJ.
 
:However, more general terms like '''AOSD''' (aspect oriented software development, see http://www.aosd.net) have been coined with the ''intention'' to cover various approaches that share the motivation of [http://www.cs.uoregon.edu/events/icse2009/awards/ multi-dimensional separation of concerns] while offering solutions that significantly differ from AspectJ.
 
:The OT/Equinox terms of '''aspect bundle''' and '''aspect binding''' etc. are meant to refer to the broader term '''AOSD''' with no implied reference to AspectJ.
 
:The OT/Equinox terms of '''aspect bundle''' and '''aspect binding''' etc. are meant to refer to the broader term '''AOSD''' with no implied reference to AspectJ.
 +
 +
==Technical Background and Howtos==
 +
:'''Prerequisite and Installation:'''
 +
:* In order to leverage OT/Equinox the "''Object Teams Equinox Integration''" must be installed (from the simultaneous release like [https://www.eclipse.org/luna/ Luna] or the specific [http://www.eclipse.org/objectteams/download.php OT download]).
 +
 +
:'''On Launching''':
 +
:* [[OTEquinox/Howto Run A Product Or Application|Howto Run A Product Or Application]]
 +
:* [[OTEquinox/Howto Run OTEquinox Bundles|Howto Run OT/Equinox Bundles]]
 +
:* [[OTEquinox/Howto Run OTEquinox Bundles Standalone|Howot Run OT/Equinox Bundles Standalone]]
 +
 +
:'''Migration to OT/Equinox''':
 +
:* [[OTEquinox/Howto Create OTEquinox App From OTApp|Howto Create OTEquinox App From OT App]]
 +
 +
  
 
[[Category:Object Teams]]
 
[[Category:Object Teams]]

Latest revision as of 14:19, 17 August 2014

OTEquinox Overview.png

Overview

OT/Equinox is the integration of OT/J into the Eclipse Equinox framework. It can be used to develop and/or adapt

  • 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.

Description

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

The central new concept is an Aspect Binding which is defined at the architecture level, connecting a team class (OTJLD §1.1) 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 aspect bindings.

With an aspect binding declared, a bundle may use playedBy (OTJLD §2.1), callout (OTJLD §3) and callin (OTJLD §4) to attach to classes/methods of the base plugin. This includes the options of decapsulation (OTJLD §3.4), 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 aspect binding and must be confirmed either by a system-wide declaration in the file eclipse/configuration/config.ini, or using one of the options of Aspect Binding Negotiation.

Remark on Terminlogy:
It is sometimes disputed whether or not Object Teams is an Aspect technology.
The term AOP (aspect oriented programming) is tightly connected to the language AspectJ, to which OT/J has very little resemblance - so it is probably not useful to call Object Teams an AOP-approach.
However, more general terms like AOSD (aspect oriented software development, see http://www.aosd.net) have been coined with the intention to cover various approaches that share the motivation of multi-dimensional separation of concerns while offering solutions that significantly differ from AspectJ.
The OT/Equinox terms of aspect bundle and aspect binding etc. are meant to refer to the broader term AOSD with no implied reference to AspectJ.

Technical Background and Howtos

Prerequisite and Installation:
  • In order to leverage OT/Equinox the "Object Teams Equinox Integration" must be installed (from the simultaneous release like Luna or the specific OT download).
On Launching:
Migration to OT/Equinox:

Back to the top