docs: public void initializePlugins(final boolean init_rpcs) {
      final String plugin_path = config.getString("tsd.core.plugin_path");
      loadPluginPath(plugin_path);
  
      try {
        TagVFilter.initializeFilterMap(this);
        // @#$@%$%#$ing typed exceptions
      } catch (SecurityException e) {
        throw new RuntimeException("Failed to instantiate filters", e);
      } catch (IllegalArgumentException e) {
        throw new RuntimeException("Failed to instantiate filters", e);
      } catch (ClassNotFoundException e) {
        throw new RuntimeException("Failed to instantiate filters", e);
      } catch (NoSuchMethodException e) {
        throw new RuntimeException("Failed to instantiate filters", e);
      } catch (NoSuchFieldException e) {
        throw new RuntimeException("Failed to instantiate filters", e);
      } catch (IllegalAccessException e) {
        throw new RuntimeException("Failed to instantiate filters", e);
      } catch (InvocationTargetException e) {
        throw new RuntimeException("Failed to instantiate filters", e);
      }
  
      // load the authentication plugin if enabled
      if (config.getBoolean("tsd.core.authentication.enable")) {
        authentication = PluginLoader.loadSpecificPlugin(
            config.getString("tsd.core.authentication.plugin"), Authentication.class);
        if (authentication == null) {
          throw new IllegalArgumentException("Unable to locate authentication "
              + "plugin: " + config.getString("tsd.core.authentication.plugin"));
        }
        try {
          authentication.initialize(this);
        } catch (Exception e) {
          throw new RuntimeException("Failed to initialize authentication plugin", e);
        }
      }
  
      // load the search plugin if enabled
      if (config.getBoolean("tsd.search.enable")) {
        search = PluginLoader.loadSpecificPlugin(
            config.getString("tsd.search.plugin"), SearchPlugin.class);
        if (search == null) {
          throw new IllegalArgumentException("Unable to locate search plugin: " +
              config.getString("tsd.search.plugin"));
        }
        try {
          search.initialize(this);
        } catch (Exception e) {
          throw new RuntimeException("Failed to initialize search plugin", e);
        }
        LOG.info("Successfully initialized search plugin [" +
            search.getClass().getCanonicalName() + "] version: "
            + search.version());
      } else {
        search = null;
      }
  
      // load the real time publisher plugin if enabled
      if (config.getBoolean("tsd.rtpublisher.enable")) {
        rt_publisher = PluginLoader.loadSpecificPlugin(
            config.getString("tsd.rtpublisher.plugin"), RTPublisher.class);
        if (rt_publisher == null) {
          throw new IllegalArgumentException(
              "Unable to locate real time publisher plugin: " +
              config.getString("tsd.rtpublisher.plugin"));
        }
        try {
          rt_publisher.initialize(this);
        } catch (Exception e) {
          throw new RuntimeException(
              "Failed to initialize real time publisher plugin", e);
        }
        LOG.info("Successfully initialized real time publisher plugin [" +
            rt_publisher.getClass().getCanonicalName() + "] version: "
            + rt_publisher.version());
      } else {
        rt_publisher = null;
      }
  
      // load the meta cache plugin if enabled
      if (config.getBoolean("tsd.core.meta.cache.enable")) {
        meta_cache = PluginLoader.loadSpecificPlugin(
            config.getString("tsd.core.meta.cache.plugin"), MetaDataCache.class);
        if (meta_cache == null) {
          throw new IllegalArgumentException(
              "Unable to locate meta cache plugin: " +
              config.getString("tsd.core.meta.cache.plugin"));
        }
        try {
          meta_cache.initialize(this);
        } catch (Exception e) {
          throw new RuntimeException(
              "Failed to initialize meta cache plugin", e);
        }
        LOG.info("Successfully initialized meta cache plugin [" +
            meta_cache.getClass().getCanonicalName() + "] version: "
            + meta_cache.version());
      }
  
      // load the storage exception plugin if enabled
      if (config.getBoolean("tsd.core.storage_exception_handler.enable")) {
        storage_exception_handler = PluginLoader.loadSpecificPlugin(
            config.getString("tsd.core.storage_exception_handler.plugin"),
            StorageExceptionHandler.class);
        if (storage_exception_handler == null) {
          throw new IllegalArgumentException(
              "Unable to locate storage exception handler plugin: " +
              config.getString("tsd.core.storage_exception_handler.plugin"));
        }
        try {
          storage_exception_handler.initialize(this);
        } catch (Exception e) {
          throw new RuntimeException(
              "Failed to initialize storage exception handler plugin", e);
        }
        LOG.info("Successfully initialized storage exception handler plugin [" +
            storage_exception_handler.getClass().getCanonicalName() + "] version: "
            + storage_exception_handler.version());
      }
  
      // Writeable Data Point Filter
      if (config.getBoolean("tsd.timeseriesfilter.enable")) {
        ts_filter = PluginLoader.loadSpecificPlugin(
            config.getString("tsd.timeseriesfilter.plugin"),
            WriteableDataPointFilterPlugin.class);
        if (ts_filter == null) {
          throw new IllegalArgumentException(
              "Unable to locate time series filter plugin plugin: " +
              config.getString("tsd.timeseriesfilter.plugin"));
        }
        try {
          ts_filter.initialize(this);
        } catch (Exception e) {
          throw new RuntimeException(
              "Failed to initialize time series filter plugin", e);
        }
        LOG.info("Successfully initialized time series filter plugin [" +
            ts_filter.getClass().getCanonicalName() + "] version: "
            + ts_filter.version());
      }
  
      // UID Filter
      if (config.getBoolean("tsd.uidfilter.enable")) {
        uid_filter = PluginLoader.loadSpecificPlugin(
            config.getString("tsd.uidfilter.plugin"),
            UniqueIdFilterPlugin.class);
        if (uid_filter == null) {
          throw new IllegalArgumentException(
              "Unable to locate UID filter plugin plugin: " +
              config.getString("tsd.uidfilter.plugin"));
        }
        try {
          uid_filter.initialize(this);
        } catch (Exception e) {
          throw new RuntimeException(
              "Failed to initialize UID filter plugin", e);
        }
        LOG.info("Successfully initialized UID filter plugin [" +
            uid_filter.getClass().getCanonicalName() + "] version: "
            + uid_filter.version());
      }
      
      // finally load the histo manager after plugins have been loaded.
      if (config.hasProperty("tsd.core.histograms.config")) {
        histogram_manager = new HistogramCodecManager(this);
      } else {
        histogram_manager = null;
      }
    }