This is an automated email from the ASF dual-hosted git repository.
jt2594838 pushed a change to branch remove_swtich_type
in repository https://gitbox.apache.org/repos/asf/iotdb.git
from d5f06e61d08 multiple refactors
add 34528ad93d3 Stop publishing standalone CLI and node distributions
(#18622)
add 1151ba762ff Fix TVList iterator state across memtable page switches
(#18647)
add 11470dafb6f Fix WAL roll recovery after closed channel (#18653)
add fefbbbcf0fa [Subscription] Balance consensus ownership and report WAL
backlog (#18641)
add e967831ca2a [Pipe] Drop builtin sinks synchronously (#18646)
add 016d58b47fb [Subscription] Relax group credentials and report
connection failures (#18658)
add 76796db4782 [Subscription] Bound consumer close when server is
unresponsive (#18659)
add 25bf38eba0c [Query] Fix result-column OOM diagnostics (#18661)
add 2b6d628e022 [Pipe] Fix deletion buffer close flush race (#18662)
add 5b9e8868c47 [ConfigNode] Skip non-existent and duplicate region IDs
during reconstruction (#18664)
add 5d67dae28c8 Fix init of DeviceEntryBatchSizeInBytes config when there
is no properties file (#18660)
add c611a389e7d Fix table model JDBC example TTL retrieval (#18669)
add 87a6d198a90 Allow removing regions from read-only DataNodes (#18670)
add 7310b2bc0eb Fix oversized Load TsFile piece dispatch (#18627)
add 6709dfa9494 Fix concurrent subscription consumer handshakes (#18654)
add 0862ecb1d1c Fix Surefire fork port isolation (#18676)
add 957204481d9 Fragment large TsBlocks in MPP DataExchange responses
(#18645)
add d2fcb5383ab Fix delayed query cleanup during file metadata scans
(#18679)
add 61f2014ded8 Fix client manager metrics and JMX lifecycle races (#18681)
add 94329e01692 [Pipe] Move OPC UA sink to pipe library (#18464)
add 5aae6697fba [Pipe] Avoid no-op consensus writes for covered progress
(#18574)
add 76005c94103 Avoid holding ProcedureManager lock while waiting for
table tasks (#18673)
add 9be80ead1dc Fix PathPatternNode wildcard cache lifecycle (#18672)
add 310ddaa3008 Merge remote-tracking branch 'origin/master' into
remove_swtich_type
add 5fdbfc7b3b2 Fix OPC UA TypeService integration after master merge
No new revisions were added by this update.
Summary of changes:
.github/scripts/test-edge-ops.py | 2 -
LICENSE-binary | 18 +
distribution/pom.xml | 15 +-
distribution/src/assembly/cli.xml | 74 ---
distribution/src/assembly/confignode.xml | 92 ----
distribution/src/assembly/datanode.xml | 94 ----
...{external-service-impl.xml => library-pipe.xml} | 12 +-
docker/ReadMe.md | 17 +-
docker/src/main/DockerCompose/do-docker-build.sh | 6 +-
docker/src/main/Dockerfile-1.0.0-confignode | 2 +-
docker/src/main/Dockerfile-1.0.0-datanode | 5 +-
.../org/apache/iotdb/TableModelJDBCExample.java | 8 +-
example/pom.xml | 1 -
integration-test/pom.xml | 7 +
.../it/env/cluster/config/MppConfigNodeConfig.java | 6 +
.../it/env/cluster/config/MppDataNodeConfig.java | 15 +
.../env/remote/config/RemoteConfigNodeConfig.java | 5 +
.../it/env/remote/config/RemoteDataNodeConfig.java | 11 +
.../apache/iotdb/itbase/env/ConfigNodeConfig.java | 2 +
.../apache/iotdb/itbase/env/DataNodeConfig.java | 4 +
.../iotdb/pipe/it/single/AbstractPipeSingleIT.java | 70 ++-
.../iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java | 17 +-
...AbstractIoTDBMPPDataExchangeLargeTsBlockIT.java | 98 ++++
.../IoTDBMPPDataExchangeLargeTsBlock128KIT.java} | 18 +-
.../java/org/apache/iotdb/rpc/TSStatusCode.java | 1 +
.../apache/iotdb/session/SessionConnection.java | 26 +
.../iotdb/session/SessionConnectionTest.java | 19 +
.../subscription/i18n/SubscriptionMessages.java | 2 +
.../subscription/i18n/SubscriptionMessages.java | 2 +
.../rpc/subscription/config/ConsumerConfig.java | 4 +
.../rpc/subscription/config/ConsumerConstant.java | 1 +
...va => SubscriptionConsumerFencedException.java} | 17 +-
.../SubscriptionSessionConnection.java | 8 +
.../base/AbstractSubscriptionConsumer.java | 235 ++++++---
.../base/AbstractSubscriptionProvider.java | 113 +++-
.../base/AbstractSubscriptionProviders.java | 117 ++++-
.../base/AbstractSubscriptionPullConsumer.java | 100 ++--
.../base/AbstractSubscriptionPushConsumer.java | 24 +-
.../SubscriptionSessionConnectionTimeoutTest.java | 148 ++++++
.../SubscriptionConsumerConnectionFailureTest.java | 167 ++++++
.../base/SubscriptionConsumerLifecycleTest.java | 376 ++++++++++++-
.../base/SubscriptionProviderStatusTest.java | 72 +++
.../iotdb/confignode/i18n/ManagerMessages.java | 8 +
.../iotdb/confignode/i18n/ManagerMessages.java | 8 +
.../iotdb/confignode/manager/ProcedureManager.java | 82 +--
.../manager/partition/PartitionManager.java | 21 +-
.../runtime/heartbeat/PipeHeartbeatParser.java | 20 +-
.../persistence/subscription/SubscriptionInfo.java | 8 +-
.../ProcedureManagerReconstructRegionTest.java | 190 +++++++
.../manager/ProcedureManagerTableTaskTest.java | 225 ++++++++
.../runtime/heartbeat/PipeHeartbeatParserTest.java | 86 +++
iotdb-core/datanode/pom.xml | 24 -
.../apache/iotdb/db/i18n/DataNodeMiscMessages.java | 12 +
.../apache/iotdb/db/i18n/DataNodePipeMessages.java | 6 +
.../iotdb/db/i18n/DataNodeQueryMessages.java | 31 ++
.../iotdb/db/i18n/StorageEngineMessages.java | 17 +
.../apache/iotdb/db/i18n/DataNodeMiscMessages.java | 12 +
.../apache/iotdb/db/i18n/DataNodePipeMessages.java | 6 +
.../iotdb/db/i18n/DataNodeQueryMessages.java | 30 ++
.../iotdb/db/i18n/StorageEngineMessages.java | 17 +
.../apache/iotdb/db/conf/DataNodeMemoryConfig.java | 42 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 24 +-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 96 ++--
.../dataregion/PipeDataRegionSinkConstructor.java | 3 -
.../agent/task/subtask/sink/PipeSinkSubtask.java | 59 ++-
.../task/subtask/sink/PipeSinkSubtaskManager.java | 4 +-
.../deletion/persist/PageCacheDeletionBuffer.java | 67 ++-
.../db/pipe/sink/protocol/opcda/OpcDaSink.java | 9 +-
.../sink/util/PipeTabletEventTransferUtils.java | 97 ++++
.../impl/DataNodeInternalRPCServiceImpl.java | 41 +-
.../db/queryengine/common/MPPQueryContext.java | 47 +-
.../execution/exchange/MPPDataExchangeManager.java | 44 ++
.../execution/exchange/sink/SinkChannel.java | 49 +-
.../execution/exchange/source/SourceHandle.java | 158 +++++-
.../execution/operator/source/SeriesScanUtil.java | 24 +
.../plan/planner/LocalExecutionPlanner.java | 10 +-
.../memory/OperatorMemoryNotEnoughException.java} | 24 +-
.../metadata/fetcher/TableDeviceSchemaFetcher.java | 3 +-
.../distribute/TableDistributedPlanGenerator.java | 10 +-
.../scheduler/load/LoadTsFileDispatcherImpl.java | 169 ++++--
.../iotdb/db/storageengine/StorageEngine.java | 32 ++
.../dataregion/wal/buffer/AbstractWALBuffer.java | 39 +-
.../dataregion/wal/buffer/WALBuffer.java | 81 ++-
.../storageengine/dataregion/wal/io/LogWriter.java | 39 +-
.../storageengine/dataregion/wal/io/WALWriter.java | 5 +-
.../db/storageengine/load/LoadTsFileManager.java | 67 ++-
.../load/LoadTsFilePieceNodeAssembler.java | 170 ++++++
.../agent/SubscriptionReceiverAgent.java | 86 ++-
.../broker/ConsensusSubscriptionBroker.java | 171 ++++--
.../consensus/ConsensusPrefetchingQueue.java | 18 +-
.../receiver/SubscriptionReceiver.java | 8 +
.../receiver/SubscriptionReceiverV1.java | 42 +-
.../task/subtask/SubscriptionSinkSubtask.java | 5 +-
.../org/apache/iotdb/db/utils/TypeServices.java | 102 ----
.../iotdb/db/utils/datastructure/TVList.java | 6 +-
.../org/apache/iotdb/db/conf/PropertiesTest.java | 43 +-
.../subtask/sink/PipeSinkSubtaskManagerTest.java | 3 +-
.../task/subtask/sink/PipeSinkSubtaskTest.java | 123 ++++-
.../persist/PageCacheDeletionBufferTest.java | 88 ++++
.../apache/iotdb/db/pipe/sink/PipeSinkTest.java | 93 ----
.../DataNodeInternalRPCServiceImplLoadTest.java | 94 ++++
.../db/queryengine/common/MPPQueryContextTest.java | 58 +++
.../execution/exchange/SinkChannelTest.java | 16 +-
.../execution/exchange/SourceHandleTest.java | 185 ++++++-
.../db/queryengine/execution/exchange/Utils.java | 7 +
.../source/SeriesScanUtilCancellationTest.java | 399 ++++++++++++++
.../load/LoadTsFileDispatcherImplTest.java | 225 ++++++++
.../memtable/AlignedTVListIteratorTest.java | 86 +++
.../memtable/NonAlignedTVListIteratorTest.java | 72 +++
.../wal/buffer/WALBufferRollRecoveryTest.java | 300 +++++++++++
.../dataregion/wal/io/WALFileTest.java | 15 +
.../load/LoadTsFilePieceNodeAssemblerTest.java | 215 ++++++++
.../agent/SubscriptionReceiverAgentTest.java | 361 ++++++++++++-
.../ConsensusSubscriptionBrokerOwnershipTest.java | 192 +++++++
.../consensus/ConsensusPrefetchingQueueTest.java | 54 ++
.../receiver/SubscriptionReceiverV1Test.java | 41 ++
.../apache/iotdb/db/utils/TypeServicesTest.java | 13 -
iotdb-core/metrics/core/pom.xml | 5 +
.../metrics/core/reporter/IoTDBJmxReporter.java | 115 ++--
.../iotdb/metrics/core/type/IoTDBAutoGauge.java | 5 +-
.../core/utils/IoTDBMetricObjNameFactory.java | 38 +-
.../metrics/core/utils/ObjectNameFactory.java | 45 ++
.../metrics/core/MetricManagerLifecycleTest.java | 339 ++++++++++++
.../core/reporter/IoTDBJmxReporterTest.java | 205 ++++++++
.../metrics/core/type/IoTDBAutoGaugeTest.java | 68 +++
.../core/utils/IoTDBMetricObjNameFactoryTest.java | 123 +++++
.../iotdb/metrics/AbstractMetricManager.java | 215 +++++---
.../conf/iotdb-system.properties.template | 7 +
.../apache/iotdb/commons/i18n/ClientMessages.java | 3 +
.../apache/iotdb/commons/i18n/ClientMessages.java | 3 +
.../commons/audit/UserDataTransferErrorCode.java | 3 +-
.../apache/iotdb/commons/client/ClientManager.java | 19 +-
.../iotdb/commons/client/ClientManagerMetrics.java | 200 +++----
.../apache/iotdb/commons/path/PathPatternNode.java | 31 +-
.../apache/iotdb/commons/path/PathPatternUtil.java | 6 +-
.../agent/plugin/builtin/BuiltinPipePlugin.java | 36 +-
.../agent/plugin/builtin/sink/opcua/OpcUaSink.java | 34 --
.../pipe/config/constant/PipeSinkConstant.java | 7 +-
.../meta/consumer/ConsumerGroupMeta.java | 31 +-
.../commons/client/ClientManagerMetricsTest.java | 580 +++++++++++++++++++++
.../iotdb/commons/path/PathPatternNodeTest.java | 71 +++
.../service/metric/MetricReporterSwitchTest.java | 166 ++++++
.../consumer/ConsumerGroupDeSerTest.java | 26 +
.../src/main/thrift/datanode.thrift | 11 +
.../opc-ua-sink-example}/pom.xml | 21 +-
.../java/org/apache/iotdb/opcua/ClientExample.java | 0
.../apache/iotdb/opcua/ClientExampleRunner.java | 0
.../java/org/apache/iotdb/opcua/ClientTest.java | 0
.../iotdb/opcua/IoTDBKeyStoreLoaderClient.java | 0
library-pipe/opc-ua-sink/README.md | 82 +++
.../mqtt => library-pipe/opc-ua-sink}/pom.xml | 139 +++--
.../iotdb/pipe/plugin/sink}/opcua/OpcUaSink.java | 91 +---
.../plugin/sink}/opcua/client/ClientRunner.java | 2 +-
.../opcua/client/IoTDBKeyStoreLoaderClient.java | 2 +-
.../sink}/opcua/client/IoTDBOpcUaClient.java | 10 +-
.../sink}/opcua/server/OpcUaKeyStoreLoader.java | 2 +-
.../plugin/sink}/opcua/server/OpcUaNameSpace.java | 13 +-
.../sink}/opcua/server/OpcUaServerBuilder.java | 2 +-
.../sink/opcua/server/OpcUaTypeServices.java | 145 ++++++
.../pipe/plugin/sink/opcua/OpcUaSinkTest.java | 285 ++++++++++
.../sink}/opcua/OpcUaSinkTsFileMetadataTest.java | 2 +-
.../opcua/OpcUaSinkTsFilePerformanceTest.java | 6 +-
.../sink}/opcua/client/ClientRunnerTest.java | 2 +-
.../sink}/opcua/client/IoTDBOpcUaClientTest.java | 4 +-
.../opcua/server/OpcUaNameSpaceMetadataTest.java | 4 +-
.../sink}/opcua/server/OpcUaServerBuilderTest.java | 2 +-
.../server/OpcUaTcpNoneCompatibilityTest.java | 2 +-
.../sink/opcua/server/OpcUaTypeServicesTest.java | 32 +-
{external-service-impl => library-pipe}/pom.xml | 59 ++-
licenses/Bouncy Castle Licence | 17 +
pom.xml | 31 +-
171 files changed, 9116 insertions(+), 1599 deletions(-)
delete mode 100644 distribution/src/assembly/cli.xml
delete mode 100644 distribution/src/assembly/confignode.xml
delete mode 100644 distribution/src/assembly/datanode.xml
copy distribution/src/assembly/{external-service-impl.xml => library-pipe.xml}
(74%)
create mode 100644
integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/AbstractIoTDBMPPDataExchangeLargeTsBlockIT.java
copy
integration-test/src/test/java/org/apache/iotdb/relational/it/query/{old/alignbydevice/IoTDBAlignByDeviceWithTemplateTable2IT.java
=> recent/IoTDBMPPDataExchangeLargeTsBlock128KIT.java} (73%)
copy
iotdb-client/subscription/src/main/java/org/apache/iotdb/rpc/subscription/exception/{SubscriptionParameterNotValidException.java
=> SubscriptionConsumerFencedException.java} (60%)
create mode 100644
iotdb-client/subscription/src/test/java/org/apache/iotdb/session/subscription/SubscriptionSessionConnectionTimeoutTest.java
create mode 100644
iotdb-client/subscription/src/test/java/org/apache/iotdb/session/subscription/consumer/base/SubscriptionConsumerConnectionFailureTest.java
create mode 100644
iotdb-client/subscription/src/test/java/org/apache/iotdb/session/subscription/consumer/base/SubscriptionProviderStatusTest.java
create mode 100644
iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/manager/ProcedureManagerReconstructRegionTest.java
create mode 100644
iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/manager/ProcedureManagerTableTaskTest.java
create mode 100644
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/PipeTabletEventTransferUtils.java
copy
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/{storageengine/dataregion/compaction/execute/exception/CompactionMemoryNotEnoughException.java
=> queryengine/plan/planner/memory/OperatorMemoryNotEnoughException.java} (56%)
create mode 100644
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/LoadTsFilePieceNodeAssembler.java
create mode 100644
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/deletion/persist/PageCacheDeletionBufferTest.java
create mode 100644
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImplLoadTest.java
create mode 100644
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtilCancellationTest.java
create mode 100644
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBufferRollRecoveryTest.java
create mode 100644
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/load/LoadTsFilePieceNodeAssemblerTest.java
create mode 100644
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/subscription/broker/ConsensusSubscriptionBrokerOwnershipTest.java
create mode 100644
iotdb-core/metrics/core/src/test/java/org/apache/iotdb/metrics/core/MetricManagerLifecycleTest.java
create mode 100644
iotdb-core/metrics/core/src/test/java/org/apache/iotdb/metrics/core/reporter/IoTDBJmxReporterTest.java
create mode 100644
iotdb-core/metrics/core/src/test/java/org/apache/iotdb/metrics/core/type/IoTDBAutoGaugeTest.java
create mode 100644
iotdb-core/metrics/core/src/test/java/org/apache/iotdb/metrics/core/utils/IoTDBMetricObjNameFactoryTest.java
delete mode 100644
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/plugin/builtin/sink/opcua/OpcUaSink.java
create mode 100644
iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/client/ClientManagerMetricsTest.java
create mode 100644
iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/path/PathPatternNodeTest.java
create mode 100644
iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/service/metric/MetricReporterSwitchTest.java
rename {example/pipe-opc-ua-sink => library-pipe/opc-ua-sink-example}/pom.xml
(82%)
rename {example/pipe-opc-ua-sink =>
library-pipe/opc-ua-sink-example}/src/main/java/org/apache/iotdb/opcua/ClientExample.java
(100%)
rename {example/pipe-opc-ua-sink =>
library-pipe/opc-ua-sink-example}/src/main/java/org/apache/iotdb/opcua/ClientExampleRunner.java
(100%)
rename {example/pipe-opc-ua-sink =>
library-pipe/opc-ua-sink-example}/src/main/java/org/apache/iotdb/opcua/ClientTest.java
(100%)
rename {example/pipe-opc-ua-sink =>
library-pipe/opc-ua-sink-example}/src/main/java/org/apache/iotdb/opcua/IoTDBKeyStoreLoaderClient.java
(100%)
create mode 100644 library-pipe/opc-ua-sink/README.md
copy {external-service-impl/mqtt => library-pipe/opc-ua-sink}/pom.xml (57%)
rename
{iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink}/opcua/OpcUaSink.java
(91%)
rename
{iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink}/opcua/client/ClientRunner.java
(99%)
rename
{iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink}/opcua/client/IoTDBKeyStoreLoaderClient.java
(98%)
rename
{iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink}/opcua/client/IoTDBOpcUaClient.java
(98%)
rename
{iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink}/opcua/server/OpcUaKeyStoreLoader.java
(98%)
rename
{iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink}/opcua/server/OpcUaNameSpace.java
(98%)
rename
{iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink}/opcua/server/OpcUaServerBuilder.java
(99%)
create mode 100644
library-pipe/opc-ua-sink/src/main/java/org/apache/iotdb/pipe/plugin/sink/opcua/server/OpcUaTypeServices.java
create mode 100644
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink/opcua/OpcUaSinkTest.java
rename
{iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink}/opcua/OpcUaSinkTsFileMetadataTest.java
(99%)
rename
{iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink}/opcua/OpcUaSinkTsFilePerformanceTest.java
(98%)
rename
{iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink}/opcua/client/ClientRunnerTest.java
(98%)
rename
{iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink}/opcua/client/IoTDBOpcUaClientTest.java
(99%)
rename
{iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink}/opcua/server/OpcUaNameSpaceMetadataTest.java
(98%)
rename
{iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink}/opcua/server/OpcUaServerBuilderTest.java
(99%)
rename
{iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/protocol =>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink}/opcua/server/OpcUaTcpNoneCompatibilityTest.java
(98%)
copy
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/EncodingInferenceUtils.java
=>
library-pipe/opc-ua-sink/src/test/java/org/apache/iotdb/pipe/plugin/sink/opcua/server/OpcUaTypeServicesTest.java
(55%)
copy {external-service-impl => library-pipe}/pom.xml (50%)
create mode 100644 licenses/Bouncy Castle Licence