An extension point is a hook that allows two plug-ins to communicate through the exchange of data or code. All extension points are defined in XML; these are then stored in the Extension Registry and accessed on demand from client plug-ins. One nice feature of Eclipse's Extension Registry is that it is possible to dynamically link plug-ins together at runtime but prior to the bundle having been started. The Extension Registry is also cached, so that the second time you start up Eclipse, it starts faster than it did previously.
To define an extension point, we need two pieces of information:
- The id and name of the extension point
- A pointer to an XML Schema that defines what valid XML content is allowed