Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 254492 - [Import/Export] ILeveledImportStructureProvider interface is not declared public
Summary: [Import/Export] ILeveledImportStructureProvider interface is not declared public
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.5   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 3.5 M4   Edit
Assignee: Prakash Rangaraj CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 256464
  Show dependency tree
 
Reported: 2008-11-06 13:50 EST by John Pruitt CLA
Modified: 2008-12-09 13:25 EST (History)
1 user (show)

See Also:


Attachments
Patch v01 (966 bytes, patch)
2008-11-10 02:13 EST, Prakash Rangaraj CLA
pwebster: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John Pruitt CLA 2008-11-06 13:50:52 EST
Build ID: I20080617-2000

Steps To Reproduce:
1. This is not a run-time issue. It is an issue with a missing "public" keyword on an Eclipse interface.
2.
3.


More information:
In the file org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ILeveledImportStructureProvider.java, the keyword "public" is not present before the interface declaration. The line is just:
interface ILeveledImportStructureProvider extends IImportStructureProvider {

instead of 
public interface ILeveledImportStructureProvider extends IImportStructureProvider {

In the same directory, the files IDataTransferHelpContextIds.java and IFileExporter.java contain public interfaces.

Without the keyword public, the interface is only visible to the package and can not be experimented with in other plugins.

It is understood that the interface is still internal and its usage is discouraged.

Not having the "public" keyword seems inconsistent with the other interfaces in the same package and counter to the policy described in http://wiki.eclipse.org/Export-Package

Please add the "public" keyword. Thanks.
Comment 1 Prakash Rangaraj CLA 2008-11-10 02:13:37 EST
Created attachment 117417 [details]
Patch v01

This is not the only interface that is package scoped. There are quite a few like ICellEditorActivationListener, IBookmarkHelpContextIds, IBackgroundSaveListener, IAnimationProcessor, ... 

I find its meaningful to have an package scoped interface in a public api, which will prevent the clients from using it, but still be used in the non-api methods of the classes in the package. But the case is different for internal packages. I prefer to have it public, as the clients are not *supposed* to use it anyway.

Attaching patch.
Comment 2 John Pruitt CLA 2008-11-10 11:14:59 EST
Can this be fixed in the next 3.4 bug fix? It doesn't change any code. I don't think it causes a compatibility problem.

Thanks.
Comment 3 Paul Webster CLA 2008-11-25 12:03:52 EST
Released to HEAD >20081125
PW
Comment 4 Paul Webster CLA 2008-12-09 13:25:19 EST
In I20081209-0100
PW