Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Eclipse Plug-in Developer Guide
Previous Page Home Next Page

Process factories

When a launch configuration launches its program, it is responsible for invoking the executable program in the requested mode. The implementation for a launch will depend on the specifics of each launch configuration, but most plug-ins will build a command line and call a runtime exec to start the program. The DebugPlugin class implements a convenience method for invoking a runtime exec and handling the possible exceptions. Clients can specify the command line and working directory for the exec.

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

Once the java.lang.Process for the executing program has been created, it needs to be managed by the debug plug-in. For starters, the process needs to be associated with the ILaunch that represents the launched program. The debug plug-in defines a wrapper for a system process, IProcess, that allows clients to access the associated ILaunch and assign their own named attributes to the process. In addition, IProcess, defines a label for the process and associates an IStreamsProxy with the process that gives clients access to the input, output, and error streams of the system process. This process wrapper can also be created using a utility method in DebugPlugin.

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

A map of named attributes can also be supplied.

Many plug-ins can simply rely on the utility methods in DebugPlugin for launching the system process and wrapping it in an IProcess. For those plug-ins that need more control in the creation of the wrapper, a process factory can be associated with a launch configuration. The process factory is used to create an IProcess that meets the special needs of the plug-in. The process factory is referenced by id, and should be stored in the DebugPlugin.ATTR_PROCESS_FACTORY_ID attribute of the launch configuration.

The association between the process factory id and the class that implements it is made using the org.eclipse.debug.core.processFactories extension point.

The following example shows how the Ant plug-in sets up a process factory for its launches:

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

It is the responsibility of the registering plug-in to store the process factory id in the proper launch configuration attribute.


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire