Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [dsdp-tm-dev] Correct way to implement multiple targets - multiplesubsystems for a host

Hello Tobias,
 
Sorry for taking so long to reply.
 
Yes, I think your new proposal is a good way to go (at least until
the RSE Framework natively supports a concept of "connection groups").
 
In Wind River Workbench, our commercial offering based on Eclipse,
we have actually implemented something very similar to your proposal.
We have a "WR Registry Subsystem" registered under the "Local"
connection, where the Registries's entries are actually connections.
 
We have a "Registry Synchronizer" which programmatically creates
new connections as they appear in the Registry, or removes them
when they disappear in the Registry.
 
Here is an additional trick that might help your user experience --
we haven't actually tried this out, but it should work:
  • Your "Target1 - Connection" connection is of some type (IRSEystemType).
    I assume that you always want to create these programmatically only, and
    not want to see this connection type in a new connection wizard, right?
    If this is true, then you can register a dynamic systemTypeProvider, which
    creates those systemTypes always as "disabled".
    RSE will never show them in a wizard, and also not as root nodes in the systemView.
  • For your Connection / Subsystem / Target1 node, you have some ISystemViewElementAdapter.
    You can now simply override its getChildren() method to also return the IHost object that
    corresponds to the Target1 - Connection connection.
And, voila, you should be able to see your target1 - connection contents under the
connection / subsystem / Target1 hierarchy, rather than at the root of the RSE tree...
 
This provides the user experience that you originally wanted; but, other than your
original proposal it uses a correct model supported by RSE, and only the visual
display (view layer) is tweaked.
 
Cheers,
--
Martin Oberhuber, Senior Member of Technical Staff, Wind River
Target Management Project Lead, DSDP PMC Member
http://www.eclipse.org/dsdp/tm
 
 


From: dsdp-tm-dev-bounces@xxxxxxxxxxx [mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of Tobias Södergren XT
Sent: Friday, October 03, 2008 12:52 PM
To: Target Management developer discussions
Subject: [dsdp-tm-dev] Correct way to implement multiple targets - multiplesubsystems for a host

Hello TM list,
 
This is a question regarding how to make use of the RSE tree in a good way, thus this is not a TM framework dev question. If I am mailing the wrong list, please feel free to rebuke and steer me to the correct list. Here goes:
 
I have the following scenario which I would like to model in the RSE tree:
 
o A host to which multiple targets can be connected.
o A target with multiple services, such as file system, process explorer, access to log data etc.
 
Initially I had implemented a subsystem which connects to the host and lists the targets.
Under the target, the hacking begun where I instantiated a new remote file subsystem using my file service and tried to fit this solution the RSE framework:
 
RSE Tree
=======
Connection
  + Subsystem
    + Target1
      + file system root   <--using remote file subsystem, my file service
        + [dir]            <--using remote file subsystem, my file service
        + file.txt         <--using remote file subsystem, my file service
    + Target2
 
This works for a bit, but e.g. drag&drop fails because the subsystem is not registered in the registry, hence it cannot be found for the drop target.
 
My next attempt would be to have it like:
 
RSE Tree
=======
Connection
  + Subsystem
    + Target1  <-- "Connect action[1]"
    + Target2
Target1 - Connection[2]
  + file system root  <-- remote file subsystem, my file service
    + [dir]           <-- remote file subsystem, my file service
  + Processes         <-- Process subsystem
 
[1] The Connect action would programmatically create a new target connection instance[2] using a TargetSubSystemConfiguration.
On this connection, all the desired target subsystems should be activated.
Since targets can come and go, the target connection should be automatically closed and removed if a target dissappear.
 
Is this a better solution, can it be done using the RSE framework or are there better alternatives?
Hoping for some enlightenment on this subject.
 
Best regards,
Tobias Sodergren

Back to the top