Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 406918

Summary: There are still some 'Discouraged Access' warnings for things that should be API
Product: [Eclipse Project] Platform Reporter: Eric Moffatt <emoffatt>
Component: UIAssignee: Michael Rennie <Michael_Rennie>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: Michael_Rennie, pwebster
Version: 4.3   
Target Milestone: 4.3 M7   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Bug Depends on:    
Bug Blocks: 403190    

Description Eric Moffatt CLA 2013-04-30 11:23:49 EDT
I've brought in the project that I used as the basis for my EclipseCon talk and there are still a few notifications against things that should be API at this point. Some of them are in packages that also appear to have non-API classes, we may decide to defer some of them but we should take what action we can.

The most glaring is that the annotations needed to create a new part aren't API; these are in the org.eclipse.e4.ui.di bundle and include @Focus, @Persist, @UIEventTopic...

In org.eclipse.e4.core.extensions there's the @Preference annotation but there are a couple of other classes that I'm not sure of (perhaps we can defer this one).

The org.eclipse.e4.ui.workbench package contains the UIEvents class which is needed to construct the topics for any model listening and should be API. Again, I'm not sure what the API status is of the other classes in this package.

The rest of the code (Model classes...) looks fine...
Comment 1 Eric Moffatt CLA 2013-04-30 11:24:54 EDT
Tagging this for M7 to see if we can at least make the 'org.eclipse.ui.di' package API.
Comment 2 Michael Rennie CLA 2013-04-30 13:16:59 EDT
I pushed the changes to make the mentioned packages in org.eclipse.e4.ui.di and org.eclipse.e4.ui.workbench API. In org.eclipse.e4.ui.workbench I tagged all of the I*Handler interfaces as @noreference until we decide otherwise.

https://git.eclipse.org/r/12394
Comment 3 Michael Rennie CLA 2013-04-30 15:27:30 EDT
(In reply to comment #2)
> I pushed the changes to make the mentioned packages in org.eclipse.e4.ui.di
> and org.eclipse.e4.ui.workbench API. In org.eclipse.e4.ui.workbench I tagged
> all of the I*Handler interfaces as @noreference until we decide otherwise.
> 
> https://git.eclipse.org/r/12394

Paul, @noimplement is not allowed on classes, would you rather I add @noextend to UISynchronize and UIEvents and then tag all of the interfaces in UIEevents as @noimplement?
Comment 4 Eric Moffatt CLA 2013-04-30 15:39:14 EDT
Paul, Mike and I had an interesting talk about adding @noimplement to the magically generated constant interfaces...he's added the work for this to bug 403245...
Comment 5 Paul Webster CLA 2013-04-30 17:20:06 EDT
(In reply to comment #3)
> 
> Paul, @noimplement is not allowed on classes, would you rather I add
> @noextend to UISynchronize and UIEvents and then tag all of the interfaces
> in UIEevents as @noimplement?

Sorry, you're right, I forgot they weren't interfaces.  Please tag them @noextend.

PW
Comment 7 Eric Moffatt CLA 2013-05-24 15:27:43 EDT
Verified in 4.3.0.I20130523-1400. The only discouraged access warning from my APIDemo code is now the @Preference warning as mentioned in comment #0.