This is an automated email from the ASF dual-hosted git repository.

rong pushed a commit to branch IOTDB-5788
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 50bfd69ece98f288fda1e21ce892b73b6296a88e
Author: Steve Yurong Su <[email protected]>
AuthorDate: Sun Apr 23 21:52:28 2023 +0800

    show pipeplugins: add type column
---
 .../confignode/manager/pipe/PipePluginCoordinator.java      |  2 +-
 .../consensus/request/ConfigPhysicalPlanSerDeTest.java      |  2 +-
 .../apache/iotdb/confignode/persistence/PipeInfoTest.java   |  2 +-
 .../impl/pipe/plugin/CreatePipePluginProcedureTest.java     |  2 +-
 .../apache/iotdb/it/env/cluster/AbstractNodeWrapper.java    |  1 +
 .../iotdb/commons/pipe/plugin/meta/PipePluginMeta.java      | 13 ++++++-------
 .../iotdb/db/mpp/common/header/ColumnHeaderConstant.java    |  2 ++
 .../plan/execution/config/metadata/ShowPipePluginsTask.java | 11 +++++++++--
 8 files changed, 22 insertions(+), 13 deletions(-)

diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/PipePluginCoordinator.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/PipePluginCoordinator.java
index 91da899463..8943a28e8c 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/PipePluginCoordinator.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/PipePluginCoordinator.java
@@ -69,7 +69,7 @@ public class PipePluginCoordinator {
     final String jarName = req.getJarName();
     final String jarMD5 = req.getJarMD5();
     final PipePluginMeta pipePluginMeta =
-        new PipePluginMeta(pluginName, className, jarName, jarMD5);
+        new PipePluginMeta(pluginName, className, false, jarName, jarMD5);
 
     return 
configManager.getProcedureManager().createPipePlugin(pipePluginMeta, 
req.getJarFile());
   }
diff --git 
a/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
 
