This is an automated email from the ASF dual-hosted git repository.
wanghailin pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new b159cc0c75 [improve] add assert options (#8620)
b159cc0c75 is described below
commit b159cc0c75719a2ae73ec7e5a4bdc4bf63d4d7c8
Author: Jarvis <[email protected]>
AuthorDate: Mon Feb 10 11:22:57 2025 +0800
[improve] add assert options (#8620)
---
.../seatunnel/api/ConnectorOptionCheckTest.java | 1 -
.../seatunnel/assertion/sink/AssertConfig.java | 28 ++--------------
.../seatunnel/assertion/sink/AssertSink.java | 4 +--
.../assertion/sink/AssertSinkFactory.java | 9 ++---
.../assertion/sink/AssertSinkOptions.java | 39 ++++++++++++++++++++++
5 files changed, 46 insertions(+), 35 deletions(-)
diff --git
a/seatunnel-ci-tools/src/test/java/org/apache/seatunnel/api/ConnectorOptionCheckTest.java
b/seatunnel-ci-tools/src/test/java/org/apache/seatunnel/api/ConnectorOptionCheckTest.java
index 92acb42a5f..e11291c418 100644
---
a/seatunnel-ci-tools/src/test/java/org/apache/seatunnel/api/ConnectorOptionCheckTest.java
+++
b/seatunnel-ci-tools/src/test/java/org/apache/seatunnel/api/ConnectorOptionCheckTest.java
@@ -205,7 +205,6 @@ public class ConnectorOptionCheckTest {
whiteList.add("RocketMqSinkOptions");
whiteList.add("ClickhouseFileSinkOptions");
whiteList.add("IcebergSinkOptions");
- whiteList.add("AssertSinkOptions");
whiteList.add("MaxcomputeSourceOptions");
whiteList.add("InfluxDBSourceOptions");
whiteList.add("InfluxDBSinkOptions");
diff --git
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertConfig.java
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertConfig.java
index a35e91837f..a6d340ec6e 100644
---
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertConfig.java
+++
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertConfig.java
@@ -17,13 +17,6 @@
package org.apache.seatunnel.connectors.seatunnel.assertion.sink;
-import
org.apache.seatunnel.shade.com.fasterxml.jackson.core.type.TypeReference;
-
-import org.apache.seatunnel.api.configuration.Option;
-import org.apache.seatunnel.api.configuration.Options;
-
-import java.util.Map;
-
public class AssertConfig {
public static final String RULE_TYPE = "rule_type";
@@ -64,29 +57,12 @@ public class AssertConfig {
public static final String COLUMN_DEFAULT_VALUE = "default_value";
public static final String COLUMN_COMMENT = "comment";
+ public static final String TABLE_PATH = "table_path";
+
public static class TableIdentifierRule {
public static final String TABLE_IDENTIFIER_RULE =
"table_identifier_rule";
public static final String TABLE_IDENTIFIER_CATALOG_NAME =
"catalog_name";
public static final String TABLE_IDENTIFIER_TABLE_NAME = "table";
}
-
- public static final Option<String> COMMENT =
- Options.key("comment")
- .stringType()
- .noDefaultValue()
- .withDescription("SeaTunnel Schema Column Comment");
-
- public static final Option<Map<String, Object>> RULES =
- Options.key("rules")
- .type(new TypeReference<Map<String, Object>>() {})
- .noDefaultValue()
- .withDescription(
- "Rule definition of user's available data. Each
rule represents one field validation or row num validation.");
-
- public static final Option<String> TABLE_PATH =
- Options.key("table_path")
- .stringType()
- .noDefaultValue()
- .withDescription("table full path");
}
diff --git
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSink.java
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSink.java
index 290298fdce..9c3e5535f5 100644
---
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSink.java
+++
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSink.java
@@ -45,8 +45,8 @@ import static
org.apache.seatunnel.api.table.catalog.schema.TableSchemaOptions.T
import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertConfig.CATALOG_TABLE_RULES;
import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertConfig.FIELD_RULES;
import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertConfig.ROW_RULES;
-import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertConfig.RULES;
import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertConfig.TABLE_PATH;
+import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertSinkOptions.RULES;
public class AssertSink extends AbstractSimpleSink<SeaTunnelRow, Void>
implements SupportMultiTableSink {
@@ -71,7 +71,7 @@ public class AssertSink extends
AbstractSimpleSink<SeaTunnelRow, Void>
if (ruleConfig.hasPath(TABLE_CONFIGS.key())) {
List<? extends Config> tableConfigs =
ruleConfig.getConfigList(TABLE_CONFIGS.key());
for (Config tableConfig : tableConfigs) {
- String tableName = tableConfig.getString(TABLE_PATH.key());
+ String tableName = tableConfig.getString(TABLE_PATH);
initTableRule(catalogTable, tableConfig, tableName);
}
} else {
diff --git
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSinkFactory.java
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSinkFactory.java
index ae174d9857..9caedab731 100644
---
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSinkFactory.java
+++
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSinkFactory.java
@@ -18,7 +18,6 @@
package org.apache.seatunnel.connectors.seatunnel.assertion.sink;
import org.apache.seatunnel.api.configuration.util.OptionRule;
-import org.apache.seatunnel.api.sink.SinkCommonOptions;
import org.apache.seatunnel.api.table.connector.TableSink;
import org.apache.seatunnel.api.table.factory.Factory;
import org.apache.seatunnel.api.table.factory.TableSinkFactory;
@@ -26,7 +25,8 @@ import
org.apache.seatunnel.api.table.factory.TableSinkFactoryContext;
import com.google.auto.service.AutoService;
-import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertConfig.RULES;
+import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertSinkOptions.MULTI_TABLE_SINK_REPLICA;
+import static
org.apache.seatunnel.connectors.seatunnel.assertion.sink.AssertSinkOptions.RULES;
@AutoService(Factory.class)
public class AssertSinkFactory implements TableSinkFactory {
@@ -38,10 +38,7 @@ public class AssertSinkFactory implements TableSinkFactory {
@Override
public OptionRule optionRule() {
- return OptionRule.builder()
- .required(RULES)
- .optional(SinkCommonOptions.MULTI_TABLE_SINK_REPLICA)
- .build();
+ return
OptionRule.builder().required(RULES).optional(MULTI_TABLE_SINK_REPLICA).build();
}
@Override
diff --git
a/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSinkOptions.java
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSinkOptions.java
new file mode 100644
index 0000000000..be8dfa3ceb
--- /dev/null
+++
b/seatunnel-connectors-v2/connector-assert/src/main/java/org/apache/seatunnel/connectors/seatunnel/assertion/sink/AssertSinkOptions.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.seatunnel.connectors.seatunnel.assertion.sink;
+
+import
org.apache.seatunnel.shade.com.fasterxml.jackson.core.type.TypeReference;
+
+import org.apache.seatunnel.api.configuration.Option;
+import org.apache.seatunnel.api.configuration.Options;
+import org.apache.seatunnel.api.sink.SinkCommonOptions;
+
+import java.util.Map;
+
+public class AssertSinkOptions {
+
+ public static final Option<Map<String, Object>> RULES =
+ Options.key("rules")
+ .type(new TypeReference<Map<String, Object>>() {})
+ .noDefaultValue()
+ .withDescription(
+ "Rule definition of user's available data. Each
rule represents one field validation or row num validation.");
+
+ public static Option<Integer> MULTI_TABLE_SINK_REPLICA =
+ SinkCommonOptions.MULTI_TABLE_SINK_REPLICA;
+}