slachiewicz commented on issue #1072:
URL: https://github.com/apache/maven-doxia/issues/1072#issuecomment-5226584126

   Drafted the change in #1073 to make this concrete.
   
   Two findings from doing it that were not obvious from the outside:
   
   1. `japicmp` passes with no exclusions, but not for free. Besides the 
deprecated subclass, the old class needs its own nested `Semantics` subclass 
and an override of `unmodifiable()` — the nested class is not inherited under 
its old binary name, and `unmodifiable()` declares its own type as the return 
type, so the inherited one has the wrong descriptor.
   
   2. Five protected parser hooks in `doxia-core` take or return this type 
(`AbstractXmlParser.getAttributesFromParser`/`handleUnknown`, 
`Xhtml5BaseParser.baseStartTag`/`baseEndTag`/`consecutiveSections`). Retyping 
them would be a silent break rather than a loud one, since a subclass compiled 
against the old signature would stop overriding the method and never be called 
again. The PR leaves them on the deprecated type so nothing on the extension 
API changes. They arguably want the `SinkEventAttributes` interface instead of 
a concrete set, but that is a separate change needing a version decision.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to