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]
