С помощью точки расширения org.eclipse.debug.core.launchConfigurationTypes модули могут добавить в платформу новые типы конфигураций запуска. Данная точка расширения объявляет тип конфигурации с помощью уникального идентификатора. Вам следует создать соответствующую реализацию ILaunchConfigurationDelegate. От этого делегата будет зависеть выполнение конфигурации запуска в указанном режиме. Вместо этого можно создать реализацию ILaunchConfigurationDelegate2, при этом будет возможно прервать выполнение, скомпоновать связанные проекты перед запуском. Также будет добавлена возможность управлять созданием исполняемого объекта.
Следует указать, какие режимы выполнения поддерживаются делегатом, и имя, которое будет соответствовать этому делегату в списке программ запуска этого вида.
Ниже приведен пример объявления конфигурации запуска Java, применяемой для работы с локальными программами Java:
<extension point = "org.eclipse.debug.core.launchConfigurationTypes"> <launchConfigurationType id="org.eclipse.jdt.launching.localJavaApplication" name="%localJavaApplication" delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate" modes= "run, debug" sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"> </launchConfigurationType> </extension>
Этим расширением определяется делегат конфигурации запуска. Его можно использовать для выполнения и отладки программ, конфигурация запуска которых является локальной.
Платформой определены следующие режимы запуска: выполнение, отладка и профилирование программы. Они заданы с помощью точки расширения org.eclipse.debug.core.launchModes. Эта точка расширения позволяет объявить режим запуска, указав имя режима и метку, описывающую режим. Ниже приведен пример, описывающий стандартные режимы запуска платформы:
<extension point="org.eclipse.debug.core.launchModes"> <launchMode label="%run" mode="run"> </launchMode> <launchMode label="%debug" mode="debug"> </launchMode> <launchMode label="%profile" mode="profile"> </launchMode> </extension>
Режим не ассоциируется ни с одним типом конфигурации запуска. Ранее было показано, что ассоциирование происходит в случае, когда для типа конфигурации указан делегат запуска.
Нельзя описать режим запуска, не указав тип конфигурации запуска, поэтому существует возможность того, что новые режимы не реализованы делегатом. В этом случае модулем может быть определен делегат запуска, реализующий некоторый режим для некоторой конфигурации запуска. Для этого применяется точка расширения org.eclipse.debug.core.launchDelegates. С ее помощью можно реализовать определенные режимы для конкретного типа конфигурации. Ниже приведен пример описания делегата для профилировки локального приложения Java:
<extension point="org.eclipse.debug.core.launchDelegates"> <launchDelegate id="com.example.MyJavaProfileDelegate" delegate="com.example.MyJavaProfileDelegate" type="org.eclipse.jdt.launching.localJavaApplication" modes="profile"> </launchDelegate> </extension>
Описание делегата похоже на описание типа конфигурации запуска, за исключением того, что наряду с типом конфигурации запуска указываются поддерживаемые режимы. Как было показано ранее, делегат должен реализовывать ILaunchConfigurationDelegate, и может реализовывать ILaunchConfigurationDelegate2, если требуются расширенные возможности управления запуском.
Среда запуска Eclipse. Приведен полный пример добавления типа запуска.