API Tooling

6
API Tooling • An API is a contract. • API usage is the key for long- term maintenance of software. • Detection of potential breakage can help to prevent delays in SDK adoption. • Different levels of exposure: API, SPI and internal code.

description

API Tooling. An API is a contract. API usage is the key for long-term maintenance of software. Detection of potential breakage can help to prevent delays in SDK adoption. Different levels of exposure: API, SPI and internal code. Terminology. API: they are defined by the bundle manifest - PowerPoint PPT Presentation

Transcript of API Tooling

Page 1: API Tooling

API Tooling

• An API is a contract.

• API usage is the key for long-term maintenance of software.

• Detection of potential breakage can help to prevent delays in SDK adoption.

• Different levels of exposure: API, SPI and internal code.

Page 2: API Tooling

Terminology

• API: they are defined by the bundle manifest

• SPI: limited to a reduced number of clients. Clients are aware that they are subject to change.

• Internal code: Should never be used.• Speaking with WAS and WTP people, it

seems that these definitions need some flexibility.

Page 3: API Tooling

Use cases• Backward compatibility: Detect changes that

are not backward compatible ASAP

• Global references: who’s using my code and what am I using

• Version management: Make sure that the versioning scheme is respected according to the changes applied to a code base

http://wiki.eclipse.org/PDE_UI_Incubator_ApiTools#Usecases

Page 4: API Tooling

ReportsReports

Source

OSGi bundleOSGi bundle

Java JARJava JAR

Eclipse productEclipse product

Update siteUpdate site

API definition

Manifest.mfManifest.mf

Rules filesRules files

Javadoc tagsJavadoc tags

AnnotationsAnnotations

Snapshots

FilesystemFilesystem

DatabaseDatabase

Reports

QueriesQueries

Page 5: API Tooling

Collect

Compare

Source API Snapshot

Control structure

OLD API Snapshot

Source NEW API SnapshotControl

structure

Comparator

XML Report

HTML Report

+

Existing PDE Api Tool

Page 6: API Tooling

Existing tools

• Diff tool made by Jed Anderson

• PDE API tools prototype made by Oleg

• AUS (tool available on alphaworks)

• Open-source tool for jar comparison:http://sab39.netreach.com/Software/Japitools/42/ (GPL)

• WTP tool (component.xml ?)• JDiff (used by TPTP): http://www.jdiff.org/