School of Computer Science
    
API Explorer
Assisting Developers Understand and Explore APIs

Ekwa's HOME

Overview

API Explorer is an Eclipse plugin that extends the content-assist (aka code completion) feature of the Eclipse IDE. It is intended to assist software developers discover relevant convenience methods on other classes, create objects from factories, subtypes, or public methods, and explore and understand the relationships between the classes and methods of a Java API.


User Guide

Analyze Jar files: Right-click on the Jar file to be analyzed to reveal the context menu; select "API Explorer" and select "Analyze Jar File".
Ensure the Jar file to be analyzed, with all its dependent jars, are on the build-path of the project.


PS. API Explorer is activated by invoking content-assist (i.e., Ctrl+Space)

Feature #1: Method Recommendation

This feature helps a developer discover methods on other objects that may be relevant to the use of a given API class.
For instance, a developer looking for a “send” method on a Message class of the JavaMail API would be shown the Transport.send(Message) method.



Convenience methods on other classes can also be seen by looking through the methods of an object using Eclipse code completion, such as below. Our tool appends other relevant methods on other classes after the methods of the object on which code completion is requested.




Feature #2: Object Construction:

This feature provides support for creating objects from factories classes, public methods, subtypes, and constructors.


An API class may have more than one object construction pattern. In this case, API Explorer shows the developer all the possible object construction patterns, and lets the developer select the most relevant option in the given context. For instance, below, the developer is informed that there are two ways of creating an instance of javax.mail.Message.


Feature #3: Exploration of Relationships between API classes

This feature allows a developer to easily explore the relationships between the classes of an API.
The API Explorer view must be open to use this feature: Window > Show View > Other > Other.






Download

System requirements: API Explorer has been tested on Eclipse 3.4 and Eclipse 3.6 - on Windows Vista and Mac only.

Installation and Setup Guide.


•  Install API Explorer using the update site: http://www.cs.mcgill.ca/~swevo/explorer/update

•  It is recommended that you increase the memory allocated to Eclipse when analyzing large Jar files such as rt.jar or Eclipse-related jars to avoid out-of-memory problems. We recommend a memory setting of 512M for best performance.

•  Restart Eclipse and activate content-assist for "Java Type Proposals", "Type Proposals" and "Other Type Proposals" (Go to Windows > Preference > Java > Editor > Content Assist > Advanced, and select both"Java Type Proposals", "Type Proposals" and "Other Type Proposals" [which ever is available] in both the top and bottom box).

•  API Explorer has been tested on Eclipse 3.4 and Eclipse 3.6, and on Windows vista and Mac only.

Credits: API Explorer uses the WordNet dictionary for synonym analysis.

Publications


Ekwa Duala-Ekoko and Martin P. Robillard. Using Structure-Based Recommendations to Facilitate Discoverability in APIs . Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP 2011), July 2011, Lancaster, UK. (local copy)

People

API Explorer was developed by Ekwa Duala-Ekoko, with contributions from Martin P. Robillard.

Contact Information

Address questions, bugs, and comments to Ekwa Duala-Ekoko.