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

Reply via email to