Hi again,

> Am 31.08.2017 um 01:38 schrieb sebb <seb...@gmail.com>:
> 
> On 30 August 2017 at 20:11, Benedikt Ritter <brit...@apache.org 
> <mailto:brit...@apache.org>> wrote:
>> Hi,
>> 
>> looking through the JavaDoc comments in the Visitor interface, it looks like 
>> we added additional methods in the 6.0 release. 6.0 was a major release but 
>> without package and maven coords change. Seems like we accepted this kind of 
>> changes for 6.0. I’m not sure what point I’m trying to make here… But the 
>> whole versioning/api evolution thingy looks pretty messy in BCEL.
> 
> A major version bump does not require changes to package names/maven coords.
> It just means that there have been major changes.
> 
> However changing package/maven coords is a major change and so
> requires a major version bump.
> 
> AFAIK 6.0 was binary compatible with the previous release.
> That was certainly the intention.

Looking through the 6.0 release notes [1] I’m thinking about going the same way 
again. It seems to be necessary to extend the Visitor interface to implement 
new features. Introducing a new VisitorN extends VisitorN-1 very release seems 
like overkill. So maybe the best solution to get more opinions on this is to 
roll an RC and see what people think.

Regards,
Benedikt

[1] https://www.apache.org/dist/commons/bcel/RELEASE-NOTES.txt 
<https://www.apache.org/dist/commons/bcel/RELEASE-NOTES.txt>
> 
>> Cheers,
>> Benedikt
>> 
>>> Am 30.08.2017 um 16:37 schrieb Gary Gregory <garydgreg...@gmail.com>:
>>> 
>>> We recently dealt with this kind of compatibility issue in Log4j 2 and we
>>> decided to subclass the interface in question. I suggest we do the same
>>> here. Not pretty but it is type safe and bullet-proof.
>>> 
>>> Gary
>>> 
>>> On Tue, Aug 29, 2017 at 5:17 AM, sebb <seb...@gmail.com> wrote:
>>> 
>>>> On 28 August 2017 at 20:07, Gary Gregory <garydgreg...@gmail.com> wrote:
>>>>> The question is whether this breaks binary compatibility. If it does,
>>>> this
>>>>> needs fixing. Unless there are other important changes that warrant a
>>>> major
>>>>> version, I would go the sub-interface route; ugly, but workable within
>>>> the
>>>>> same major release.
>>>> 
>>>> According to [1], it seems it does not.
>>>> 
>>>> However it will break source compatibility if a 3rd party implements
>>>> the interface.
>>>> 
>>>> Also I seem to remember there were some concerns about the downstream
>>>> effect for 3rd party visitor implementations.
>>>> 
>>>> IIRC it was that BCEL will expect to be able to invoke the new
>>>> methods; this will fail.
>>>> There may be ways around this by catching the exception.
>>>> 
>>>> The dev list should have the details.
>>>> 
>>>> [1] https://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html
>>>> 
>>>>> Gary
>>>>> 
>>>>> On Mon, Aug 28, 2017 at 12:58 PM, Benedikt Ritter <brit...@apache.org>
>>>>> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> Rev. 1782852 [1] has introduced two breaking changes by adding the
>>>> methods:
>>>>>> 
>>>>>> public void visitAnnotation(org.apache.bcel.classfile.Annotations)
>>>>>> public void visitAnnotationDefault(org.apache.bcel.classfile.
>>>>>> AnnotationDefault)
>>>>>> 
>>>>>> to the interface org.apache.bcel.classfile.Visitor. The commit comment
>>>>>> indicates that these changes are needed by the Tomcat project. How do we
>>>>>> want to deal with this for the upcoming 6.1 release? I see several
>>>> options:
>>>>>> 
>>>>>> - accept these changes and make it explicit in release notes
>>>>>> - add a new interface which extends from the Visitor interface and add
>>>> the
>>>>>> new methods to that interface
>>>>>> - major version bump (probably not the best idea…)
>>>>>> 
>>>>>> Thoughts?
>>>>>> Benedikt
>>>>>> 
>>>>>> [1] http://svn.apache.org/viewvc?view=revision&revision=1782852 <
>>>>>> http://svn.apache.org/viewvc?view=revision&revision=1782852>
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>> 
>>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
>> <mailto:dev-unsubscr...@commons.apache.org>
>> For additional commands, e-mail: dev-h...@commons.apache.org 
>> <mailto:dev-h...@commons.apache.org>
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
> <mailto:dev-unsubscr...@commons.apache.org>
> For additional commands, e-mail: dev-h...@commons.apache.org 
> <mailto:dev-h...@commons.apache.org>

Reply via email to