Какие инструменты существуют для аудита изменений в интерфейсах Java? - PullRequest
10 голосов
/ 12 января 2010

Кто-нибудь знает какие-либо инструменты, которые могут обобщать изменения в интерфейсах Java между различными версиями? (Под интерфейсом я имею в виду открытую функциональность типов в целом, а не конкретную языковую конструкцию.)

Мне нужна программа, которая принимает две версии одного и того же пакета или дерева пакетов и выводит что-то вроде:

  • Конструктор (String, int) удален в классе Thing
  • Конструктор (String) устарел для класса OtherThing
  • Добавлен метод void setId (String) для класса SomethingElse

или что-то более сложное, выше, это только мои первоначальные мысли. Решение может работать на байт-код или источник, я не против.

Ответы [ 4 ]

2 голосов
/ 12 января 2010

Clirr - это инструмент, который проверяет библиотеки Java на двоичную и исходную совместимость со старыми выпусками.

Apache Commons использует его, он создает таких отчетов (для Commons Lang) .

1 голос
/ 12 января 2010

Взгляните на japitools . Эти инструменты используются проектом GNU Classpath для сравнения их API на предмет совместимости сигнатур с различными версиями библиотек классов Sun Java.

0 голосов
/ 12 января 2010

Я использовал для этого JDiff доклет в прошлом. В зависимости от того, что вы делаете, это может быть проблематично для настройки, но я думаю, что задача Ant работает довольно хорошо.

0 голосов
/ 12 января 2010

Вы можете реализовать свой собственный инструмент, используя отражение , особенно если вы хотите изучить отдельные изменения вашего кода. Он также работает с байт-кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...