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 "OTEquinox/Aspect Binding"

Line 5: Line 5:
  
 
The central concept of OT/Equinox is a new relationship between bundles called '''aspect binding'''. This relationship is declared in an aspect's <code>plugin.xml</code> as an extension to the extension point <code>org.objectteams.otequinox.aspectBindings.</code>
 
The central concept of OT/Equinox is a new relationship between bundles called '''aspect binding'''. This relationship is declared in an aspect's <code>plugin.xml</code> as an extension to the extension point <code>org.objectteams.otequinox.aspectBindings.</code>
* See the [http://www.objectteams.org/distrib/documentation/reference/extension-points/org_objectteams_otequinox_aspectBindings.html extension point description] for the official documentation.
 
While normally aspect bindings require no further confirmation they are also subject to the protocol of [[OTEquinox/Aspect Binding Negotiation|Aspect Binding Negotiation]].
 
  
==Visualization in the OTDT==
+
:An aspectBinding declares a relationship between a '''basePlugin''' and one or more '''team classes''':
 +
:* '''basePlugin''': symbolic name of a plug-in (bundle) to be adapted
 +
:** In the special case of roles bound to classes from the same bundle use <code>SELF</code> as the base bundle
 +
:** If the bundle to be adapted is a fragment, specify the host bundle as ''basePlugin'' and add a '''requiredFragment''' specification
 +
:** If a team requires access to a class from a not-exported package add a '''forcedExports''' specification (see [[OTEquinox/Forced Export]]).
 +
:* '''team''': name of a team class that is defined in the current bundle and whose roles shall be bound to classes from the base bundle
 +
:** '''activation''': select whether the team shall be instantiated and activated when the application is started
 +
 
 +
:See the [http://www.objectteams.org/distrib/documentation/reference/extension-points/org_objectteams_otequinox_aspectBindings.html extension point description] for the official documentation.
 +
 
 +
:While normally aspect bindings require no further confirmation they are also subject to the protocol of [[OTEquinox/Aspect Binding Negotiation|Aspect Binding Negotiation]].
 +
 
 +
==Visualization in the OTDT during development==
 
The OTDT's package explorer shows aspect bindings in the project's root folder:
 
The OTDT's package explorer shows aspect bindings in the project's root folder:
 
[[Image:AspectBindingsInPackageExplorer.png]]
 
[[Image:AspectBindingsInPackageExplorer.png]]
 +
 +
==Visualization in the running IDE==
 +
Any instance of Eclipse that contains OT/Equinox plugins shows their aspect bindings in the About dialogs:
 +
[[Image:AboutWithBindingDecoration.png]]
 +
 +
(''This dialog is implemented by the plug-in <code>org.eclipse.ui.workbench</code>. The version column shows that this plug-in has been adapted by <code>org.objectteams.otequinox.branding</code>, which itself implements the adaptation to this very dialog'').
  
 
[[Category:OTEquinox|Aspect Binding]]
 
[[Category:OTEquinox|Aspect Binding]]

Revision as of 10:59, 27 February 2010

Important.png
Change of namespace
In versions upto 1.4.0 (served from www.objectteams.org) the IDs of OT/Equionx extension points start with org.objectteams.
During the project move to Eclipse.org this has been renamed to org.eclipse.objectteams....


Binding aspect bundles to base bundles

The central concept of OT/Equinox is a new relationship between bundles called aspect binding. This relationship is declared in an aspect's plugin.xml as an extension to the extension point org.objectteams.otequinox.aspectBindings.

An aspectBinding declares a relationship between a basePlugin and one or more team classes:
  • basePlugin: symbolic name of a plug-in (bundle) to be adapted
    • In the special case of roles bound to classes from the same bundle use SELF as the base bundle
    • If the bundle to be adapted is a fragment, specify the host bundle as basePlugin and add a requiredFragment specification
    • If a team requires access to a class from a not-exported package add a forcedExports specification (see OTEquinox/Forced Export).
  • team: name of a team class that is defined in the current bundle and whose roles shall be bound to classes from the base bundle
    • activation: select whether the team shall be instantiated and activated when the application is started
See the extension point description for the official documentation.
While normally aspect bindings require no further confirmation they are also subject to the protocol of Aspect Binding Negotiation.

Visualization in the OTDT during development

The OTDT's package explorer shows aspect bindings in the project's root folder: AspectBindingsInPackageExplorer.png

Visualization in the running IDE

Any instance of Eclipse that contains OT/Equinox plugins shows their aspect bindings in the About dialogs: AboutWithBindingDecoration.png

(This dialog is implemented by the plug-in org.eclipse.ui.workbench. The version column shows that this plug-in has been adapted by org.objectteams.otequinox.branding, which itself implements the adaptation to this very dialog).

Back to the top