public JarResp getPipePluginJar(final GetPipePluginJarPlan getPipePluginJarPlan) {
    try {
      final List<ByteBuffer> jarList = new ArrayList<>();
      final PipePluginExecutableManager manager = PipePluginExecutableManager.getInstance();

      for (final String jarName : getPipePluginJarPlan.getJarNames()) {
        String pluginName = pipePluginMetaKeeper.getPluginNameByJarName(jarName);
        if (pluginName == null) {
          throw new PipeException(String.format("%s does not exist", jarName));
        }

        String jarPath = manager.getPluginInstallPathV2(pluginName, jarName);

        boolean isJarExistedInV2Dir = Files.exists(Paths.get(jarPath));
        if (!isJarExistedInV2Dir) {
          jarPath = manager.getPluginInstallPathV1(jarName);
        }

        if (!Files.exists(Paths.get(jarPath))) {
          throw new PipeException(String.format("%s does not exist", jarName));
        }

        ByteBuffer byteBuffer = ExecutableManager.transferToBytebuffer(jarPath);
        if (!isJarExistedInV2Dir) {
          pipePluginExecutableManager.savePluginToInstallDir(
              byteBuffer.duplicate(), pluginName, jarName);
        }

        jarList.add(byteBuffer);
      }
      return new JarResp(new TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode()), jarList);
    } catch (final Exception e) {
      LOGGER.error("Get PipePlugin_Jar failed", e);
      return new JarResp(
          new TSStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR.getStatusCode())
              .setMessage("Get PipePlugin_Jar failed, because " + e.getMessage()),
          Collections.emptyList());
    }
  }
@return true if the pipe plugin is not created and the isSetIfExistsCondition is true, false
    otherwise
@throws PipeException if the pipe plugin is not created and the isSetIfExistsCondition is false
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipePluginInfo.java