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)

Reply via email to