Does anyone know of a tool, preferably open source, for checking that
versions N and N+1 of a library are compatible? Ideally:
* The tool is open source
* It allows specifying which classes are to be checked, either by inclusion
or by exclusion
* Its result is a report listing any places where compatibility has been
violated, e.g. where a method was added to an interface
|
|
0
|
|
|
|
Reply
|
Mike
|
3/27/2011 4:13:07 PM |
|
On 27-03-2011 12:13, Mike Schilling wrote:
> Does anyone know of a tool, preferably open source, for checking that
> versions N and N+1 of a library are compatible? Ideally:
>
> * The tool is open source
> * It allows specifying which classes are to be checked, either by
> inclusion or by exclusion
> * Its result is a report listing any places where compatibility has been
> violated, e.g. where a method was added to an interface
I assume that you mean a simple API support check and not a check
against implementation problems in the library.
No - I don't know of either, but it is two very different problems.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
3/27/2011 4:21:17 PM
|
|
"Arne Vajh�j" <arne@vajhoej.dk> wrote in message
news:4d8f63f6$0$23752$14726298@news.sunsite.dk...
> On 27-03-2011 12:13, Mike Schilling wrote:
>> Does anyone know of a tool, preferably open source, for checking that
>> versions N and N+1 of a library are compatible? Ideally:
>>
>> * The tool is open source
>> * It allows specifying which classes are to be checked, either by
>> inclusion or by exclusion
>> * Its result is a report listing any places where compatibility has been
>> violated, e.g. where a method was added to an interface
>
> I assume that you mean a simple API support check and not a check
> against implementation problems in the library.
Yes. I don't see how to check the latter (run-time compatibility) other
than a complete set of unit tests.
|
|
0
|
|
|
|
Reply
|
Mike
|
3/27/2011 4:38:34 PM
|
|
On 3/27/11 9:13 AM, Mike Schilling wrote:
> Does anyone know of a tool, preferably open source, for checking that
> versions N and N+1 of a library are compatible? Ideally:
>
> * The tool is open source
> * It allows specifying which classes are to be checked, either by
> inclusion or by exclusion
> * Its result is a report listing any places where compatibility has been
> violated, e.g. where a method was added to an interface
I don't know of any for Java. There are several tools for .NET that do
that sort of thing (Diff add-in for Reflector, NDepend, LibCheck, and
BitDiffer come to mind). Last year when I needed that sort of thing for
some work I was doing, I found BitDiffer came closest to our needs, but
unfortunately even it didn't fully support our use case. So I wound up
writing our own.
It only took a couple of weeks of off and on work (I had other
responsibilities to deal with of course), including a GUI to allow
fine-tuning of things like renamed members.
I think it would be even easier to write a similar tool for Java,
because of the simpler type system (no properties, no events…just
methods and fields). The language has similar reflection features, so
presumably the basic task is similar: load types, sort members, then
recursively compare using a merge-sort style diff loop.
Obviously, it would be more ideal if such a tool already exists. At
least in the .NET world, the license fees were much less expensive than
the cost for me to reinvent that wheel, even assuming only 40-80 hours
of work. A web search turned up these possibilities:
http://www.extradata.com/products/jarc/
http://www.activityworkshop.net/software/jarcomp/index.html
A StackOverflow thread suggests decompiling the contents of a library
and then using your favorite diff tool to compare.
Unfortunately, because .jar uses the .zip format, it appears that at
least one of those tools is really just a .zip comparer, and doesn't
really look at the actual Java types implemented in each file. I didn't
try it though, so I'm not really sure.
Hope that helps.
Pete
|
|
0
|
|
|
|
Reply
|
Peter
|
3/27/2011 4:49:14 PM
|
|
On 27-03-2011 12:38, Mike Schilling wrote:
> "Arne Vajh�j" <arne@vajhoej.dk> wrote in message
> news:4d8f63f6$0$23752$14726298@news.sunsite.dk...
>> On 27-03-2011 12:13, Mike Schilling wrote:
>>> Does anyone know of a tool, preferably open source, for checking that
>>> versions N and N+1 of a library are compatible? Ideally:
>>>
>>> * The tool is open source
>>> * It allows specifying which classes are to be checked, either by
>>> inclusion or by exclusion
>>> * Its result is a report listing any places where compatibility has been
>>> violated, e.g. where a method was added to an interface
>>
>> I assume that you mean a simple API support check and not a check
>> against implementation problems in the library.
>
> Yes. I don't see how to check the latter (run-time compatibility) other
> than a complete set of unit tests.
Exactly.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
3/27/2011 8:12:49 PM
|
|
|
4 Replies
273 Views
(page loaded in 0.056 seconds)
Similiar Articles: How to check pdf files for errors? - comp.text.pdfThere are PDF validation and pre-flighting tools, such as: Free (with ... You can also check the compatibility of the sender's email program as well ... Gcc binary compatibility chart - comp.unix.programmerGcc binary compatibility chart - comp.unix.programmer Checking for whether compiler supports C99 or C++0x - comp.lang ... Gcc binary compatibility chart - comp.unix ... Compatible with the most modern hardware Linux Ditro - comp.os ...... that I'm the most affraid of is modern hardware compatibility. ... escputil package has something to at least check ink ... Epson: Mtink : Status monitor and configuration tool ... midi compatibility problem - comp.music.midiDid you check >> whether MIDI bytes arrives (at the lowest level ... full XG range of compatibility plus TG300B mode for Roland GS compatibility, so as a MIDI playback tool ... How to check whether malloc has allocated memory properly in case ...i want to check after calling malloc whether ... There were tools that preceded it, though I can no ... for somewhere close to a decade, with software compatibility ... [comp.publish.cdrom] CD-Recordable FAQ, Part 1/4 - comp.publish ...Archive-name: cdrom/cd-recordable/part1 Posting-Frequency: monthly Last-modified: 2008/10/09 Version: 2.71 Send corrections and updates to And... Where did Fortran go? - comp.lang.fortran... book, and was using it as a rapid prototyping tool ... in its design a goal of portability and backward compatibility ... any airplanes, perhaps because people knew to check ... Package management - comp.unix.solaris... 10 does not provide any new package management tools ... Sun customers forward as well as backward compatibility. ... 1M) is that although it performs dependency checking ... Reading an unformatted file - comp.lang.fortranAlso the writing program might want to check that x ... saying that "ASCII rules" sweeps a multitude of compatibility ... Use a binary viewing tool such as "od" to see and ... Windows 7 and Eudora 7.1: problems, problems and problems. - comp ...On Tools|Options|Threading I have read 10 for default. ... In fact I have set the program to NOT check mail ... about this link and I have chosen Win 95 compatibility. 10 Useful Tools For Cross-Browser Compatibility CheckOne of the factors that make a website great is when it is compatible in multiple browsers regardless of browser version. Technically this is referred to as cross ... Using the Internet Explorer Compatibility Test ToolOn the Internet Explorer Compatibility Test Tool toolbar, click Disable when you are done. ... You can select the Find Exact Match check box, if you want to search ... 7/25/2012 11:42:51 PM
|