Здравствуйте, уважаемые читатели. Суровый челябинский программист вернулся из земли Египетской, акклиматизировался и готов порадовать вас новой статьей (хотя, конечно, переход от +28 к - 20 это жестоко).
Сегодня мы поговорим об основном на сегодняшний день механизме расширения функциональности разрабатываемого Eclipse-плагина - о точках расширения, которые появились еще тогда, когда Eclipse не базировался на технологии
OSGi и не мог использовать сервисы, события и прочие полезные вещи, предоставляемые этой платформой.
Суть заключается в следующем: в корне плагина находится файл
plugin.xml, в котором содержатся объявления точек расширения (тег
extension-point) - элементов описывающих те места системы, которые можно расширять. В платформе
Eclipse RCP определены точки расширения для регистрации своих
адаптеров, видов, перспектив, пунктов меню, кнопочек на панели быстрого запуска и т.д. и т.п.
Точка расширения характеризуется уникальным идентификатором (атрибут
id, который обычно задают, придерживаясь доменной модели, как и java-пакеты; именем (атрибут
name), служащим больше для удобства программиста, и схемой (атрибут
scheme) - путем к exsd-файлу, который содержит
XScheme, описывающую формат расширения.
Само расширение описывается внутри тега
extension, который содержит xml-код, удовлетворяющий схеме, заданной при создании точки расширения. Т.е. если абстрагироваться от деталей, то в бандле, предоставляющем какой-то расширяемый механизм, мы описываем точку расширения (
extension-point), а в других бандлах (которых естественно может быть - несколько) - расширения (
extension).