Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 312349 - DSF API exposing provisional interface
Summary: DSF API exposing provisional interface
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-debug-dsf (show other bugs)
Version: 7.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-10 18:05 EDT by John Cortell CLA
Modified: 2020-09-04 15:22 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Cortell CLA 2010-05-10 18:05:13 EDT
API class DsfMemoryBlock implements IMemoryBlockUpdatePolicyProvider, which is in a provisional package. Seems to me we either need to make IMemoryBlockUpdatePolicyProvider API or avoid exposing it in a downstream API type. This interface was added during the Helios timeframe, so we should correct this before we ship.
Comment 1 John Cortell CLA 2010-05-24 18:52:45 EDT
Pawel, are we going to let Helios ship with this?
Comment 2 Pawel Piech CLA 2010-05-24 23:46:59 EDT
I don't like the internal API leaks and this is one of them, though it does look like it's been there since DD 1.1.  At this stage in the release, I would rather not mess with it.  

Randy, do you have an opinion?
Comment 3 John Cortell CLA 2010-05-25 07:43:06 EDT
If it's been in there this long, why not just make the interface non-internal/provisional?
Comment 4 Pawel Piech CLA 2010-05-25 11:39:27 EDT
There's a bit of a tangle of APIs: the flexible hierarchy APIs in Platform Debug are provisional.  So as an extension the DSF View Model APIs are provisional as well.  But in our APIs, there are a few places where we leak the provisional DSF View Model API by an official API.  I'm not really sure what to do about these instances.  

These complete list of API leaks in DSF is:

CSourceLookup.java:66 - CSourceLookup.setSourceLookupDirector(ISourceLookupISourceLookupDMContext, CSourceLookupDirector) has non-API parameter type CSourceLookupDirector

DsfCommandRunnable.java:44 - DsfCommandRunnable.getSteppingController() has non-API return type SteppingController

DsfSourceDisplayAdapter.java:584 - Constructor for DsfSourceDisplayAdapter with non-API parameter type SteppingController

DsfSourceDisplayAdapter.java:108 - DsfSourceDisplayAdapter implements non-API interface ISteppingControlParticipant

DsfSourceDisplayAdapter.java:830 - DsfSourceDisplayAdapter.eventDispatched(SteppingControllerSteppingTimedOutEvent) has non-API parameter type SteppingTimedOutEvent

ViewerCountingRequestMonitor.java:30 - Constructor for ViewerCountingRequestMonitor with non-API parameter type IViewerUpdate	

ViewerDataRequestMonitor.java:43 - Constructor for ViewerDataRequestMonitor<V> with non-API parameter type IViewerUpdate

ViewerRequestMonitor.java:28 - Constructor for ViewerRequestMonitor with non-API parameter type IViewerUpdate	

DsfMemoryBlock.java:55 - DsfMemoryBlock implements non-API interface IMemoryBlockUpdatePolicyProvider

DsfSourceLookupDirector.java:24 - DsfSourceLookupDirector extends non-API type CSourceLookupDirector
Comment 5 Pawel Piech CLA 2010-05-25 12:04:32 EDT
Looking at this list again, I think we could address most of these.  Although, it'll require a major version change.
Comment 6 John Cortell CLA 2010-05-25 12:10:57 EDT
(In reply to comment #5)
> Looking at this list again, I think we could address most of these.  Although,
> it'll require a major version change.

+1. I know I've gone through some difficult hoops to not expose internal APIs. It's disheartening to see violations elsewhere. We should take advantage of the CDT major version change (even if we're predicting another one next year) and clean this up sooner rather than later.
Comment 7 Pawel Piech CLA 2010-05-25 12:26:16 EDT
(In reply to comment #6)
> +1. I know I've gone through some difficult hoops to not expose internal APIs.
> It's disheartening to see violations elsewhere. We should take advantage of the
> CDT major version change (even if we're predicting another one next year) and
> clean this up sooner rather than later.
We collectively decided not to change the major version of DSF plugins (they're on 2.1 this year).
Comment 8 Marc Khouzam CLA 2010-05-25 12:58:19 EDT
(In reply to comment #7)
> (In reply to comment #6)
> > +1. I know I've gone through some difficult hoops to not expose internal APIs.
> > It's disheartening to see violations elsewhere. We should take advantage of the
> > CDT major version change (even if we're predicting another one next year) and
> > clean this up sooner rather than later.
> We collectively decided not to change the major version of DSF plugins (they're
> on 2.1 this year).

I may not be appreciating the importance of leaking APIs, but from a stability point-of-view, I think we should leave the code alone as much as we can at this point.