Dear Igniters! In Ignite 3, we have a bunch of classes that utilize the Java SPI (ConfigurationModule and MetricsExporter to name a few). For every interface implementation we need to manually create a file in the META-INF folder. This step can be automated by the AutoService library [1].
I can see the following pros and cons of using this approach: 1. Pros: * Less manual boilerplate, * This is a compile-time only dependency (an annotation and an annotation processor), * Less files to maintain and update/move when corresponding interfaces change. 2. Cons: * A new dependency will be introduced and it looks like the community doesn't like that. I've created a PR [2] with a demonstration how this library can be used in the existing code base. [1] https://github.com/google/auto/tree/main/service [2] https://github.com/apache/ignite-3/pull/1415 -- With regards, Aleksandr Polovtsev