b/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
index 675858f1e0..55a2e622aa 100644
--- 
a/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
+++ 
b/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
@@ -1098,7 +1098,7 @@ public class ConfigPhysicalPlanSerDeTest {
   public void CreatePipePluginPlanTest() throws IOException {
     CreatePipePluginPlan createPipePluginPlan =
         new CreatePipePluginPlan(
-            new PipePluginMeta("testPlugin", "org.apache.iotdb.testJar", 
"testJar", "???"),
+            new PipePluginMeta("testPlugin", "org.apache.iotdb.TestJar", 
false, "test.jar", "???"),
             new Binary("123"));
     CreatePipePluginPlan createPipePluginPlan1 =
         (CreatePipePluginPlan)
diff --git 
a/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PipeInfoTest.java
 
b/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PipeInfoTest.java
index 9babc2d872..b532a81a69 100644
--- 
a/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PipeInfoTest.java
+++ 
b/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PipeInfoTest.java
@@ -84,7 +84,7 @@ public class PipeInfoTest {
 
     CreatePipePluginPlan createPipePluginPlan =
         new CreatePipePluginPlan(
-            new PipePluginMeta("testPlugin", "org.apache.iotdb.testJar", 
"testJar", "???"),
+            new PipePluginMeta("testPlugin", "org.apache.iotdb.testJar", 
false, "testJar", "???"),
             new Binary("123"));
     pipeInfo.getPipePluginInfo().createPipePlugin(createPipePluginPlan);
 
diff --git 
a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedureTest.java
 
b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedureTest.java
index 729e3a01f7..103ca7963f 100644
--- 
a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedureTest.java
+++ 
b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedureTest.java
@@ -39,7 +39,7 @@ public class CreatePipePluginProcedureTest {
     DataOutputStream outputStream = new 
DataOutputStream(byteArrayOutputStream);
 
     PipePluginMeta pipePluginMeta =
-        new PipePluginMeta("test", "test.class", "test.jar", "testMD5test");
+        new PipePluginMeta("test", "test.class", false, "test.jar", 
"testMD5test");
     CreatePipePluginProcedure proc =
         new CreatePipePluginProcedure(pipePluginMeta, new byte[] {1, 2, 3});
 
diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/AbstractNodeWrapper.java
 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/AbstractNodeWrapper.java
index a7bd8513cb..62a859bd45 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/AbstractNodeWrapper.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/AbstractNodeWrapper.java
@@ -127,6 +127,7 @@ public abstract class AbstractNodeWrapper implements 
BaseNodeWrapper {
     // these properties can't be mutated.
     immutableCommonProperties.setProperty("udf_lib_dir", 
MppBaseConfig.NULL_VALUE);
     immutableCommonProperties.setProperty("trigger_lib_dir", 
MppBaseConfig.NULL_VALUE);
+    immutableCommonProperties.setProperty("pipe_lib_dir", 
MppBaseConfig.NULL_VALUE);
     immutableCommonProperties.setProperty("mqtt_host", 
MppBaseConfig.NULL_VALUE);
     immutableCommonProperties.setProperty("mqtt_port", 
MppBaseConfig.NULL_VALUE);
     immutableCommonProperties.setProperty("rest_service_port", 
MppBaseConfig.NULL_VALUE);
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/pipe/plugin/meta/PipePluginMeta.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/pipe/plugin/meta/PipePluginMeta.java
index 5b11cd4d44..8ad59f7204 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/pipe/plugin/meta/PipePluginMeta.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/pipe/plugin/meta/PipePluginMeta.java
@@ -39,11 +39,12 @@ public class PipePluginMeta {
   private final String jarName;
   private final String jarMD5;
 
-  public PipePluginMeta(String pluginName, String className, String jarName, 
String jarMD5) {
+  public PipePluginMeta(
+      String pluginName, String className, boolean isBuiltin, String jarName, 
String jarMD5) {
     this.pluginName = Objects.requireNonNull(pluginName).toUpperCase();
     this.className = Objects.requireNonNull(className);
 
-    isBuiltin = false;
+    this.isBuiltin = isBuiltin;
     this.jarName = Objects.requireNonNull(jarName);
     this.jarMD5 = Objects.requireNonNull(jarMD5);
   }
@@ -84,13 +85,10 @@ public class PipePluginMeta {
     return ByteBuffer.wrap(byteArrayOutputStream.getBuf(), 0, 
byteArrayOutputStream.size());
   }
 
-  /**
-   * All built-in plugins' information is kept in Java class {@code 
BuiltinPipePlugin }. So we never
-   * serialize the built-in plugins, then we don't need to serialize the 
isBuiltin field.
-   */
   public void serialize(DataOutputStream outputStream) throws IOException {
     ReadWriteIOUtils.write(pluginName, outputStream);
     ReadWriteIOUtils.write(className, outputStream);
+    ReadWriteIOUtils.write(isBuiltin, outputStream);
     ReadWriteIOUtils.write(jarName, outputStream);
     ReadWriteIOUtils.write(jarMD5, outputStream);
   }
@@ -98,9 +96,10 @@ public class PipePluginMeta {
   public static PipePluginMeta deserialize(ByteBuffer byteBuffer) {
     final String pluginName = ReadWriteIOUtils.readString(byteBuffer);
     final String className = ReadWriteIOUtils.readString(byteBuffer);
+    final boolean isBuiltin = ReadWriteIOUtils.readBool(byteBuffer);
     final String jarName = ReadWriteIOUtils.readString(byteBuffer);
     final String jarMD5 = ReadWriteIOUtils.readString(byteBuffer);
-    return new PipePluginMeta(pluginName, className, jarName, jarMD5);
+    return new PipePluginMeta(pluginName, className, isBuiltin, jarName, 
jarMD5);
   }
 
   public static PipePluginMeta deserialize(InputStream inputStream) throws 
IOException {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
index bab90568f3..7f2e41bf82 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
@@ -98,6 +98,7 @@ public class ColumnHeaderConstant {
 
   // column names for show pipe plugins statement
   public static final String PLUGIN_NAME = "PluginName";
+  public static final String PLUGIN_TYPE = "PluginType";
   public static final String PLUGIN_JAR = "PluginJar";
 
   // show cluster status
@@ -354,6 +355,7 @@ public class ColumnHeaderConstant {
   public static final List<ColumnHeader> showPipePluginsColumnHeaders =
       ImmutableList.of(
           new ColumnHeader(PLUGIN_NAME, TSDataType.TEXT),
+          new ColumnHeader(PLUGIN_TYPE, TSDataType.TEXT),
           new ColumnHeader(CLASS_NAME, TSDataType.TEXT),
           new ColumnHeader(PLUGIN_JAR, TSDataType.TEXT));
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowPipePluginsTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowPipePluginsTask.java
index a2900d6d97..9bb5f2a5c5 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowPipePluginsTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowPipePluginsTask.java
@@ -42,6 +42,9 @@ import java.util.stream.Collectors;
 
 public class ShowPipePluginsTask implements IConfigTask {
 
+  private static final Binary PIPE_PLUGIN_TYPE_BUILTIN = 
Binary.valueOf("Builtin");
+  private static final Binary PIPE_PLUGIN_TYPE_EXTERNAL = 
Binary.valueOf("External");
+
   @Override
   public ListenableFuture<ConfigTaskResult> execute(IConfigTaskExecutor 
configTaskExecutor)
       throws InterruptedException {
@@ -66,8 +69,12 @@ public class ShowPipePluginsTask implements IConfigTask {
     for (final PipePluginMeta pipePluginMeta : pipePluginMetaList) {
       builder.getTimeColumnBuilder().writeLong(0L);
       
builder.getColumnBuilder(0).writeBinary(Binary.valueOf(pipePluginMeta.getPluginName()));
-      
builder.getColumnBuilder(1).writeBinary(Binary.valueOf(pipePluginMeta.getClassName()));
-      
builder.getColumnBuilder(2).writeBinary(Binary.valueOf(pipePluginMeta.getJarName()));
+      builder
+          .getColumnBuilder(1)
+          .writeBinary(
+              pipePluginMeta.isBuiltin() ? PIPE_PLUGIN_TYPE_BUILTIN : 
PIPE_PLUGIN_TYPE_EXTERNAL);
+      
builder.getColumnBuilder(2).writeBinary(Binary.valueOf(pipePluginMeta.getClassName()));
+      
builder.getColumnBuilder(3).writeBinary(Binary.valueOf(pipePluginMeta.getJarName()));
       builder.declarePosition();
     }
 

Reply via email to