Bug 492789 - Proposal: Launch Configuration Generator
Summary: Proposal: Launch Configuration Generator
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 4.6   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Platform-Debug-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-02 02:47 EDT by Markus Duft CLA
Modified: 2016-05-09 02:50 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Duft CLA 2016-05-02 02:47:01 EDT
This is originally an Eclipse Project proposal, but initial discussion showed that it might be a good fit to integrate directly into Debug... :)

We have (at SSI Schaefer) some IDE extensions that we want to open to the public, and one of them is something called (currently) Launch Configuration Generator.

The whole idea was born out of some problems:
1) Eclipse launch configurations are somewhat unstable matter. They change a lot even though you don't touch them. Sometimes looking at a configuration in the launch dialog will change it and cause fluctuation in the repositories (dislike ;)).
2) Plug-In based launch configurations are quite hard to maintain. We have a huge workspace with hundreds of bundles, and some launches only need a few of them. Thus all our configurations are Plug-In selection based. Additionally, as we have a lot of configurations, updating those configurations when something low level changes (a new plug-in that is required by all configurations for example) is hell - you need to touch all of them and press "Add required".

We came up with a "simple" solution. We have a very straight forward view (see [1]) that allows to generate launch configurations. We define launch configurations and all the required attributes of them in a simple java properties like file (.ini extension). This whole file format is subject for discussion, as we'd like to switch to an Xtext based DSL to define that. The view allows to generate "normal" eclipse launch configurations that are then launched using the usual infrastructure. There are some shortcuts from the view to directly launch/debug from there right after generation.

Please provide some feedback whether you'd see fit for something like this (or maybe a different route, like replacing the current launch configuration format?) in debug. If not, we'd of course still love to contribute, and would keep up the project proposal (maybe with debug as parent project...?)

[1] https://drive.google.com/open?id=0B05h8C3gLt38ZjFnd3plYmdSbkE
Comment 1 Dani Megert CLA 2016-05-05 05:15:42 EDT
I also have hundreds of plug-ins in my workspace, but don't see my launch configurations to change often or be hard to maintain. I mainly use 'Eclipse Application' and 'JUnit Plug-in Test' configurations.

There is already some sort of "generator": when one uses Run/Debug As > ... a new launch configuration is created and launched.

We need more details about your concrete pain points to judge whether this makes sense in Platform Debug.


> we'd like to switch to an Xtext based DSL to define that

That would be a no go since the Platform won't add a dependency to Xtext.
Comment 2 Markus Duft CLA 2016-05-09 02:50:33 EDT
(In reply to Dani Megert from comment #1)
> I also have hundreds of plug-ins in my workspace, but don't see my launch
> configurations to change often or be hard to maintain. I mainly use 'Eclipse
> Application' and 'JUnit Plug-in Test' configurations.

We too (although we have our own "unit test" launch type to mix in some extra stuff ;)). The problem we had is that we really frequently add/remove plugins, and all our configurations are "Only selected Plug-Ins", so new Plug-ins/dependencies are not updated automatically. Also, the often changing launch configurations when just having a look at them in the editor was a problem as it causes changes in SCM if you're not careful (our devs are NOT careful).

> 
> There is already some sort of "generator": when one uses Run/Debug As > ...
> a new launch configuration is created and launched.

In our setup we're trying to take away the burden of knowing each feature, product and thing in our software from our developers. We need this to be able to efficiently do project development off our product base. Thus for us it is not really an option to have devs know each location where the launch/debug button could be found for each product. Altough I do agree that this is some sort of generator :)

Our generator also supports plain java applications (yes, yes, right click > run as > java application - the same generator again ;) - but this does not allow to hardcode command line parameters, etc) and RAP web applications (through Eclipse Libra)

> 
> We need more details about your concrete pain points to judge whether this
> makes sense in Platform Debug.
> 

See above. Not saying that we're using the one and only way to develop xD We just came up with something that helped us a lot - maybe it helps others too.

> 
> > we'd like to switch to an Xtext based DSL to define that
> 
> That would be a no go since the Platform won't add a dependency to Xtext.

I already thought so. Still EMO wanted me to propose, and so I did. While writing this reply, Eclipse Libra also looked like a little too heavy of a dependency... right?