private boolean registerPlugin(final BesuPlugin plugin) {
    try {
      plugin.register(this);
      pluginVersions.add(plugin.getVersion());
      LOG.info("Registered plugin of type {}.", plugin.getClass().getName());
    } catch (final Exception e) {
      if (config.isContinueOnPluginError()) {
        LOG.error(
            "Error registering plugin of type {}, start and stop will not be called.",
            plugin.getClass().getName(),
            e);
      } else {
        throw new RuntimeException(
            "Error registering plugin of type " + plugin.getClass().getName(), e);
      }
      return false;
    }
    return true;
  }
Registers plugins based on the provided {@link PluginConfiguration}. This method finds plugins
according to the configuration settings, filters them if necessary and then registers the
filtered or found plugins

@throws IllegalStateException if the system is not in the UNINITIALIZED state.
app/src/main/java/org/hyperledger/besu/services/BesuPluginContextImpl.java