The ClassLoaderService is a special kind of Service as it's:
-
needed very early on in several initialiazion phases in which the ServiceManager isn't fully constructed yet
-
needed by the ServiceManager as well
-
also happens to be a lookup hotspot as some "hot" code areas might need it frequently (e.g. Query execution)
therefore I'm promoting the ClassLoaderService to have an easy getter on the SearchFactoryImplementor and during the bootstrap phase. It will also (still) be accessible via the ServiceManager as that's convenient decoupling for other services, but the hot path areas get refactored to reuse the reference rather than using the ServiceManager on each individual need.
|