Точка расширения продуктов

Предпочитаемым механизмом для определения продукта, разработанного на основе платформы 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. Эти вопросы будут подробнее рассмотрены в разделе Настройка продукта.