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.
Extension Point (Buckminster)
< To: Buckminster Project
Buckminster Extension Points are based on Eclipse Extensions. It is really beyond the scope of the documentation provided with Buckminster to cover the general plug-in mechanism of Eclipse. Please see the Eclipse documentation - the introduction to pde in the Eclipse help system is a good good starting point to learn more about the plugin system.
But since you are here reading about extension points, and maybe just wonder what they are it is useful to know that the Eclipse workbench defines extension points that allow plug-ins to contribute behaviors to existing functionality or to provide implementations for new functionality. A plug-in may also define new extension points that other plug-ins in turn may use, extend, or alter its behavior. Bucminster uses this mechanism to make it (realitvely) easy for anyone to add both new "Buckminster features" as well as project specific functionality. As you can see in the Eclipse documentation, a pde schema can be used to define and document the available extension points.
If you want to see the definition of Buckminster's extension points, we suggest that you first install Buckminster, and then use Buckminster to materialize the source code.
For instance, if you need to interpret versions strings in some project specific way, you may need to create a Buckminster Version Type as an Eclipse plugin. This VersionType supplied by you should be written in Java, implementing interfaces found in the Buckminster project (and in Eclipse).
And in case you wonder how all places where you may materialize the components gets access to your plugin, you also need to setup an update site from which your plugin can be downloaded on demand.
But, as we said, all that is really beyond the scope of this particular documentation, but it should give you an idea of what is needed. BTW - Eclipse has really good support for developing plugins, it really sounds more difficult that it is in practice.