public void doRegister(PipePluginMeta pipePluginMeta) throws PipeException {
    final String pluginName = pipePluginMeta.getPluginName();
    final String className = pipePluginMeta.getClassName();

    try {
      PipePluginClassLoaderManager classLoaderManager = PipePluginClassLoaderManager.getInstance();
      String pluginDirPath =
          PipePluginExecutableManager.getInstance().getPluginsDirPath(pluginName);
      final PipePluginClassLoader pipePluginClassLoader =
          classLoaderManager.createPipePluginClassLoader(pluginDirPath);

      final Class<?> pluginClass = Class.forName(className, true, pipePluginClassLoader);

      @SuppressWarnings("unused") // ensure that it is a PipePlugin class
      final PipePlugin ignored = (PipePlugin) pluginClass.getDeclaredConstructor().newInstance();

      pipePluginMetaKeeper.addPipePluginMeta(pluginName, pipePluginMeta);
      pipePluginMetaKeeper.addPipePluginVisibility(
          pluginName, VisibilityUtils.calculateFromPluginClass(pluginClass));
      classLoaderManager.addPluginAndClassLoader(pluginName, pipePluginClassLoader);
    } catch (IOException
        | InstantiationException
        | InvocationTargetException
        | NoSuchMethodException
        | IllegalAccessException
        | ClassNotFoundException
        | ClassCastException e) {
      String errorMessage =
          String.format(
              "Failed to register PipePlugin %s(%s), because "
                  + "its instance can not be constructed successfully. Exception: %s",
              pluginName.toUpperCase(), className, e);
      LOGGER.warn(errorMessage, e);
      throw new PipeException(errorMessage);
    }
  }
Register a PipePlugin to the system without any meta checks. The PipePlugin will be loaded by
the PipePluginClassLoader and its instance will be created to ensure that it can be loaded.

@param pipePluginMeta the meta information of the PipePlugin
@throws PipeException if the PipePlugin can not be loaded or its instance can not be created
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/plugin/PipeDataNodePluginAgent.java