Ivan Bessonov created IGNITE-15897:
--------------------------------------
Summary: [Ignite 3] ServiceLoader integration into configuration
Key: IGNITE-15897
URL: https://issues.apache.org/jira/browse/IGNITE-15897
Project: Ignite
Issue Type: Improvement
Affects Versions: 3.0.0-alpha3
Reporter: Ivan Bessonov
Fix For: 3.0.0-alpha4
In order to decouple modules and provide more flexibility, it would be helpful
to provide certain extension points using standard ServiceLoader Java API.
For example, currently there's an explicit list of configuration roots,
extensions, validators, etc. in {{org.apache.ignite.internal.app.IgniteImpl}}
code. This can become a mess and is not extensible.
New service interface should provide following objects:
* collection of configuration roots;
* collection of validators;
* collection of internal extensions;
* collection of polymorphic extensions.
That's probably enough.
There should be a piece of code in {{runner}} module or somewhere else that
aggregates this information from all available service loader of given
interface. Aggregated information can then be used to initialize
{{{}ConfigurationManager{}}}.
Local and Distributed roots/extensions should be provided in different
instances, it's much easier this way for individual developers who will
implement these services.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)