private void processResources(PluginRegistry pluginRegistry) { List<String> pluginNames = pluginRegistry.getPluginNames(); for (String pluginName : pluginNames) { List<Path> pluginResources = pluginRegistry.getResources(pluginName); LOG.debug( String.format( "Found %d resource files for plugin %s: [%s]", pluginResources.size(), pluginName, commaSeparated(pluginResources.stream().map(Path::toString)))); Optional<ClassLoader> pluginClassLoader = pluginRegistry.getClassLoader(pluginName); if (pluginClassLoader.isPresent()) { for (Path pluginResource : pluginResources) { beanClassLoader.addPathClassLoader(pluginResource, pluginClassLoader.get()); } } } }
private void addToBeanClassLoader(Class implementation) { LOG.debug( String.format( "Adding implementation %s to SmartClassLoader", implementation.getCanonicalName())); beanClassLoader.addClass(implementation); }