mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 13:08:29 +00:00
6dcfda99e8
Settings currently has a classloader member, which any user (plugin or core ES code) can access to load classes/resources. This is extremely error prone as setting the classloder on the Settings instance is a public method. Furthermore, it is not really necessary. Classes that need resources should load resources using normal means (getClass().getResourceAsStream). Those that need classes should use Class.forName, which will load the class with the same classloader as the calling class. This means, in the few places where classes are loaded by string name, they will use the appropriate loader: either the default classloader which loads core ES code, or a child classloader for each plugin. This change removes the classloader member from Settings, as well as other classloader related uses (except for a handful of cases which must use a classloader, at least for now).