Фабрики процессов

Перевод выполняемой программы в требуемый режим осуществляется конфигурацией запуска, с использованием которой запускается программа. Осуществление запуска зависит от конфигурации; большая часть модулей формирует командную строку и запускает программу. Классом DebugPlugin реализован удобный метод вызова исполняемого файла и обработки возможных исключений. Клиенты могут указывать командную строку и рабочий каталог программы.

Process p = DebugPlugin.exec(cmdLine, workingDirectory);

java.lang.Process выполняемой программы управляется модулем отладки. Процесс инициатора должен быть ассоциирован с ILaunch (представляет запущенную программу). Модулем отладки определена оболочка системного процесса, IProcess, предоставляющая клиентам доступ к связанному ILaunch и присваивающая процессу заданные атрибуты. IProcess определяет метку процесса и связывает IStreamsProxy с процессом, предоставляющим клиентам доступ к потокам ввода, вывода и ошибок системного процесса. Оболочку также можно создать с помощью метода DebugPlugin.

IProcess process= DebugPlugin.newProcess(launch, p, "My Process);

Возможно получить также карту связей именованных атрибутов.

Запуск системного процесса и создание оболочки IProcess многими модулями осуществляется с помощью методов DebugPlugin. Если модулю необходимо управлять созданием оболочки, с конфигурацией запуска ассоциируется фабрика процессов. С помощью фабрики процессов можно создать IProcess, на который модулем накладываются дополнительные требования. Каждой фабрике процессов ставится в соответствие идентификатор, которому должно соответствовать значение атрибута DebugPlugin.ATTR_PROCESS_FACTORY_ID конфигурации запуска.

Фабрика процессов ассоциируется с реализующим ее классом с помощью точки расширения org.eclipse.debug.core.processFactories.

В приведенном ниже примере модулем Ant устанавливается фабрика процессов:

<extension point="org.eclipse.debug.core.processFactories">
	<processFactory
		class="org.eclipse.ant.internal.ui.launchConfigurations.RemoteAntProcessFactory"
		id="org.eclipse.ant.ui.remoteAntProcessFactory">
	</processFactory>
</extension>

Идентификатор фабрики процессов должен быть сохранен в соответствующем атрибуте конфигурации запуска регистрирующим модулем.