Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detecting API changes/evolution [closed]

I want to measure API evolution for a given Java project, in particular new/renamed classes, new methods, newly deprecated methods, etc. Is there a tool that detect such changes?

Back in 2007, a Google GSoc project was initiated, however, I cannot find the final work.

like image 257
notnoop Avatar asked Nov 03 '09 02:11

notnoop


2 Answers

I'd use Clirr for that, a binary compatibility checker. From the Clirr web site:

What is it?

Clirr is a tool that checks Java libraries for binary and source compatibility with older releases. Basically you give it two sets of jar files and Clirr dumps out a list of changes in the public api. The Clirr Ant task can be configured to break the build if it detects incompatible api changes. In a continuous integration process Clirr can automatically prevent accidental introduction of binary or source compatibility problems.

...

Features

  • Report all API changes (currently only partially implemented)
  • Evaluate each change wrt. binary and source compatibility
  • support plain text and XML reports
  • Flexible failure handling (warnings vs. errors, break the build or set error property)
like image 123
Pascal Thivent Avatar answered Sep 20 '22 00:09

Pascal Thivent


There's also a new API evolution checking tool called Revapi

like image 23
metlos Avatar answered Sep 20 '22 00:09

metlos