vy commented on PR #1401: URL: https://github.com/apache/logging-log4j2/pull/1401#issuecomment-1865764460
> Since we are introducing new interfaces and static register classes in `log4j-api`, I think we should take some time to choose were to "hide" those classes to minimize the disruption to Log4j implementors. > > Implementors of the Log4j API need to provide an implementation of each interface in `o.a.l.l.spi`. As far as I understand semantic versioning of packages, each time we make a minor version bump of the package (e.g. we introduce a new implementation of `RecyclerFactory`), they need to check if it does not break their implementation. > > So ideally the `o.a.l.l.spi` package should probably only contain interfaces and we should move other classes to other packages. E.g. abstract utility classes could be in `o.a.l.l.spi.support`, while our implementations in `o.a.l.l.spi.internal`. > > What do you think? I have applied this convention in the context of recyclers in #2104. For other packages/functionality, it is a whole different story. -- 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]
