private Class<?> search(final DefaultPluginType pluginType) throws PluginSourceNotMatchException {
        final String selfContainedPluginName = "embulk-" + this.category + "-" + pluginType.getName();
        if (!SelfContainedJarFiles.has(selfContainedPluginName)) {
            throw new PluginSourceNotMatchException();
        }

        final Class<?> pluginMainClass;
        try (final JarPluginLoader loader = JarPluginLoader.loadSelfContained(selfContainedPluginName, this.pluginClassLoaderFactory)) {
            final Class<?> loadedClass = loader.getPluginMainClass();
            logger.info("Loaded plugin {}", selfContainedPluginName);
            return loadedClass;
        } catch (final InvalidJarPluginException ex) {
            throw new PluginSourceNotMatchException(ex);
        }
    }
Caches self-contained plugin's loaded classes such as embulk-ruby's Embulk::PluginRegistry.

<p>See {@code /embulk-ruby/lib/embulk/plugin_registry.rb}.
embulk-core/src/main/java/org/embulk/plugin/SelfContainedPluginRegistry.java