Community
Participate
Working Groups
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.
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.
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.
Released to HEAD >20081125 PW
In I20081209-0100 PW