Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-alpha3
-
None
Description
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.
Attachments
Issue Links
- links to