OT/J Aspect Bindings

Identifier:
org.objectteams.otequinox.aspectBindings

Since:
OTDT 0.9.1 based on Eclipse 3.2.

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.

API Information:
The class named in the class property must be a team class thus implementing the org.objectteams.ITeam interface.

Supplied Implementation:
None.


This file is part of "Object Teams Development Tooling"-Software

Copyright 2006, 2010 Technical University Berlin, Germany. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html

Please visit www.objectteams.org for updates and contact.

Contributors:
Technical University Berlin - Initial API and implementation