Processar fornecedores

Quando uma configuração de lançamento lança o seu próprio programa, é responsável por invocar o programa executável no modo solicitado. A implementação de um lançamento irá depender da especificidade de cada configuração de lançamento, mas a maioria dos plug-ins constrói uma linha de comandos e chama um executável de tempo de execução para iniciar o programa. A classe DebugPlugin implementa um método conveniente para invocar um executável de tempo de execução e tratar das possíveis excepções. Os clientes podem especificar a linha de comandos e o directório de trabalho do executável.

Process p = DebugPlugin.exec(linhaComandos, directórioTrabalho);

Uma vez criado o java.lang.Process para o programa de execução, este necessita de ser gerido pelo plug-in de depuração. Para começar, o processo tem de ser associado ao ILaunch que representa o programa lançado. O plug-in de depuração define um wrapper para um processo de sistema, IProcess, o qual permite aos clientes acederem ao ILaunch associado e atribuírem os seus próprios atributos denominados ao processo. Além disso, IProcess, define uma etiqueta para o processo e associa um IStreamsProxy ao processo que dá aos clientes acesso às sequências de entrada de dados, saída de dados e erros do processo de sistema. Este wrapper de processos também pode ser criado através do método utilitário em DebugPlugin.

IProcess process= DebugPlugin.newProcess(launch, p, "O Meu  Processo);

Também pode ser facultado um mapa dos atributos denominados.

Muitos plug-ins podem simplesmente confiar nos métodos utilitários em DebugPlugin para lançar o processo de sistema e juntá-lo com wrapper a um IProcess. Para os plug-ins que precisem de mais controlo na criação do wrapper, pode ser associada uma Processar fornecedores a uma configuração de lançamento. O processo de fornecedores é utilizado para criar um IProcess que satisfaça as necessidades especiais do plug-in. O processo de fornecedores é referenciado por ID, e deve estar armazenada no atributo DebugPlugin.ATTR_PROCESS_FACTORY_ID da configuração de lançamento.

A associação entre o ID do processo de fornecedores e a classe que a implementa realiza-se através do ponto de extensão org.eclipse.debug.core.processFactories.

O exemplo seguinte mostra como o plug-in Ant configura uma fábrica de processos para os seus lançamentos:

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

É da responsabilidade do plug-in que efectua o registo armazenar o ID do processo de fornecedores no atributo da configuração de lançamento devido.