Bug 279818 - Add a CommandLauncherFactory for delegating process exec to contributed ICommandLauncher
Summary: Add a CommandLauncherFactory for delegating process exec to contributed IComm...
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-core (show other bugs)
Version: 6.0   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL: http://wiki.eclipse.org/CDT/cdt-core/...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-10 11:28 EDT by James Blackburn CLA
Modified: 2020-09-04 15:25 EDT (History)
0 users

See Also:


Attachments
CDT Core + Tests (73.11 KB, patch)
2009-06-23 16:27 EDT, James Blackburn CLA
no flags Details | Diff
UI Patch (46.71 KB, application/octet-stream)
2009-06-23 16:32 EDT, James Blackburn CLA
no flags Details
ManagedBuilder Patch (11.54 KB, application/octet-stream)
2009-06-23 16:33 EDT, James Blackburn CLA
no flags Details
Example UI (57.44 KB, image/png)
2009-06-23 16:34 EDT, James Blackburn CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description James Blackburn CLA 2009-06-10 11:28:15 EDT
Cdt-core already provides CommandLauncher and ICommandLauncher in CDT6.

I propose adding an extension point for allowing ISVs to contribute additional ICommandLaunchers, this will allow them to easily redirect/retarget running of external tools.

It will provide the following functionality:
  * The contributed ICommandLaunchers can specify a set of supported services they are applicable for:
    - All
    - LAUNCH_RUN, LAUNCH_DEBUG, LAUNCH_PROFILE
    - BUILD_STANDARD, BUILD_MANAGED
  * The CDT UI will provide a dialog for selecting which command launcher should be invoked for a particular job type (launch or build, for the moment).
  * The Default will be to use the existing built-in CommandLauncher maintaining existing behaviour, products can override with their own choice.
  * An additional WrappedCommandLauncher will be provided to allow customising / wrapping the default command.

Providing a mechanism for running tools that is orthogonal to the build / launch system seems to be highly desirable[1] and needn't require contributors define their own launches and builders.

This would require launch and build to delegate Process Creation to the core, CDI already uses the core's ProcessFactory for MIProcessAdapter based launches, and managed build already uses CommandLauncher.

Does this sound reasonable?

[1]http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg15594.html
Comment 1 James Blackburn CLA 2009-06-23 16:27:16 EDT
Created attachment 139911 [details]
CDT Core + Tests

Add CommandLauncher extension point.
Add CommandLauncherFactory for:
  - creating CommandLaunchers for a given ProcessType(launch, build).
  - Providing a Preference store for advanced preferences on the Command Launcher
Add tests to cdt.core for the contributed CommandLauncher functionality
Comment 2 James Blackburn CLA 2009-06-23 16:32:09 EDT
Created attachment 139913 [details]
UI Patch

Add UI for configuring "Advanced..." Command Launcher preferences. 
Add CommandLauncherDialog extension point for ISV command launchers to contribute custom preference dialogs
Comment 3 James Blackburn CLA 2009-06-23 16:33:19 EDT
Created attachment 139915 [details]
ManagedBuilder Patch

Patch for managedbuilder to delegate to the appropriate CommandLauncher as provided by cdt.core.
Comment 4 James Blackburn CLA 2009-06-23 16:34:19 EDT
Created attachment 139916 [details]
Example UI

PNG showing Example UI of built-in 'Wrapped' command launcher.