[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
RE: [dsdp-tm-dev] RSE Extension Help
 | 
Hi Tom,
Thanks for mentioning the SubSystem.setDirty()
problem.  That turns out to be a bug responsible for some other problems
too.   It's fixed now (in CVS) and I'm hoping that should fix the
problem you hit too.
____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________
"Hochstein Tom-R60874"
<Tom.Hochstein@xxxxxxxxxxxxx> 
 Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx
09/06/2006 06:25 PM
 
| 
 Please respond to 
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>  |   
 
 | 
| 
 To 
 | "Target Management developer discussions"
<dsdp-tm-dev@xxxxxxxxxxx>
 |  
| 
 cc 
 | 
 |  
| 
 Subject 
 | RE: [dsdp-tm-dev] RSE Extension Help |   
 
  | 
Hi Dave,
 
Thanks for the tip.
 
I'm using your suggestion, but
I'm having troubles persisting my ISubSystem data.  From applyValues(),
I'm calling SubSystem.setDirty(true) and then SubSystem.commit(), which
in turn calls RSEPersistenceManager.commit(ISubSystem).  This last
call looks to see if the ISubSystem is dirty, but then it requests a commit
of ISystemProfileManager with no more mention of the ISubSystem.
 
I checked and I see that the Windows
Shells Subsystem seems to behave similarly.  E.g. if I disable 'Alert
me when connecting using SSL' in Server Connection Security and save it,
it is enabled again after I shutdown and restart Eclipse.  Perhaps
this is a known issue?
 
Another anomaly that I thought
I'd mention is that SubSystem.setDirty(boolean f) ignores the boolean input
and always sets the _isDirty flag to false.
 
BTW, I figured out my earlier
problem with the multiple calls.  It was a debugger quirk where a
breakpoint set on an instruction like this:
 
    return
new TapSubsystem(host, getConnectorService(host),
        createTapService(host));
 
will break twice for each single
invocation.
 
Tom
From: dsdp-tm-dev-bounces@xxxxxxxxxxx
[mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of David McKnight
Sent: Monday, June 05, 2006 4:16 PM
To: Target Management developer discussions
Cc: Target Management developer discussions; dsdp-tm-dev-bounces@xxxxxxxxxxx
Subject: RE: [dsdp-tm-dev] RSE Extension Help
I think it depends on how you're persisting your data.  If you use
RSE property sets to store data associated with a model node (like subsystem)
then the RSE persistence manager will be able to take care of saving and
loading the properties.  In that case, I'd suggest making use of properties
outside of createSubSystemInternal() along these lines:
- Make your wizard page implement the
following.ISubSystemPropertiesWizardPage.
 You would implement the method applyValues(ISubSystem
ss) which will get called in SubSystemConfiguration.intializeSubSystem().
 - In your applyValues method use property
sets to store your data associated with your subsystem
 
If you do this, then the property setting will only happen when the subsystem
is created via the wizard.  After that (on restart), RSE should take
care of loading those properties associated with your subsystem.
____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________
"Hochstein Tom-R60874"
<Tom.Hochstein@xxxxxxxxxxxxx>  
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx 
05/06/2006 04:57 PM
 
 
| 
 Please respond to 
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>  |   
  | 
 
| 
 To 
 | "Target Management developer
discussions" <dsdp-tm-dev@xxxxxxxxxxx> 
 |  
| 
 cc 
 | 
 |  
| 
 Subject 
 | RE: [dsdp-tm-dev] RSE Extension Help |   
 
 
  | 
Sheesh, I guess it was hard to pin down because the problem wasn't even
occurring any more.  I'm guessing now that the troubles I was having
were from not cleaning out my profile between runs.
  
So, I guess I still have the other question about the createSubSystemInternal()
being called from two contexts, one when the new connection is first created
and two each time thereafter that the profile is reloaded.  Does it
make sense to distinguish these two cases by checking whether or not the
IHost already has my data? 
  
Tom 
From: Hochstein Tom-R60874 
Sent: Monday, June 05, 2006 3:44 PM
To: 'Target Management developer discussions'
Subject: RE: [dsdp-tm-dev] RSE Extension Help
Windows XP, Eclipse 3.2 RC3 
From: dsdp-tm-dev-bounces@xxxxxxxxxxx
[mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of David McKnight
Sent: Monday, June 05, 2006 3:12 PM
To: Target Management developer discussions
Cc: Target Management developer discussions; dsdp-tm-dev-bounces@xxxxxxxxxxx
Subject: RE: [dsdp-tm-dev] RSE Extension Help
Hi Tom, 
What platform are you doing this on? 
Thanks,
____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________
"Hochstein Tom-R60874"
<Tom.Hochstein@xxxxxxxxxxxxx>  
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx 
05/06/2006 03:25 PM
 
 
| 
 Please respond to 
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>  |   
 
 | 
 
| 
 To 
 | "Target Management developer
discussions" <dsdp-tm-dev@xxxxxxxxxxx> 
 |  
| 
 cc 
 | 
 |  
| 
 Subject 
 | RE: [dsdp-tm-dev] RSE Extension Help |   
  
 
  | 
Hi Dave, 
 
The stacks are identical.  I see now that the two createSubSystem()
calls have a root higher in the call stack than I thought;  I've attached
a full call stack below.  It seems that finishPressed() is getting
called twice.  I'm having a hard time pinning it down further than
that, but I think for now I've got something I can run with (unless of
course you just happen to know what is going wrong :-)
 
Thanks for your help. 
 
Tom 
 
----- 
 
Thread [main] (Suspended (breakpoint at line 325 in SystemNewConnectionWizard))
SystemNewConnectionWizard.performFinish() line: 325 
SystemWizardDialog(WizardDialog).finishPressed() line: 680 
SystemWizardDialog(WizardDialog).buttonPressed(int) line: 355 
Dialog$3.widgetSelected(SelectionEvent) line: 660 
TypedListener.handleEvent(Event) line: 90 
EventTable.sendEvent(Event) line: 66 
Button(Widget).sendEvent(Event) line: 928 
Display.runDeferredEvents() line: 3348 
Display.readAndDispatch() line: 2968 
SystemWizardDialog(Window).runEventLoop(Shell) line: 820 
SystemWizardDialog(Window).open() line: 796 
SystemNewConnectionAction(SystemBaseDialogAction).run() line: 301 
SystemNewConnectionAction(Action).runWithEvent(Event) line: 499 
ActionContributionItem.handleWidgetSelection(Event, boolean) line: 539
ActionContributionItem.access$2(ActionContributionItem, Event, boolean)
line: 488 
ActionContributionItem$6.handleEvent(Event) line: 441 
EventTable.sendEvent(Event) line: 66 
ToolItem(Widget).sendEvent(Event) line: 928 
Display.runDeferredEvents() line: 3348 
Display.readAndDispatch() line: 2968 
Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 1914 
Workbench.runUI() line: 1878 
Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 419 
PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 143 
IDEApplication.run(Object) line: 95 
PlatformActivator$1.run(Object) line: 78 
EclipseAppLauncher.runApplication(Object) line: 92 
EclipseAppLauncher.start(Object) line: 68 
EclipseStarter.run(Object) line: 400 
EclipseStarter.run(String[], Runnable) line: 177 
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available
[native method] 
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
Method.invoke(Object, Object[]) line: 324 
Main.invokeFramework(String[], URL[]) line: 336 
Main.basicRun(String[]) line: 280 
Main.run(String[]) line: 977 
Main.main(String[]) line: 952 
From: dsdp-tm-dev-bounces@xxxxxxxxxxx
[mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of David McKnight
Sent: Monday, June 05, 2006 11:56 AM
To: Target Management developer discussions
Cc: Target Management developer discussions; dsdp-tm-dev-bounces@xxxxxxxxxxx
Subject: RE: [dsdp-tm-dev] RSE Extension Help
Hi Tom, 
I'm still not sure I understand this.  The stack you show here looks
normal - on finish, the wizard should call createHost() and, in turn, each
subsystem configuration should have createSubSystem() called (which calls
createSubSystemInternal()).   With my debugging I haven't hit a case
where createSubSystemInternal() is called twice for the same thing.  Also,
I haven't seen a case where SystemNewConnectionWizard.performFinish() is
called twice.   Could you show me both the stacks that lead to SystemNewConnectionWizard.performFinish()?
____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________
"Hochstein Tom-R60874"
<Tom.Hochstein@xxxxxxxxxxxxx>  
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx 
05/06/2006 11:56 AM
 
 
| 
 Please respond to 
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>  |   
  | 
 
| 
 To 
 | "Target Management developer
discussions" <dsdp-tm-dev@xxxxxxxxxxx> 
 |  
| 
 cc 
 | 
 |  
| 
 Subject 
 | RE: [dsdp-tm-dev] RSE Extension Help |   
  
 
 
  | 
Hi Dave, 
It's not AbstractSystemNewConnectionWizardPage.performFinish() that's the
problem.  It's SystemNewConnectionWizard.performFinish() that calls
createSubSystem(). 
Tom 
New_configuration [Eclipse Application] 
org.eclipse.core.launcher.Main at localhost:4910 
Thread [main] (Suspended (breakpoint at line 138 in TapSubsystemConfiguration))
TapSubsystemConfiguration.createSubSystemInternal(IHost) line: 138 
TapSubsystemConfiguration(SubSystemConfiguration).createSubSystem(IHost,
boolean, ISystemNewConnectionWizardPage[]) line: 1220 
SystemRegistry.createHost(String, String, String, String, String, String,
int, ISystemNewConnectionWizardPage[]) line: 2176 
SystemNewConnectionWizard.performFinish() line: 325 
SystemWizardDialog(WizardDialog).finishPressed() line: 680 
SystemWizardDialog(WizardDialog).buttonPressed(int) line: 355 
Dialog$3.widgetSelected(SelectionEvent) line: 660 
From: dsdp-tm-dev-bounces@xxxxxxxxxxx
[mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of David McKnight
Sent: Monday, June 05, 2006 10:25 AM
To: Target Management developer discussions
Cc: Target Management developer discussions; dsdp-tm-dev-bounces@xxxxxxxxxxx
Subject: Re: [dsdp-tm-dev] RSE Extension Help
Hi Tom, 
I tried to recreate the scenario that you have but I wasn't able to hit
that problem.  Does your implementation of AbstractSystemNewConnectionWizardPage
override performFinish()?  If so, does it end up calling createSubSystem()?
 I think the default impl just returns true. 
____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________
"Hochstein Tom-R60874"
<Tom.Hochstein@xxxxxxxxxxxxx>  
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx 
02/06/2006 04:54 PM
 
 
| 
 Please respond to 
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>  |   
 
 | 
 
| 
 To 
 | "Target Management developer
discussions" <dsdp-tm-dev@xxxxxxxxxxx> 
 |  
| 
 cc 
 | 
 |  
| 
 Subject 
 | [dsdp-tm-dev] RSE Extension Help |   
  
 
 
 
  | 
Hi All, 
I'm developing an RSE system type for JTAG
debug devices.  For the properties of the debug device connection,
I've appended a custom wizard page which extends the RSE AbstractSystemNewConnectionWizardPage.
 This wizard page is an adapter of my SubsystemConfiguration object,
which is itself an extension of the RSE ServiceSubSystemConfiguration.
 When the wizard is finished, I'm trying to add my extra properties
to the IHost by overriding ITapSubsystemConfiguration.createSubSystemInternal(IHost).
The problem is that when I click Finish, I
receive two calls to createSubSystemInternal(), one for the default wizard
page and one for my contributed page.  It seems that the SystemNewConnectionWizard.performFinish()
is issued for both the main page and for my custom page.  This function
calls createSubSystem(), which calls createSubSystemInternal(), and thus
the two calls. 
I also noticed that createSubSystemInternal()
is also called at startup to load a persistent subsystem, which means that
I need to understand that the function will get called in two different
contexts. 
For both cases I guess I could query the IHost
to see if it already contains my properties, but that smells fishy, so
I wonder if this is a problem with the RSE or with my usage.
Tom 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The information contained in this Email has been classified:
[x] General
Business Use 
[ ]
Freescale Internal Use
Only 
[ ] Freescale
Confidential Proprietary _______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev