Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

PDE/API Tools

< PDE
Revision as of 15:03, 26 October 2007 by Unnamed Poltroon (Talk) (Present state)

API tooling is a collection of utilities that can be used in API maintenance and consistency checks. We hope to explore four directions here:

  • API Comparison tool
    • API comparison – discover new APIs, modified APIs, flag APIs that are modified in a non-backward compatible way
    • Bundle version checking – use API comparison results to see if version number of a bundle has been properly incremented
  • Reference Extractor tool
    • Usage discovery – allow developers to discover who is using their APIs and non-APIs
    • Usage validation – check if usage of APIs from other bundles fits into Eclipse standards

Also note that there is an ongoing work on API visualization.

Present state

At present there are two branches/implementations of API tooling in the incubator.

The first implementation of API tooling is in HEAD. The comparison tool works by creating XML snapshots of each public type’s API. The snapshot for a type is generated by flattening the type hierarchy. Snapshots representing different versions of the same components can be compared to produce a report of binary incompatibilities. The reference analysis also works by extracting reference information into an XML file. At present there is a functional API comparison tool that received a moderate amount of testing. The reference extractor has reference extraction working but only skeleton code exists for processing of queries. More information on the original implementation of API tooling can be found here.

The second implementation of API tooling is in a branch named “manifest_tooling” and is currently under construction. This implementation is designed to compare class files to report binary incompatibilities. The tool has support to produce class file stubs (i.e. minimal class files with just member signatures and reference information). The comparison tool can process standard class files or class file stubs. The stubs allow “API components” to be produced that are smaller than the original code intended for distribution. The reference extraction portion of the tool will also analyze class files (or stubs) for reference information. More information on the architecture of this implementation can be found here.

Links

Evolving Java-based APIs - What is considered an API in Eclipse.

Resources

Eclipse Bugzilla - Eclipse bug tracking database.

PDE Incubator - New projects that might be incorporated into PDE in future.

PDE UI Home Page - The main PDE UI web site.

Back to the top