Предпочитаемым механизмом для определения продукта, разработанного на основе платформы Eclipse, является использование точки расширения org.eclipse.core.runtime.products. Для применения этого механизма модуль объявляет имя и идентификатор продукта, а также идентификатор расширения приложения, которое должно быть запущено при вызове данного продукта. Этот прием используется и самой платформой Eclipse при определении продукта Eclipse. Метод org.eclipse.platform содержит следующее определение расширения:
<extension id="ide" point="org.eclipse.core.runtime.products"> <product name="%productName" application="org.eclipse.ui.ide.workbench" description="%productBlurb"> <property name="windowImages" value="eclipse.png,eclipse32.png"/> <property name="aboutImage" value="eclipse_lg.png"/> <property name="aboutText" value="%productBlurb"/> <property name="appName" value="Eclipse"/> <property name="preferenceCustomization" value="plugin_customization.ini"/> </product> </extension>В определении расширения продукта значение идентификатора application равно "org.eclipse.ui.ide.workbench". Идентификатор application определяется модулем org.eclipse.ui.ide в точке расширения org.eclipse.core.runtime.applications.
<extension id="workbench" point="org.eclipse.core.runtime.applications"> <application> <run class="org.eclipse.ui.internal.ide.IDEApplication"> </run> </application> </extension>
Это расширение определено с тем же идентификатором, что и в свойстве application расширения продукта. (При обращении к идентификатору приложения из другого модуля используется полное имя с приставкой модуля.) С помощью этого механизма отдельный модуль может определить все сведения об отдельном продукте и затем обратиться к приложению модуля, которое должно фактически выполняться при запуске продукта.
Помимо приложения, точка расширения org.eclipse.core.runtime.products также описывает свойства, которые используются для настройки сведений о продукте. Эта информация определяется в виде именованных свойств. Рассмотрим еще раз часть кода для модуля платформы.
<property name="windowImages" value="eclipse.png,eclipse32.png"/> <property name="aboutImage" value="eclipse_lg.png"/> <property name="aboutText" value="%productBlurb"/> <property name="appName" value="Eclipse"/> <property name="preferenceCustomization" value="plugin_customization.ini"/>Имена свойств, которые используются для настройки продукта, определены в IProductConstants. Полное описание этих свойств и их значений можно найти в документации Javadoc. Эти вопросы будут подробнее рассмотрены в разделе Настройка продукта.