Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-debug-dev] Launch Configuration API Feedback


I have been working on a CDS(OSGi client) Launcher using the new launch configurations and I have some feedback.  I know that some of these problems are with the java debug code but I am not a member of the java-debug newsgroup and I figured they would get read here also.  I understand that some of these concerns have been mentioned before but I wanted you to know that they are desired by more than one person.  I have avoid writing bug reports for these things since some should be discussed first and some are duplicates.

General Problems
1.  Changes on one page do not get reflected onto another page.  For example, if I attach the JavaArgumentsTab and a different tab that analyzes the arguements to display some things to the user then if the user makes a change in the Arguements tab, my custom tab does not get notifed.  I personally think that this is a pretty simple problem to solve since they concept of a workingcopy already exists.  Right now the page is intialized from the LaunchConfiguration one time and the changes in the page are only applyed at the very end.  If the initializeFrom method was changed to use a ILaunchConfigurationWorkingCopy instead of  a ILaunchConfiguration, and the method was called each time the tab was shown then one page could effect other pages.  Another change that would have to be made would be to call performApply when each tab is switched away from.  A properly written tab should handle this already. &! nbsp;I think that these changes would be very minor since the ILaunchConfigurationWorkingCopy is actually a sub interface of ILaunchConfiguration.  The methods on ILanchConfiguationTab would be more consistant since each method would have the same paramater.

2.  There is no general way to initialize the values of a page to what you want them to be.  For instance, the java pages all populate there settings based on the currently selected project, but if I want to override the settings I have to subclass the tab and override the setDefaults method.  Some initializer class could be made seperate and the setDefaults method could be removed.  That would also mean a headless launch configuration could set its defaults without loading a UI component.

Java Problems
1.  The java launch config delegate is not public.  
2.  The java launch config delegate generally loads all of its paramters from the launch configuration passed to it.  The only exception to this is the source locator.  If the source locator is not specified in the launch config it is created by the project.  This is the only option that this is done for an is very inconsistant.  I would suggest that the Project attribute be removed compeltly and all needed options should be made part of the launch configuration.
3.  The java tabs are not API and cannot be reused
4.  If the java tabs where API the widgets are marked as private so the subclasses could not programaticly disable certian options.



Back to the top