This is an automated email from the ASF dual-hosted git repository.
wuchunfu 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 77f68f1ee [Improve][Connector-V2][Gitlab] Unified excetion for Gitlab
connector and improve optione rule (#3533)
77f68f1ee is described below
commit 77f68f1eefc9e2978f6a0947a08bf1a0072172eb
Author: TaoZex <[email protected]>
AuthorDate: Thu Nov 24 12:03:55 2022 +0800
[Improve][Connector-V2][Gitlab] Unified excetion for Gitlab connector and
improve optione rule (#3533)
---
.../seatunnel/gitlab/source/GitlabSource.java | 6 +++-
.../gitlab/source/GitlabSourceFactory.java | 23 ++++++++++----
.../source/exception/GitlabConnectorException.java | 35 ++++++++++++++++++++++
3 files changed, 57 insertions(+), 7 deletions(-)
diff --git
a/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSource.java
b/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSource.java
index 4ca4f23a7..70ab55a80 100644
---
a/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSource.java
+++
b/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSource.java
@@ -18,6 +18,7 @@
package org.apache.seatunnel.connectors.seatunnel.gitlab.source;
import org.apache.seatunnel.api.common.PrepareFailException;
+import org.apache.seatunnel.api.common.SeaTunnelAPIErrorCode;
import org.apache.seatunnel.api.source.Boundedness;
import org.apache.seatunnel.api.source.SeaTunnelSource;
import org.apache.seatunnel.api.table.type.SeaTunnelRow;
@@ -29,6 +30,7 @@ import
org.apache.seatunnel.connectors.seatunnel.common.source.AbstractSingleSpl
import
org.apache.seatunnel.connectors.seatunnel.common.source.SingleSplitReaderContext;
import
org.apache.seatunnel.connectors.seatunnel.gitlab.source.config.GitlabSourceConfig;
import
org.apache.seatunnel.connectors.seatunnel.gitlab.source.config.GitlabSourceParameter;
+import
org.apache.seatunnel.connectors.seatunnel.gitlab.source.exception.GitlabConnectorException;
import org.apache.seatunnel.connectors.seatunnel.http.source.HttpSource;
import org.apache.seatunnel.connectors.seatunnel.http.source.HttpSourceReader;
@@ -60,7 +62,9 @@ public class GitlabSource extends HttpSource {
CheckResult result = CheckConfigUtil.checkAllExists(pluginConfig,
GitlabSourceConfig.URL.key(),
GitlabSourceConfig.ACCESS_TOKEN.key());
if (!result.isSuccess()) {
- throw new PrepareFailException(getPluginName(), PluginType.SOURCE,
result.getMsg());
+ throw new
GitlabConnectorException(SeaTunnelAPIErrorCode.CONFIG_VALIDATION_FAILED,
+ String.format("PluginName: %s, PluginType: %s, Message:
%s",
+ getPluginName(), PluginType.SOURCE,
result.getMsg()));
}
this.gitlabSourceParameter.buildWithConfig(pluginConfig);
buildSchemaWithConfig(pluginConfig);
diff --git
a/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSourceFactory.java
b/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSourceFactory.java
index af1ca91dd..3f1d33b71 100644
---
a/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSourceFactory.java
+++
b/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/GitlabSourceFactory.java
@@ -17,10 +17,14 @@
package org.apache.seatunnel.connectors.seatunnel.gitlab.source;
+import org.apache.seatunnel.api.configuration.util.Condition;
import org.apache.seatunnel.api.configuration.util.OptionRule;
import org.apache.seatunnel.api.table.factory.Factory;
import org.apache.seatunnel.api.table.factory.TableSourceFactory;
+import org.apache.seatunnel.connectors.seatunnel.common.schema.SeaTunnelSchema;
import
org.apache.seatunnel.connectors.seatunnel.gitlab.source.config.GitlabSourceConfig;
+import org.apache.seatunnel.connectors.seatunnel.http.config.HttpConfig;
+import org.apache.seatunnel.connectors.seatunnel.http.config.HttpRequestMethod;
import com.google.auto.service.AutoService;
@@ -34,11 +38,18 @@ public class GitlabSourceFactory implements
TableSourceFactory {
@Override
public OptionRule optionRule() {
return OptionRule.builder()
- .required(GitlabSourceConfig.URL)
- .required(GitlabSourceConfig.ACCESS_TOKEN)
- .optional(GitlabSourceConfig.RETRY)
- .optional(GitlabSourceConfig.RETRY_BACKOFF_MAX_MS)
- .optional(GitlabSourceConfig.RETRY_BACKOFF_MULTIPLIER_MS)
- .build();
+ .required(GitlabSourceConfig.URL)
+ .required(GitlabSourceConfig.ACCESS_TOKEN)
+ .optional(GitlabSourceConfig.METHOD)
+ .optional(GitlabSourceConfig.HEADERS)
+ .optional(GitlabSourceConfig.PARAMS)
+ .conditional(Condition.of(HttpConfig.METHOD,
HttpRequestMethod.POST), GitlabSourceConfig.BODY)
+ .conditional(Condition.of(HttpConfig.FORMAT, "json"),
SeaTunnelSchema.SCHEMA)
+ .optional(GitlabSourceConfig.FORMAT)
+ .optional(GitlabSourceConfig.POLL_INTERVAL_MILLS)
+ .optional(GitlabSourceConfig.RETRY)
+ .optional(GitlabSourceConfig.RETRY_BACKOFF_MAX_MS)
+ .optional(GitlabSourceConfig.RETRY_BACKOFF_MULTIPLIER_MS)
+ .build();
}
}
diff --git
a/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/exception/GitlabConnectorException.java
b/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/exception/GitlabConnectorException.java
new file mode 100644
index 000000000..4eb01403c
--- /dev/null
+++
b/seatunnel-connectors-v2/connector-http/connector-http-gitlab/src/main/java/org/apache/seatunnel/connectors/seatunnel/gitlab/source/exception/GitlabConnectorException.java
@@ -0,0 +1,35 @@
+/*
+ * 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.gitlab.source.exception;
+
+import org.apache.seatunnel.common.exception.SeaTunnelErrorCode;
+import org.apache.seatunnel.common.exception.SeaTunnelRuntimeException;
+
+public class GitlabConnectorException extends SeaTunnelRuntimeException {
+ public GitlabConnectorException(SeaTunnelErrorCode seaTunnelErrorCode,
String errorMessage) {
+ super(seaTunnelErrorCode, errorMessage);
+ }
+
+ public GitlabConnectorException(SeaTunnelErrorCode seaTunnelErrorCode,
String errorMessage, Throwable cause) {
+ super(seaTunnelErrorCode, errorMessage, cause);
+ }
+
+ public GitlabConnectorException(SeaTunnelErrorCode seaTunnelErrorCode,
Throwable cause) {
+ super(seaTunnelErrorCode, cause);
+ }
+}