code: @Override
      public List<JqassistantPlugin> getPlugins() {
          if (this.plugins == null) {
              final Enumeration<URL> resources;
              try {
                  resources = pluginClassLoader.getResources(PLUGIN_RESOURCE);
              } catch (IOException e) {
                  throw new IllegalStateException("Cannot get plugin resources.", e);
              }
              this.plugins = new ArrayList<>();
              while (resources.hasMoreElements()) {
                  URL url = resources.nextElement();
                  LOGGER.debug("Reading plugin descriptor from '{}'.", url);
                  this.plugins.add(readPlugin(url));
              }
              SortedSet<String> pluginNames = new TreeSet<>();
              for (JqassistantPlugin plugin : plugins) {
                  pluginNames.add(plugin.getName());
              }
              LOGGER.info("Loaded jQAssistant plugins {}.", pluginNames);
          }
          return this.plugins;
      }
docs: Returns an {@link Iterable} over all plugins which can be resolved from
  the current classpath.
  
  @return The plugins which can be resolved from the current classpath.