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(); }
