You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by yu...@apache.org on 2022/06/02 08:58:26 UTC
[rocketmq-connect] 09/10: fix "null" check
This is an automated email from the ASF dual-hosted git repository.
yukon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-connect.git
commit 650b169db61afa4c5629b97b30098d51be23f646
Author: zh378814 <wb...@alibaba-inc.com>
AuthorDate: Thu Jun 2 11:23:27 2022 +0800
fix "null" check
---
.../aliyun/rocketmq-connect-eventbridge/README.md | 5 +++--
.../eventbridge/sink/EventBridgeSinkConnector.java | 7 +++++-
.../eventbridge/sink/EventBridgeSinkTask.java | 11 ++++++----
.../sink/constant/EventBridgeConstant.java | 4 ++--
.../connect/eventbridge/sink/utils/CheckUtils.java | 25 ++++++++++++++++++++++
5 files changed, 43 insertions(+), 9 deletions(-)
diff --git a/connectors/aliyun/rocketmq-connect-eventbridge/README.md b/connectors/aliyun/rocketmq-connect-eventbridge/README.md
index 6aec62f..4d3b966 100644
--- a/connectors/aliyun/rocketmq-connect-eventbridge/README.md
+++ b/connectors/aliyun/rocketmq-connect-eventbridge/README.md
@@ -16,14 +16,14 @@ mvn clean install -Dmaven.test.skip=true
```
http://${runtime-ip}:${runtime-port}/connectors/${rocketmq-eventbridge-sink-connector-name}
?config={"source-rocketmq":"${runtime-ip}:${runtime-port}","source-cluster":"${broker-cluster}","connector-class":"org.apache.rocketmq.connect.eventbridge.sink.EventBridgeSinkConnector",“connect-topicname”:"${connect-topicname}"
-,"stsEndpoint”:"${stsEndpoint}",accessKeyId”:"${accessKeyId}",accessKeySecret”:"${accessKeySecret}",roleArn”:"${roleArn}", "roleSessionName":"${roleSessionName}", "eventTime":"${eventTime}","eventSubject":"${eventSubject}","eventType":"${eventType}","aliyuneventbusname":"${aliyuneventbusname}"}
+,"stsEndpoint”:"${stsEndpoint}",accessKeyId”:"${accessKeyId}",accessKeySecret”:"${accessKeySecret}",roleArn”:"${roleArn}", "roleSessionName":"${roleSessionName}", "eventTime":"${eventTime}","eventSubject":"${eventSubject}","eventType":"${eventType}","eventSource":"${eventSource}","aliyuneventbusname":"${aliyuneventbusname}"}
```
例子
```
http://localhost:8081/connectors/eventbridgeConnectorSink?config={"source-rocketmq":"localhost:9876","source-cluster":"DefaultCluster",
"connector-class":"org.apache.rocketmq.connect.eventbridge.sink.EventBridgeSinkConnector",“connect-topicname”:"eventbridge-topic","stsEndpoint”:"xxxx",accessKeyId”:"xxxx",accessKeySecret”:"xxxx",
-roleArn”:"xxxx", "roleSessionName":"xxxx", "eventTime":"xxxx","eventSubject":"", "eventType":"","aliyuneventbusname":"xxxx"}
+roleArn”:"xxxx", "roleSessionName":"xxxx", "eventTime":"xxxx","eventSubject":"", "eventType":"","eventSource":"","aliyuneventbusname":"xxxx"}
```
>**注:** `rocketmq-eventbridge-connect` 的启动依赖于`rocketmq-connect-runtime`项目的启动,需将打好的所有`jar`包放置到`runtime`项目中`pluginPaths`配置的路径后再执行上面的启动请求,该值配置在`runtime`项目下的`connect.conf`文件中
@@ -48,6 +48,7 @@ http://${runtime-ip}:${runtime-port}/connectors/${rocketmq-eventbridge-connector
|eventTime | String | NO | 事件产生的时间 | xxxx |
|eventSubject | String | YES | 事件主题 | xxxx |
|eventType | String | YES | 事件类型 | xxxx |
+|eventSource | String | YES | 事件源 | xxxx |
|aliyuneventbusname | String | YES | 接收事件的事件总线名称 | xxxx |
|connect-topicname | String | YES | sink需要处理数据消息topic | xxxx |
diff --git a/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkConnector.java b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkConnector.java
index 254567a..0f4af2f 100644
--- a/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkConnector.java
+++ b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkConnector.java
@@ -23,6 +23,8 @@ public class EventBridgeSinkConnector extends SinkConnector {
private String eventTime;
+ private String eventSource;
+
private String eventSubject;
private String eventType;
@@ -57,6 +59,7 @@ public class EventBridgeSinkConnector extends SinkConnector {
keyValue.put(EventBridgeConstant.ACCOUNT_ENDPOINT, accountEndpoint);
keyValue.put(EventBridgeConstant.STS_ENDPOINT, stsEndpoint);
keyValue.put(EventBridgeConstant.EVENT_TYPE, eventType);
+ keyValue.put(EventBridgeConstant.EVENT_SOURCE, eventSource);
keyValueList.add(keyValue);
return keyValueList;
}
@@ -73,7 +76,8 @@ public class EventBridgeSinkConnector extends SinkConnector {
|| StringUtils.isBlank(config.getString(EventBridgeConstant.ACCOUNT_ENDPOINT))
|| StringUtils.isBlank(config.getString(EventBridgeConstant.ALIYUN_EVENT_BUS_NAME))
|| StringUtils.isBlank(config.getString(EventBridgeConstant.EVENT_SUBJECT))
- || StringUtils.isBlank(config.getString(EventBridgeConstant.EVENT_TYPE))) {
+ || StringUtils.isBlank(config.getString(EventBridgeConstant.EVENT_TYPE))
+ || StringUtils.isBlank(config.getString(EventBridgeConstant.EVENT_SOURCE))) {
throw new RuntimeException("EventBridge required parameter is null !");
}
}
@@ -90,6 +94,7 @@ public class EventBridgeSinkConnector extends SinkConnector {
accountEndpoint = config.getString(EventBridgeConstant.ACCOUNT_ENDPOINT);
stsEndpoint = config.getString(EventBridgeConstant.STS_ENDPOINT);
eventType = config.getString(EventBridgeConstant.EVENT_TYPE);
+ eventSource = config.getString(EventBridgeConstant.EVENT_SOURCE);
}
@Override
diff --git a/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkTask.java b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkTask.java
index 4a4fc74..95880b2 100644
--- a/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkTask.java
+++ b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/EventBridgeSinkTask.java
@@ -16,8 +16,8 @@ import io.openmessaging.connector.api.component.task.sink.SinkTask;
import io.openmessaging.connector.api.component.task.sink.SinkTaskContext;
import io.openmessaging.connector.api.data.ConnectRecord;
import io.openmessaging.connector.api.errors.ConnectException;
-import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.connect.eventbridge.sink.constant.EventBridgeConstant;
+import org.apache.rocketmq.connect.eventbridge.sink.utils.CheckUtils;
import org.apache.rocketmq.connect.eventbridge.sink.utils.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,6 +45,8 @@ public class EventBridgeSinkTask extends SinkTask {
private String eventType;
+ private String eventSource;
+
private String aliyuneventbusname;
private String accountEndpoint;
@@ -57,8 +59,8 @@ public class EventBridgeSinkTask extends SinkTask {
try {
sinkRecords.forEach(connectRecord -> cloudEventList.add(EventBuilder.builder()
.withId(connectRecord.getExtension(EventBridgeConstant.EVENT_ID))
- .withSource(URI.create(connectRecord.getExtension(EventBridgeConstant.EVENT_SOURCE)))
- .withType(StringUtils.isBlank(eventType) ? connectRecord.getExtension(EventBridgeConstant.EVENT_TYPE) : eventType)
+ .withSource(CheckUtils.checkNull(eventSource) ? URI.create(connectRecord.getExtension(EventBridgeConstant.EVENT_SOURCE)) : URI.create(eventSource))
+ .withType(CheckUtils.checkNull(eventType) ? connectRecord.getExtension(EventBridgeConstant.EVENT_TYPE) : eventType)
.withSubject(eventSubject)
.withTime(DateUtils.getDate(eventTime, DateUtils.DEFAULT_DATE_FORMAT))
.withJsonStringData(connectRecord.getData().toString())
@@ -99,6 +101,7 @@ public class EventBridgeSinkTask extends SinkTask {
accountEndpoint = config.getString(EventBridgeConstant.ACCOUNT_ENDPOINT);
stsEndpoint = config.getString(EventBridgeConstant.STS_ENDPOINT);
eventType = config.getString(EventBridgeConstant.EVENT_TYPE);
+ eventSource = config.getString(EventBridgeConstant.EVENT_SOURCE);
}
@Override
@@ -106,7 +109,7 @@ public class EventBridgeSinkTask extends SinkTask {
super.start(sinkTaskContext);
try {
Config authConfig = new Config();
- if (StringUtils.isNotBlank(roleArn) && StringUtils.isNotBlank(roleSessionName)) {
+ if (CheckUtils.checkNotNull(roleArn) && CheckUtils.checkNotNull(roleSessionName)) {
DefaultProfile.addEndpoint("", "", "Sts", stsEndpoint);
DefaultProfile profile = DefaultProfile.getProfile("", accessKeyId, accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
diff --git a/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/constant/EventBridgeConstant.java b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/constant/EventBridgeConstant.java
index 8c96842..2d65eb9 100644
--- a/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/constant/EventBridgeConstant.java
+++ b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/constant/EventBridgeConstant.java
@@ -8,9 +8,9 @@ public class EventBridgeConstant {
public static final String ROLE_ARN = "roleArn";
public static final String ROLE_SESSION_NAME = "roleSessionName";
public static final String EVENT_ID = "id";
- public static final String EVENT_SOURCE = "source";
+ public static final String EVENT_SOURCE = "eventSource";
public static final String EVENT_TIME = "eventTime";
- public static final String EVENT_TYPE = "type";
+ public static final String EVENT_TYPE = "eventType";
public static final String EVENT_SUBJECT = "eventSubject";
public static final String ALIYUN_EVENT_BUS_NAME = "aliyuneventbusname";
public static final String STS_ENDPOINT = "stsEndpoint";
diff --git a/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/utils/CheckUtils.java b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/utils/CheckUtils.java
new file mode 100644
index 0000000..067cca4
--- /dev/null
+++ b/connectors/aliyun/rocketmq-connect-eventbridge/src/main/java/org/apache/rocketmq/connect/eventbridge/sink/utils/CheckUtils.java
@@ -0,0 +1,25 @@
+package org.apache.rocketmq.connect.eventbridge.sink.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class CheckUtils {
+ private static final String NULL_CONSTANT = "null";
+
+ public static Boolean checkNull(String check) {
+ if (StringUtils.isBlank(check)) {
+ return Boolean.TRUE;
+ }
+ if (StringUtils.isNotBlank(check) && NULL_CONSTANT.equalsIgnoreCase(check)) {
+ return Boolean.TRUE;
+ }
+ return Boolean.FALSE;
+ }
+
+ public static Boolean checkNotNull(String check) {
+ if (StringUtils.isNotBlank(check) && !NULL_CONSTANT.equalsIgnoreCase(check)) {
+ return Boolean.TRUE;
+ }
+ return Boolean.FALSE;
+ }
+
+}