Class AnalysisSPILoader<S extends AbstractAnalysisFactory>


  • public final class AnalysisSPILoader<S extends AbstractAnalysisFactory>
    extends Object
    Helper class for loading named SPIs from classpath (e.g. Tokenizers, TokenStreams).
    NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
    • Constructor Detail

      • AnalysisSPILoader

        public AnalysisSPILoader​(Class<S> clazz)
      • AnalysisSPILoader

        public AnalysisSPILoader​(Class<S> clazz,
                                 ClassLoader loader)
      • AnalysisSPILoader

        public AnalysisSPILoader​(Class<S> clazz,
                                 String[] suffixes)
    • Method Detail

      • reload

        public void reload​(ClassLoader classloader)
        Reloads the internal SPI list from the given ClassLoader. Changes to the service list are visible after the method ends, all iterators (e.g., from availableServices(),...) stay consistent.

        NOTE: Only new service providers are added, existing ones are never removed or replaced.

        This method is expensive and should only be called for discovery of new service providers on the given classpath/classloader!

      • lookupClass

        public Class<? extends S> lookupClass​(String name)
      • availableServices

        public Set<String> availableServices()