On 16 July 2012 22:58, sebb <seb...@gmail.com> wrote:
> On 16 July 2012 21:31, Gary Gregory <garydgreg...@gmail.com> wrote:
>> Hi All:
>>
>> With the addition of many new methods to the FileObject interface and other
>> TAR changes reported by Clirr [1], the next release will break BC for VFS
>> providers (those not provided by VFS itself.)
>>
>> For normal call sites of the interfaces, nothing should change. For call
>> sites that use the TAR provider classe, some VFS TAR changes might need
>> call site changes.
>>
>> Therefore, strictly speaking, the next release should be 3.0 with a package
>> rename.
>>
>> Thoughts?
>
> If it is only the TAR classes that break BC, could these alone be renamed?
> If so, the original classes could be kept and deprecated.
>
> As a separate issue, if BC does have to be broken in some or all of
> the code, then please consider privatising all mutable variables (use
> setters/getters) and reducing visibility of classes and methods that
> are not intended to be part of the public API.
>
> I've not looked at the code, but it also strikes me that it might be
> possible to maintain BC by keeping and deprecating the methods that
> have changed parameter types; introducing a new interface for the new
> methods, and creating new methods for createTarFile and getTarFile
> which have changed return types.

Just remembered that adding a method to an interface is binary
compatible [2], however it can affect source compatibility.

Allowing these changes would much reduce the work needed to maintain BC.

[2] http://docs.oracle.com/javase/specs/jls/se5.0/html/binaryComp.html

>> [1] http://oi46.tinypic.com/2ef46qr.jpg
>>
>> Thank you,
>> Gary
>>
>> --
>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>> JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0
>> Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to