Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dsdp-tm-dev] RE: Advanced Remote Launching (was: Is TM/RSE right for us?)

PS:

What if the ILaunchActionType were responsible for
deserializing ILaunchActions? - It could act like
a factory for ILaunchActions... this would be in
line with a concept used elsewhere at Eclipse...

Cheers,
--
Martin Oberhuber
Wind River Systems, Inc.
Target Management Project Lead, DSDP PMC Member
http://www.eclipse.org/dsdp/tm 

> -----Original Message-----
> From: Oberhuber, Martin 
> Sent: Wednesday, January 17, 2007 9:26 PM
> To: 'Robert Norton'
> Cc: dsdp-tm-dev@xxxxxxxxxxx
> Subject: RE: Advanced Remote Launching (was: Is TM/RSE right for us?)
> 
> Hi Robert,
> 
> this looks awsome and is pretty much in line with what
> I had in mind. Few comments only:
> 
> * with respect to serializing / deserializing itself, 
>   I thought I'd not tie this to the ILaunchConfiguration
>   but allow the ILaunchActions to read from / write to
>   a plain String. Actions are free to use XML or whatever
>   in the String.
>   Using plain strings will allow us to nest ILaunchActions
>   in control structures etc. if we need to. and/or use
>   them independent of LaunchConfigurations (e.g. context
>   menu actions etc).
>   Also, the ID of the ILaunchActionType seems to be 
>   synonymous to the prefix you propose so I'd consider
>   the prefix obsolete.
> 
> * [advanced, probably future] 
>   Another idea for serializing / deserializing I had, 
>   was to allow ILaunchActions to be configurable not only
>   through a UI but also as text similar to a shellscript,
>   e.g.
>      download -local /my/file -remote /target
>   Wondering if it were possible to leverage the framework
>   of some script interpreter like Jython or Jtcl -- need
>   to check the Dash / EclipseMonkey project for that
> 
> * ILaunchActionContext is a great idea. I guess that the
>   context will have more information, e.g. the current 
>   connection to work on or even a current diretory for 
>   commands.
>   Other items of the context could be similar to String
>   "variables" which can be expanded in other actions.
>   This would allow an action A to get some information on
>   the target, store it into a "variable" and have an action
>   B to act dependent on the result of that variable.
> 
> * ILaunchAction.perform() should have some way of returning
>   a status (success / error). This could be a return value,
>   or could be done by modifying the context it gets.
>   The sequencer shall be able to decide whether remaining 
>   actions are executed or not in case of an error.
> 
> Looks like the trick of the next step will be to come 
> up with a simple first version that's not too ambitious
> but extensible enough for future enhancements ;-)
> 
> Cheers,
> --
> Martin Oberhuber
> Wind River Systems, Inc.
> Target Management Project Lead, DSDP PMC Member
> http://www.eclipse.org/dsdp/tm 
> 
> > -----Original Message-----
> > From: Robert Norton [mailto:rnorton@xxxxxxxxxxxx] 
> > Sent: Wednesday, January 17, 2007 12:57 PM
> > To: Oberhuber, Martin
> > Cc: dsdp-tm-dev@xxxxxxxxxxx
> > Subject: RE: Advanced Remote Launching (was: Is TM/RSE 
> right for us?)
> > 
> > Hi Martin,
> > 
> > Thanks for your response.
> > 
> > > If you like this idea, 
> > > please get in touch with us on the dsdp-tm-dev@xxxxxxxxxxx 
> > > mailing list for further exchange of concrete design ideas.
> > 
> > I do like the idea! Based on your description for a generic launch
> > action framework I put together some class diagrams which I 
> > have posted
> > on the wiki (they are linked at the bottom of this page:
> > http://wiki.eclipse.org/index.php/DSDP/TM/Launching). Does this
> > correspond roughly with what you had in mind? 
> > 
> > The most interesting bit is probably the method used to 
> > persist the tree
> > of actions into the ILaunchConfiguration. I decided that each
> > ILaunchAction implementation should know how to load / save 
> > itself using
> > a given prefix before its configuration keys. This way it 
> ought to be
> > possible to flatten an arbitrary tree of ILaunchActions without any
> > naming collisions.
> > 
> > ILaunchActionTypes are contributed via an extension point 
> and contain
> > all the information necessary to instantiate the corresponding
> > ILaunchAction using the GUI, including an
> > ILaunchActionConfigurationPanel (second diagram).
> > 
> > There is no RSE dependency except that certain 
> ILaunchActions might be
> > implemented using RSE functionality (e.g. a remote shell command
> > action).
> > 
> > Any thoughts and suggestions much appreciated.
> > 
> > Robert
> > 
> > > -----Original Message-----
> > > From: Martin Oberhuber [mailto:martin.oberhuber@xxxxxxxxxxxxx] 
> > > Sent: 15 January 2007 16:21
> > > To: Robert Norton; dsdp-tm-dev@xxxxxxxxxxx
> > > Subject: Advanced Remote Launching (was: Is TM/RSE right for us?)
> > > 
> > > Hi Robert,
> > > 
> > > it's great to hear that you want to extend the TM / RSE 
> > > Launching mechanism, and also think about contributing back 
> > > your enhancements.
> > > 
> > > As Torkild has already pointed out, adding Shell Operations 
> > > to a Launch by adding them to the LaunchDelegate "hardcoded" 
> > > should be fairly easy. 
> > > If you want to have your shell commands independent of the 
> > > protocol (ssh, telnet, dstore, or whatever contributed), you 
> > > might want to consider extending 
> > > 
> org.eclipse.rse.subsystems.shell.core.model.SimpleCommandOperation .
> > > 
> > > For some sample code that deals with running commands on the 
> > > remote side, see org.eclipse.rse.examples.tutorial/ShowJarContents
> > > as well as the MontaVista ssh processes contribution, which 
> > > is currently available from Bugzilla at
> > > https://bugs.eclipse.org/bugs/show_bug.cgi?id=159522
> > > 
> > > With respect to making such shell (or download) actions as 
> > > part of a Launch generic, we already have a concept for this. 
> > > The idea is to have an additional tab in the Launch, where 
> > > you see a list of entries. Each entry is of type 
> > > ILaunchAction, where implementations of ILaunchAction can be 
> > > contributed through plugin.xml. Each ILaunchAction brings an 
> > > associated UI for configuring it.
> > > Examples of ILaunchAction could be a 
> > > RunShellCommandLaunchAction, or a DownloadFileLaunchAction, 
> > > each of which could use RSE services in turn. 
> > > The LaunchActionSequencer, which runs one action after the 
> > > other can even be generic (independent of RSE), just like the 
> > > LaunchActionManager which would be responsible for persisting 
> > > the ILaunchAction data into ILaunchConfiguration instances.
> > > 
> > > Unfortunately, this excellent idea isn't currently being 
> > > implemented due to lack of resources. If you like this idea, 
> > > please get in touch with us on the dsdp-tm-dev@xxxxxxxxxxx 
> > > mailing list for further exchange of concrete design ideas. 
> > > It would be great if you could work in this direction and 
> > > contribute some code. The online place for more details is at 
> > > http://wiki.eclipse.org/index.php/DSDP/TM/Launching
> > > 
> > > 
> > > Thanks,
> > > --
> > > Martin Oberhuber
> > > Target Management Project Lead, DSDP PMC Member 
> > > http://www.eclipse.org/dsdp/tm
> > > 
> > > 
> > > Robert Norton wrote:
> > > > Greetings All!
> > > > 
> > > > I've been given the task of adapting Eclipse to the 
> needs of our 
> > > > developers and have identified that one of our 
> requirements is to 
> > > > simplify the process of configuring and launching a debug 
> > > session on 
> > > > an embedded target (or simulator). Since this is exactly 
> > > the sort of 
> > > > thing that TM/RSE is supposed to handle I thought I would 
> > > give a shout 
> > > > on this mailing list to see if anyone can offer any suggestions.
> > > > 
> > > > The basic problem is that setting up a debugging 
> > > environment for us is 
> > > > much more complicated than the default CDT (+ Zylin 
> > patches) launch 
> > > > configuration allows. In particular it might involve 
> > > starting several 
> > > > different processes (each with specific options, sometimes 
> > > on a remote
> > > > target) in the correct order and finally connecting a 
> gdb process.
> > > > 
> > > >  From scanning the available documentation I get the 
> > > impression that 
> > > > TM and RSE provide a basic framework which could be used to 
> > > automate 
> > > > much of this, but I'm still unclear on exactly how it could be 
> > > > achieved. For example might it be possible to create a 
> new debug 
> > > > configuration type tailored to each of our debugging 
> > scenarios and 
> > > > leveraging the RSE functionality? I'm keen to create as 
> general a 
> > > > framework as possible for starting auxiliary process and 
> > > would love to 
> > > > contribute back any code I produce (subject to the 
> > > agreement of management / legal bods.).
> > > > 
> > > > Does anyone have the slightest idea what I am talking 
> > about? If so, 
> > > > can you offer any comments or suggestions?
> > > > 
> > > > Cheers,
> > > > 
> > > > Robert Norton
> > > > DSL Unit, Broadcom UK
> > > 
> > > 
> > 
> > 


Back to the top