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);
 }