This is an automated email from the ASF dual-hosted git repository.
kirs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 0fec8ca43 [Feature][Connector-V2] Add feishu sink (#2381)
0fec8ca43 is described below
commit 0fec8ca4383100ecab2de5e7e7f38bb256520fa3
Author: TyrantLucifer <[email protected]>
AuthorDate: Mon Aug 8 09:08:03 2022 +0800
[Feature][Connector-V2] Add feishu sink (#2381)
* [Feature][Connector-V2] Add feishu sink (#1946)
* [Feature][Connector-V2] Add feishu sink doc (#1946)
* [Feature][Connector-V2] Add license header in pom (#1946)
* [Feature][Connector-V2] Add feishu connector in dist pom (#1946)
---
docs/en/connector-v2/sink/Feishu.md | 37 ++++++++++++++++++++++
plugin-mapping.properties | 5 +--
seatunnel-connectors-v2-dist/pom.xml | 7 +++-
.../{ => connector-http-base}/pom.xml | 4 +--
.../seatunnel/http/client/HttpClientProvider.java | 0
.../seatunnel/http/client/HttpResponse.java | 0
.../seatunnel/http/config/HttpConfig.java | 0
.../seatunnel/http/config/HttpParameter.java | 0
.../connectors/seatunnel/http/sink/HttpSink.java | 0
.../seatunnel/http/sink/HttpSinkWriter.java | 0
.../seatunnel/http/source/HttpSource.java | 0
.../seatunnel/http/source/HttpSourceReader.java | 4 +--
.../{ => connector-http-feishu}/pom.xml | 16 ++--------
.../seatunnel/feishu/sink/FeishuSink.java} | 20 +++++++-----
seatunnel-connectors-v2/connector-http/pom.xml | 23 +++-----------
15 files changed, 69 insertions(+), 47 deletions(-)
diff --git a/docs/en/connector-v2/sink/Feishu.md
b/docs/en/connector-v2/sink/Feishu.md
new file mode 100644
index 000000000..5359cc588
--- /dev/null
+++ b/docs/en/connector-v2/sink/Feishu.md
@@ -0,0 +1,37 @@
+# Feishu
+
+> Feishu sink connector
+
+## Description
+
+Used to launch feishu web hooks using data.
+
+> For example, if the data from upstream is [`age: 12, name: tyrantlucifer`],
the body content is the following: `{"age": 12, "name": "tyrantlucifer"}`
+
+**Tips: Feishu sink only support `post json` webhook and the data from source
will be treated as body content in web hook.**
+
+## Options
+
+| name | type | required | default value |
+| --- |--------| --- | --- |
+| url | String | Yes | - |
+| headers | Map | No | - |
+
+### url [string]
+
+Feishu webhook url
+
+### headers [Map]
+
+Http request headers
+
+## Example
+
+simple:
+
+```hocon
+Feishu {
+ url =
"https://www.feishu.cn/flow/api/trigger-webhook/108bb8f208d9b2378c8c7aedad715c19"
+ }
+```
+
diff --git a/plugin-mapping.properties b/plugin-mapping.properties
index ac7497907..f52f98bee 100644
--- a/plugin-mapping.properties
+++ b/plugin-mapping.properties
@@ -93,8 +93,9 @@ seatunnel.sink.Console = connector-console
seatunnel.sink.Assert = connector-assert
seatunnel.source.Kafka = connector-kafka
seatunnel.sink.Kafka = connector-kafka
-seatunnel.source.Http = connector-http
-seatunnel.sink.Http = connector-http
+seatunnel.source.Http = connector-http-base
+seatunnel.sink.Http = connector-http-base
+seatunnel.sink.Feishu = connector-http-feishu
seatunnel.source.Socket = connector-socket
seatunnel.sink.Hive = connector-hive
seatunnel.source.Hive = connector-hive
diff --git a/seatunnel-connectors-v2-dist/pom.xml
b/seatunnel-connectors-v2-dist/pom.xml
index 059158a7c..00f4af6d5 100644
--- a/seatunnel-connectors-v2-dist/pom.xml
+++ b/seatunnel-connectors-v2-dist/pom.xml
@@ -53,7 +53,12 @@
</dependency>
<dependency>
<groupId>org.apache.seatunnel</groupId>
- <artifactId>connector-http</artifactId>
+ <artifactId>connector-http-base</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.seatunnel</groupId>
+ <artifactId>connector-http-feishu</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
diff --git a/seatunnel-connectors-v2/connector-http/pom.xml
b/seatunnel-connectors-v2/connector-http/connector-http-base/pom.xml
similarity index 94%
copy from seatunnel-connectors-v2/connector-http/pom.xml
copy to seatunnel-connectors-v2/connector-http/connector-http-base/pom.xml
index 5b3833825..521cb2bfa 100644
--- a/seatunnel-connectors-v2/connector-http/pom.xml
+++ b/seatunnel-connectors-v2/connector-http/connector-http-base/pom.xml
@@ -21,13 +21,13 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
- <artifactId>seatunnel-connectors-v2</artifactId>
+ <artifactId>connector-http</artifactId>
<groupId>org.apache.seatunnel</groupId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>connector-http</artifactId>
+ <artifactId>connector-http-base</artifactId>
<dependencies>
<dependency>
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpClientProvider.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpClientProvider.java
similarity index 100%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpClientProvider.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpClientProvider.java
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpResponse.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpResponse.java
similarity index 100%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpResponse.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/client/HttpResponse.java
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpConfig.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpConfig.java
similarity index 100%
copy from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpConfig.java
copy to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpConfig.java
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpParameter.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpParameter.java
similarity index 100%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpParameter.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpParameter.java
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSink.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSink.java
similarity index 100%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSink.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSink.java
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSinkWriter.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSinkWriter.java
similarity index 100%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSinkWriter.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/sink/HttpSinkWriter.java
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSource.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSource.java
similarity index 100%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSource.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSource.java
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
similarity index 95%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
index 2c11ee6d2..12b687791 100644
---
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
+++
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
@@ -17,8 +17,6 @@
package org.apache.seatunnel.connectors.seatunnel.http.source;
-import static
org.apache.seatunnel.connectors.seatunnel.http.client.HttpResponse.STATUS_OK;
-
import org.apache.seatunnel.api.source.Boundedness;
import org.apache.seatunnel.api.source.Collector;
import org.apache.seatunnel.api.table.type.SeaTunnelRow;
@@ -62,7 +60,7 @@ public class HttpSourceReader extends
AbstractSingleSplitReader<SeaTunnelRow> {
public void pollNext(Collector<SeaTunnelRow> output) throws Exception {
try {
HttpResponse response =
httpClient.execute(this.httpParameter.getUrl(), this.httpParameter.getMethod(),
this.httpParameter.getHeaders(), this.httpParameter.getParams());
- if (STATUS_OK == response.getCode()) {
+ if (HttpResponse.STATUS_OK == response.getCode()) {
output.collect(new SeaTunnelRow(new Object[]
{response.getContent()}));
return;
}
diff --git a/seatunnel-connectors-v2/connector-http/pom.xml
b/seatunnel-connectors-v2/connector-http/connector-http-feishu/pom.xml
similarity index 75%
copy from seatunnel-connectors-v2/connector-http/pom.xml
copy to seatunnel-connectors-v2/connector-http/connector-http-feishu/pom.xml
index 5b3833825..ea6acc44c 100644
--- a/seatunnel-connectors-v2/connector-http/pom.xml
+++ b/seatunnel-connectors-v2/connector-http/connector-http-feishu/pom.xml
@@ -21,30 +21,20 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
- <artifactId>seatunnel-connectors-v2</artifactId>
+ <artifactId>connector-http</artifactId>
<groupId>org.apache.seatunnel</groupId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>connector-http</artifactId>
+ <artifactId>connector-http-feishu</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.seatunnel</groupId>
- <artifactId>connector-common</artifactId>
+ <artifactId>connector-http-base</artifactId>
<version>${project.version}</version>
</dependency>
-
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpConfig.java
b/seatunnel-connectors-v2/connector-http/connector-http-feishu/src/main/java/org/apache/seatunnel/connectors/seatunnel/feishu/sink/FeishuSink.java
similarity index 67%
rename from
seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpConfig.java
rename to
seatunnel-connectors-v2/connector-http/connector-http-feishu/src/main/java/org/apache/seatunnel/connectors/seatunnel/feishu/sink/FeishuSink.java
index 29d622619..5656ad11b 100644
---
a/seatunnel-connectors-v2/connector-http/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/config/HttpConfig.java
+++
b/seatunnel-connectors-v2/connector-http/connector-http-feishu/src/main/java/org/apache/seatunnel/connectors/seatunnel/feishu/sink/FeishuSink.java
@@ -15,13 +15,17 @@
* limitations under the License.
*/
-package org.apache.seatunnel.connectors.seatunnel.http.config;
+package org.apache.seatunnel.connectors.seatunnel.feishu.sink;
-public class HttpConfig {
- public static final String URL = "url";
- public static final String METHOD = "method";
- public static final String METHOD_DEFAULT_VALUE = "GET";
- public static final String HEADERS = "headers";
- public static final String PARAMS = "params";
- public static final String BODY = "body";
+import org.apache.seatunnel.api.sink.SeaTunnelSink;
+import org.apache.seatunnel.connectors.seatunnel.http.sink.HttpSink;
+
+import com.google.auto.service.AutoService;
+
+@AutoService(SeaTunnelSink.class)
+public class FeishuSink extends HttpSink {
+ @Override
+ public String getPluginName() {
+ return "Feishu";
+ }
}
diff --git a/seatunnel-connectors-v2/connector-http/pom.xml
b/seatunnel-connectors-v2/connector-http/pom.xml
index 5b3833825..e8fbcadc1 100644
--- a/seatunnel-connectors-v2/connector-http/pom.xml
+++ b/seatunnel-connectors-v2/connector-http/pom.xml
@@ -26,25 +26,12 @@
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
-
<artifactId>connector-http</artifactId>
+ <packaging>pom</packaging>
- <dependencies>
- <dependency>
- <groupId>org.apache.seatunnel</groupId>
- <artifactId>connector-common</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- </dependency>
- </dependencies>
+ <modules>
+ <module>connector-http-base</module>
+ <module>connector-http-feishu</module>
+ </modules>
</project>
\ No newline at end of file