Versioning (again).
Ian Young
ian at iay.org.uk
Fri May 1 05:21:49 EDT 2015
> On 1 May 2015, at 09:16, Rod Widdowson <rdw at steadingsoftware.com> wrote:
>
> This is a bit of an "Angels dancing on pins" question and I apologise for
> it.
Not more than 30 vigintillion.[1]
Next question.
> But in fact the method exists - but it's protected. So the proposed change
> would be to make the protected public. But I could envisage a very weird
> setup in which a derived class stopped working (they overridden the method
> as protected)
So the question is whether protected methods in classes in -api packages are part of "all public interactions points by which a developer might interact with the system" as the version policy puts it.
I had a poke around and can't see anything that explicitly answers this question either way. So I guess we must think it's obvious, in which case the answer is probably "yes". Such is the penalty for an API which includes non-final classes, I guess.
> It’s academic because I'll bet that no one has ever (or will ever) extend
> the class or not in this way, so I'd be inclined to just do the right thing.
I agree in this specific case. More generally, there's nothing stopping you making a new public method with a slightly different name to carry the new functionality while preserving the old protected method forever (well, until v4 I suppose).
> But I'd like any clarity that those with more Java expertise than I (and a
> better understanding of the versioning policy).
I think we need to write down what constitutes "the API" specifically, and link to it from the version policy page. Maybe we already have the text somewhere (the nearest I could find is an indirect mention in [2]) but I couldn't find it.
-- Ian
[1] http://www.smbc-comics.com/index.php?db=comics&id=2576
[2] https://wiki.shibboleth.net/confluence/display/IDP30/2.+Project-wide+Patterns+and+APIs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5250 bytes
Desc: not available
URL: <http://shibboleth.net/pipermail/dev/attachments/20150501/ca658f7e/attachment-0001.p7s>
More information about the dev
mailing list