From 67d8d768d7a7e2b023df90003592cb29295b97a4 Mon Sep 17 00:00:00 2001
From: qianmoQ
Date: Thu, 20 Apr 2023 13:41:43 +0800
Subject: [PATCH] [Plugin] Support starrocks
---
README.md | 3 +
core/datacap-server/pom.xml | 5 ++
.../src/main/etc/conf/plugins/jdbc/doris.yaml | 2 +-
.../main/etc/conf/plugins/jdbc/starrocks.yaml | 31 +++++++
.../spi/connection/JdbcConnection.java | 7 +-
.../public/static/images/plugin/StarRocks.png | Bin 0 -> 5250 bytes
docs/docs/assets/plugin/starrocks.png | Bin 0 -> 8166 bytes
docs/docs/index.md | 3 +
docs/docs/index.zh.md | 3 +
.../reference/connectors/jdbc/starrocks.md | 57 ++++++++++++
.../reference/connectors/jdbc/starrocks.zh.md | 57 ++++++++++++
docs/mkdocs.yml | 1 +
plugin/datacap-jdbc-starrocks/pom.xml | 82 ++++++++++++++++++
.../plugin/jdbc/starrocks/StarRocksPlugin.kt | 66 ++++++++++++++
.../jdbc/starrocks/StarRocksPluginModule.kt | 28 ++++++
.../io.edurt.datacap.spi.PluginModule | 1 +
.../jdbc/starrocks/StarRocksContainer.kt | 26 ++++++
.../starrocks/StarRocksPluginModuleTest.kt | 29 +++++++
.../jdbc/starrocks/StarRocksPluginTest.kt | 71 +++++++++++++++
pom.xml | 31 ++++---
20 files changed, 488 insertions(+), 15 deletions(-)
create mode 100644 core/datacap-server/src/main/etc/conf/plugins/jdbc/starrocks.yaml
create mode 100644 core/datacap-web/console-fe/public/static/images/plugin/StarRocks.png
create mode 100644 docs/docs/assets/plugin/starrocks.png
create mode 100644 docs/docs/reference/connectors/jdbc/starrocks.md
create mode 100644 docs/docs/reference/connectors/jdbc/starrocks.zh.md
create mode 100644 plugin/datacap-jdbc-starrocks/pom.xml
create mode 100644 plugin/datacap-jdbc-starrocks/src/main/kotlin/io/edurt/datacap/plugin/jdbc/starrocks/StarRocksPlugin.kt
create mode 100644 plugin/datacap-jdbc-starrocks/src/main/kotlin/io/edurt/datacap/plugin/jdbc/starrocks/StarRocksPluginModule.kt
create mode 100644 plugin/datacap-jdbc-starrocks/src/main/resources/META-INF/services/io.edurt.datacap.spi.PluginModule
create mode 100644 plugin/datacap-jdbc-starrocks/src/test/kotlin/io/edurt/datacap/plugin/jdbc/starrocks/StarRocksContainer.kt
create mode 100644 plugin/datacap-jdbc-starrocks/src/test/kotlin/io/edurt/datacap/plugin/jdbc/starrocks/StarRocksPluginModuleTest.kt
create mode 100644 plugin/datacap-jdbc-starrocks/src/test/kotlin/io/edurt/datacap/plugin/jdbc/starrocks/StarRocksPluginTest.kt
diff --git a/README.md b/README.md
index b7dcde59..ca3aaa2d 100644
--- a/README.md
+++ b/README.md
@@ -163,6 +163,9 @@ Here are some of the major database solutions that are supported:
+
+
+
diff --git a/core/datacap-server/pom.xml b/core/datacap-server/pom.xml
index a7f2223f..1ae3af04 100644
--- a/core/datacap-server/pom.xml
+++ b/core/datacap-server/pom.xml
@@ -335,6 +335,11 @@
datacap-jdbc-doris
${project.version}
+
+ io.edurt.datacap
+ datacap-jdbc-starrocks
+ ${project.version}
+
io.edurt.datacap
diff --git a/core/datacap-server/src/main/etc/conf/plugins/jdbc/doris.yaml b/core/datacap-server/src/main/etc/conf/plugins/jdbc/doris.yaml
index ee0a363a..4f778a35 100644
--- a/core/datacap-server/src/main/etc/conf/plugins/jdbc/doris.yaml
+++ b/core/datacap-server/src/main/etc/conf/plugins/jdbc/doris.yaml
@@ -15,7 +15,7 @@ configures:
required: true
min: 1
max: 65535
- value: 9030
+ value: 9093
message: port is a required field, please be sure to enter
- field: username
type: String
diff --git a/core/datacap-server/src/main/etc/conf/plugins/jdbc/starrocks.yaml b/core/datacap-server/src/main/etc/conf/plugins/jdbc/starrocks.yaml
new file mode 100644
index 00000000..bddd5c5a
--- /dev/null
+++ b/core/datacap-server/src/main/etc/conf/plugins/jdbc/starrocks.yaml
@@ -0,0 +1,31 @@
+name: StarRocks
+supportTime: '2023-04-20'
+configures:
+ - field: name
+ type: String
+ required: true
+ message: name is a required field, please be sure to enter
+ - field: host
+ type: String
+ required: true
+ value: 127.0.0.1
+ message: host is a required field, please be sure to enter
+ - field: port
+ type: Number
+ required: true
+ min: 1
+ max: 65535
+ value: 9030
+ message: port is a required field, please be sure to enter
+ - field: username
+ type: String
+ group: authorization
+ - field: password
+ type: String
+ group: authorization
+ - field: database
+ type: String
+ required: true
+ value: default
+ message: database is a required field, please be sure to enter
+ group: advanced
diff --git a/core/datacap-spi/src/main/java/io/edurt/datacap/spi/connection/JdbcConnection.java b/core/datacap-spi/src/main/java/io/edurt/datacap/spi/connection/JdbcConnection.java
index e4b8ac88..463da544 100644
--- a/core/datacap-spi/src/main/java/io/edurt/datacap/spi/connection/JdbcConnection.java
+++ b/core/datacap-spi/src/main/java/io/edurt/datacap/spi/connection/JdbcConnection.java
@@ -9,6 +9,7 @@ import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.stream.Collectors;
@Slf4j
@@ -74,7 +75,11 @@ public class JdbcConnection
}
else {
log.info("Connection username and password not present");
- this.connection = DriverManager.getConnection(url);
+ Properties properties = new Properties();
+ if (jdbcConfigure.getUsername().isPresent()) {
+ properties.put("user", jdbcConfigure.getUsername().get());
+ }
+ this.connection = DriverManager.getConnection(url, properties);
}
response.setIsConnected(Boolean.TRUE);
}
diff --git a/core/datacap-web/console-fe/public/static/images/plugin/StarRocks.png b/core/datacap-web/console-fe/public/static/images/plugin/StarRocks.png
new file mode 100644
index 0000000000000000000000000000000000000000..4739041effda0df27c8e849dbb423a04b88f0c64
GIT binary patch
literal 5250
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
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk8
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ ${kotlin.version}
+ test
+
@@ -252,32 +264,25 @@
kotlin-maven-plugin
+
+ 1.8
+
org.jetbrains.kotlin
${kotlin.version}
compile
+ compile
compile
-
-
- ${project.basedir}/src/main/kotlin
- ${project.basedir}/src/main/java
-
-
test-compile
+ test-compile
test-compile
-
-
- ${project.basedir}/src/test/kotlin
- ${project.basedir}/src/test/java
-
-