OT/J Aspect Bindings

Identifier:
org.objectteams.otequinox.aspectBindings

Since:
OTDT 0.9.1 based on Eclipse 3.2.

Version:
exported from OTDT 1.3.0 M1.

Description:
This extension point allows to define a new relationship between plug-ins called "aspectBinding". By an aspectBinding an aspect plug-in declares which base plug-ins it wishes to adapt and which team classes are used for that purpose. Only teams in this list are allowed to adapt classes from another plug-in, and such adaptation is restricted to classes residing in the specified base plug-in. Each team class mentioned in an aspectBinding is automatically instantiated before the corresponding base plug-in is fully activated. In addition extensions may specify that a given team is also activated after instantiation.

Configuration Markup:

<!ELEMENT extension (aspectBinding+)>

<!ATTLIST extension

id    CDATA #IMPLIED

point CDATA #REQUIRED

name  CDATA #IMPLIED>


<!ELEMENT aspectBinding (basePlugin , team+)>

<!ATTLIST aspectBinding

icon CDATA "platform:/plugin/org.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">

Specifies an individual aspect binding by which a given team class adapts classes from a given base plugin.



<!ELEMENT basePlugin (forcedExports? , requiredFragment*)>

<!ATTLIST basePlugin

id   CDATA #REQUIRED

icon CDATA "platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif">

The base plug-in whose classes may be adapted by the given team(s). The base bundle must be a regular bundle, not a fragment. If a bundle fragment should be adapted the aspect binding must refer to the fragment's host bundle and additionally a requiredFragment should be added.

By specifying SELF as the basePlugin, a team may adapt classes from its own bundle.



<!ELEMENT team EMPTY>

<!ATTLIST team

class      CDATA #REQUIRED

superclass CDATA #IMPLIED

activation (NONE|THREAD|ALL_THREADS)

icon       CDATA "platform:/plugin/org.objectteams.otdt.ui/icons/ot/team_obj.gif">

The team class of this plug-in which is allowed to adapt classes of the given base plug-in.



<!ELEMENT forcedExports (#PCDATA)>

Declare any requests to access packages from the base plugin which are not exported. Provide comma separated list of package names (as in the OSGi Export-Package: header).



<!ELEMENT requiredFragment EMPTY>

<!ATTLIST requiredFragment

id CDATA #REQUIRED>

Name of a fragment of the base bundle that is required by the aspect.



Examples:
See example plugin org.objectteams.otequinox.branding.

Supplied Implementation:
None.