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

Reply via email to