Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-15897

ServiceLoader integration into configuration

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0.0-alpha3
    • 3.0.0-alpha4
    • 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

          Activity

            People

              rpuch Roman Puchkovskiy
              ibessonov Ivan Bessonov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 5h 50m
                  5h 50m