Bug 263178 - [api][remotecdt] extract API from remotecdt plugin
Summary: [api][remotecdt] extract API from remotecdt plugin
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-debug (show other bugs)
Version: 6.0   Edit
Hardware: PC Linux
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: cdt-debug-inbox@eclipse.org CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 317536 267065
  Show dependency tree
 
Reported: 2009-02-01 16:13 EST by Anna Dushistova CLA
Modified: 2020-09-04 15:20 EDT (History)
4 users (show)

See Also:


Attachments
Very first draft (13.00 KB, patch)
2009-03-23 01:28 EDT, Anna Dushistova CLA
no flags Details | Diff
proposed refactoring (174.65 KB, patch)
2010-07-12 11:15 EDT, Anna Dushistova CLA
marc.khouzam: iplog+
marc.khouzam: review+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Anna Dushistova CLA 2009-02-01 16:13:53 EST
We need to make public API common components that can be used to create custom remote launchers.
Comment 1 Anna Dushistova CLA 2009-03-11 09:47:41 EDT
While working on that I found out some issues I'd like to bring up.
Right now RemoteCMainTab and RemoteRunLaunchDelegate classes extend corresponding classes from CDT (CMainTab and AbstractCLaunchDelegate). After we extract RSE related abstract classes from them, RemoteCMainTab and RemoteRunLaunchDelegate will be extenders of these new classes and thus will have to duplicate the code from CMainTab and AbstractCLaunchDelegate, which is not very nice since it's much more code than we have for RSE-related functionality.

So does it make any sense to rework RemoteCMainTab and RemoteRunLaunchDelegate the way described above?
Comment 2 Martin Oberhuber CLA 2009-03-18 08:24:28 EDT
Anna, if you extract common API for Launchers, then RemoteCMainTab and RemoteRunLaunchDelegate certainly should not extend thos new API classes, but rather use it, e.g.
   new RSEDownloadHelper().download()
etc

It's too late now for M6 which is our official API freeze. We'll need to be *very* careful with any new API introduced from now on, and we need to have a first API proposal ASAP.
Comment 3 Anna Dushistova CLA 2009-03-23 01:28:45 EDT
Created attachment 129558 [details]
Very first draft

Here is something to start with. RSEHelper is in the same plugin, cause I'm not sure what the correct place for it should be.
Comment 4 Anna Dushistova CLA 2009-04-23 11:26:55 EDT
Martin, current version of RSEHelper which has more methods live in org.eclipse.cdt.launch.remote now. Actually, I'm in favor of leaving it there, i.e. not extracting any API at the moment. What do you think?  
Comment 5 Martin Oberhuber CLA 2009-04-30 11:50:58 EDT
Moving into CDT as per bug 267065.
Comment 6 Anna Dushistova CLA 2010-07-11 13:53:20 EDT
I would like to refactor existing code a little. After adding DSF-GDB support we have quite a lot of classes in just one package. While it might not make sense to split it into core/ui plugins (just a couple of classes will be in core then), it certainly makes sense for me to place tabs in one package(say, org.eclipse.cdt.launch.remote.tabs) and delegates into another one(org.eclipse.cdt.launch.remote.launching). RSEHelper should probably go into org.eclipse.cdt.launch.remote.utils package. 

What do you think? I'll be happy to provide a patch.
Comment 7 Marc Khouzam CLA 2010-07-11 21:02:36 EDT
(In reply to comment #6)
> I would like to refactor existing code a little. After adding DSF-GDB support
> we have quite a lot of classes in just one package. While it might not make
> sense to split it into core/ui plugins (just a couple of classes will be in
> core then), it certainly makes sense for me to place tabs in one package(say,
> org.eclipse.cdt.launch.remote.tabs) and delegates into another
> one(org.eclipse.cdt.launch.remote.launching). RSEHelper should probably go into
> org.eclipse.cdt.launch.remote.utils package. 
> What do you think? I'll be happy to provide a patch.

I'm not sure if you are asking Martin, or any CDT committer.
As for me, I think it is a good idea.
Comment 8 Anna Dushistova CLA 2010-07-12 09:13:18 EDT
(In reply to comment #7)
> I'm not sure if you are asking Martin, or any CDT committer.

Any CDT committer since this feature is maintained in CDT, not TM. ;) 

> As for me, I think it is a good idea.

I'll get back to you with a patch.
Comment 9 Anna Dushistova CLA 2010-07-12 11:15:57 EDT
Created attachment 174043 [details]
proposed refactoring
Comment 10 Marc Khouzam CLA 2010-07-13 15:54:31 EDT
(In reply to comment #9)
> Created an attachment (id=174043)
> proposed refactoring

I have committed this patch to HEAD.
Although the patch was large, it was just moving files, so the actual new code was minimal.

Thanks Anna.
Comment 11 CDT Genie CLA 2010-07-13 16:23:06 EDT
*** cdt cvs genie on behalf of mkhouzam ***
Bug 263178: Create packages for remote launch plugin

[*] plugin.xml 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/plugin.xml?root=Tools_Project&r1=1.2&r2=1.3

[*] RSEHelper.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RSEHelper.java?root=Tools_Project&r1=1.3&r2=1.4
[-] RemoteGdbLaunchDelegate.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteGdbLaunchDelegate.java?root=Tools_Project&view=markup
[-] RemoteCDSFMainTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteCDSFMainTab.java?root=Tools_Project&view=markup
[-] RemoteDSFGDBDebuggerPage.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteDSFGDBDebuggerPage.java?root=Tools_Project&view=markup
[-] RemoteGDBDebuggerPage.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteGDBDebuggerPage.java?root=Tools_Project&view=markup
[-] RemoteCDebuggerTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteCDebuggerTab.java?root=Tools_Project&view=markup
[-] RemoteLaunchConfigurationTabGroup.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteLaunchConfigurationTabGroup.java?root=Tools_Project&view=markup
[-] RemoteCMainTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteCMainTab.java?root=Tools_Project&view=markup
[-] RemoteCDSFDebuggerTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteCDSFDebuggerTab.java?root=Tools_Project&view=markup
[-] RemoteRunLaunchDelegate.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteRunLaunchDelegate.java?root=Tools_Project&view=markup

[+] RemoteGdbLaunchDelegate.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java?root=Tools_Project&revision=1.1&view=markup
[+] RemoteRunLaunchDelegate.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteRunLaunchDelegate.java?root=Tools_Project&revision=1.1&view=markup

[+] RemoteCDSFMainTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDSFMainTab.java?root=Tools_Project&revision=1.1&view=markup
[+] RemoteDSFGDBDebuggerPage.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteDSFGDBDebuggerPage.java?root=Tools_Project&revision=1.1&view=markup
[+] RemoteGDBDebuggerPage.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteGDBDebuggerPage.java?root=Tools_Project&revision=1.1&view=markup
[+] RemoteCDebuggerTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDebuggerTab.java?root=Tools_Project&revision=1.1&view=markup
[+] RemoteLaunchConfigurationTabGroup.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteLaunchConfigurationTabGroup.java?root=Tools_Project&revision=1.1&view=markup
[+] RemoteCMainTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCMainTab.java?root=Tools_Project&revision=1.1&view=markup
[+] RemoteCDSFDebuggerTab.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDSFDebuggerTab.java?root=Tools_Project&revision=1.1&view=markup

[*] MANIFEST.MF 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/cross/org.eclipse.cdt.launch.remote/META-INF/MANIFEST.MF?root=Tools_Project&r1=1.3&r2=1.4