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 > >