Jump to: navigation, search

Dali Discouraged Access Warnings

DRAFT

For background, see

Currently, Dali has three levels of Discouraged Access warnings to deal with:

  • Internal Discouraged Access Warnings
    • Non-Test Plug-ins We add non-test plug-ins as "friends" of other non-test plug-ins, as appropriate (e.g. all the non-test plug-ins are friends of o.e.jpt.utility; while none of the plug-ins are friends of o.e.jpt.ui).
    • Test Plug-ins Because test plug-ins are not loaded at run-time, there is no need to make them friends of the non-test plug-ins. To suppress the Discouraged Access warnings in a test plug-in, we add the appropriate build-time access rule exceptions to the project's Java build path (e.g. o.e.jpt.core.tests suppresses any access warnings caused by references to o.e.jpt.core). See the DTP description of this Eclipse feature.
      • Exception The test "extension" plug-in, o.e.jpt.core.test.extension.resource, should not add any access rule exceptions to its project's Java build path, since this plug-in, as an example extension, should be using Dali's public API (currently, it does not; but that is the goal for Ganymede).
  • WTP Discouraged Access Warnings
    • As a sub-project of WTP, Dali, ostensibly, is allowed access to the internals of any other WTP sub-project. This requires the appropriate WTP plug-ins to add various Dali plug-ins to their lists of "friends". Since this does not always happen in a timely fashion, we add access rule exceptions as necessary. Currently, only o.e.jpt.core and o.e.jpt.ui require these exceptions.
  • External Discouraged Access Warnings
    • Because Dali is so tightly integrated with the Eclipse Java IDE, it references the internals of a number of other Eclipse plug-ins, particularly JDT plug-ins. A bug should be filed for each such warning, requesting the appropriate API be made public. Although these warnings could be suppressed (e.g. using the access rule exceptions described above or a Java annotation @SuppressWarnings("restriction")), it is more helpful to leave them visible and commented with a bug number.