This is an automated email from the ASF dual-hosted git repository.
gaojun2048 pushed a commit to branch add_canvas_job_define
in repository https://gitbox.apache.org/repos/asf/seatunnel-web.git
The following commit(s) were added to refs/heads/add_canvas_job_define by this
push:
new 48636334 Add canvas job define (#70)
48636334 is described below
commit 48636334f99dc82254411050dacdc5211c53333a
Author: zhangchengming601 <[email protected]>
AuthorDate: Mon Jul 17 11:51:36 2023 +0800
Add canvas job define (#70)
* [ADD][SYNC TASK DEFINITION]
* [ADD][SYNC TASK DEFINITION] POM File
* [ADD][FUNCTION]Add synchronization task instance function
* [ADD][FUNCTION]Add synchronization task instance function
* [ADD][Switcher]Add SqlServerDataSourceConfigSwitcher And
MysqlDatasourceConfigSwitcher
* [ADD][Switcher]Add SqlServerDataSourceConfigSwitcher And
MysqlDatasourceConfigSwitcher
* [MODIFY][FILE]Modify Dependent files
---
.../datasource-elasticsearch/pom.xml | 2 +
.../datasource-jdbc-clickhouse/pom.xml | 2 +
.../datasource-jdbc-hive/pom.xml | 1 +
.../datasource-jdbc-mysql/pom.xml | 3 +
.../datasource-jdbc-oracle/pom.xml | 3 +
.../datasource-jdbc-postgresql/pom.xml | 3 +
.../datasource-jdbc-redshift/pom.xml | 3 +
.../datasource-jdbc-sqlserver/pom.xml | 3 +
.../datasource-jdbc-starrocks/pom.xml | 2 +
.../datasource-jdbc-tidb/pom.xml | 31 +-
.../datasource-kafka/pom.xml | 2 +
.../datasource-mysql-cdc/pom.xml | 3 +
.../datasource-s3-redshift/pom.xml | 2 +
.../datasource-s3/pom.xml | 1 +
.../datasource-sqlserver-cdc/pom.xml | 3 +
.../datasource-starrocks/pom.xml | 3 +
.../seatunnel/app/service/IScriptService.java | 38 --
.../apache/seatunnel/app/service/ITaskService.java | 34 --
.../app/service/impl/JobExecutorServiceImpl.java | 25 +-
.../app/service/impl/JobInstanceServiceImpl.java | 5 -
.../app/service/impl/JobMetricsServiceImpl.java | 3 -
.../app/service/impl/ScriptServiceImpl.java | 261 ------------
.../app/service/impl/TaskInstanceServiceImpl.java | 1 -
.../app/service/impl/TaskServiceImpl.java | 460 ---------------------
24 files changed, 65 insertions(+), 829 deletions(-)
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-elasticsearch/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-elasticsearch/pom.xml
index 7d2272b7..017a221a 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-elasticsearch/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-elasticsearch/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-clickhouse/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-clickhouse/pom.xml
index 1ca92dfb..6537afe7 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-clickhouse/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-clickhouse/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- driver -->
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-hive/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-hive/pom.xml
index c73b4502..32dce470 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-hive/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-hive/pom.xml
@@ -29,6 +29,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-mysql/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-mysql/pom.xml
index 11e0ea6b..39a6fa46 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-mysql/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-mysql/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- driver -->
@@ -53,6 +55,7 @@
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-oracle/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-oracle/pom.xml
index 1e48c9b8..9e108276 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-oracle/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-oracle/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- driver -->
@@ -53,6 +55,7 @@
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>${oracle-jdbc.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-postgresql/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-postgresql/pom.xml
index cffbf251..9b07fb21 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-postgresql/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-postgresql/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- driver -->
@@ -53,6 +55,7 @@
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
</project>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-redshift/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-redshift/pom.xml
index fc369127..440e4a45 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-redshift/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-redshift/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- driver -->
@@ -53,6 +55,7 @@
<groupId>com.amazon.redshift</groupId>
<artifactId>redshift-jdbc42</artifactId>
<version>${redshift.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-sqlserver/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-sqlserver/pom.xml
index 5452a7e8..1ff5b6bc 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-sqlserver/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-sqlserver/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- driver -->
@@ -53,6 +55,7 @@
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>${sqlserver.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-starrocks/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-starrocks/pom.xml
index 76a5885f..764198e5 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-starrocks/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-starrocks/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,6 +47,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<!-- driver -->
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-tidb/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-tidb/pom.xml
index 5797396d..559a2936 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-tidb/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-jdbc-tidb/pom.xml
@@ -24,13 +24,38 @@
<artifactId>datasource-jdbc-tidb</artifactId>
- <properties />
+ <properties>
+ <mysql-connector.version>8.0.28</mysql-connector.version>
+ </properties>
<dependencies>
<dependency>
<groupId>org.apache.seatunnel</groupId>
- <artifactId>datasource-jdbc-mysql</artifactId>
- <version>${project.version}</version>
+ <artifactId>datasource-plugins-api</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </dependency>
+ <!--
https://mvnrepository.com/artifact/com.google.auto.service/auto-service -->
+ <dependency>
+ <groupId>com.google.auto.service</groupId>
+ <artifactId>auto-service</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.seatunnel</groupId>
+ <artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- driver -->
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>${mysql-connector.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
</project>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-kafka/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-kafka/pom.xml
index a94058a9..ae68a64c 100644
--- a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-kafka/pom.xml
+++ b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-kafka/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.apache.commons</groupId>
@@ -52,6 +53,7 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-mysql-cdc/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-mysql-cdc/pom.xml
index e8c6d4e8..23fedfd5 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-mysql-cdc/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-mysql-cdc/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.apache.commons</groupId>
@@ -52,11 +53,13 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3-redshift/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3-redshift/pom.xml
index 1fc2d6b2..61b84cb8 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3-redshift/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3-redshift/pom.xml
@@ -29,6 +29,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.seatunnel</groupId>
@@ -45,6 +46,7 @@
<groupId>com.amazon.redshift</groupId>
<artifactId>redshift-jdbc42</artifactId>
<version>${redshift.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3/pom.xml
index 59b39e58..ae402efd 100644
--- a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3/pom.xml
+++ b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-s3/pom.xml
@@ -29,6 +29,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.seatunnel</groupId>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-sqlserver-cdc/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-sqlserver-cdc/pom.xml
index 467b7914..2f9fe588 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-sqlserver-cdc/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-sqlserver-cdc/pom.xml
@@ -33,10 +33,12 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.auto.service</groupId>
@@ -47,6 +49,7 @@
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>${sqlserver.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
</project>
diff --git
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-starrocks/pom.xml
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-starrocks/pom.xml
index c25a44b3..07e1d40c 100644
---
a/seatunnel-datasource/seatunnel-datasource-plugins/datasource-starrocks/pom.xml
+++
b/seatunnel-datasource/seatunnel-datasource-plugins/datasource-starrocks/pom.xml
@@ -33,6 +33,7 @@
<groupId>org.apache.seatunnel</groupId>
<artifactId>datasource-plugins-api</artifactId>
<version>${project.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -46,11 +47,13 @@
<dependency>
<groupId>org.apache.seatunnel</groupId>
<artifactId>seatunnel-api</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/IScriptService.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/IScriptService.java
deleted file mode 100644
index 9c7573ed..00000000
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/IScriptService.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.app.service;
-
-// public interface IScriptService {
-// CreateScriptRes createScript(CreateScriptReq createScriptReq);
-//
-// void updateScriptContent(UpdateScriptContentReq updateScriptContentReq);
-//
-// void delete(Integer id);
-//
-// PageInfo<ScriptSimpleInfoRes> list(ScriptListReq scriptListReq);
-//
-// String fetchScriptContent(Integer id);
-//
-// List<ScriptParamRes> fetchScriptParam(Integer id);
-//
-// void updateScriptParam(UpdateScriptParamReq updateScriptParamReq);
-//
-// void publishScript(PublishScriptReq req);
-//
-// ScriptFullInfoRes detail(Integer scriptId);
-// }
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/ITaskService.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/ITaskService.java
deleted file mode 100644
index a6453c67..00000000
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/ITaskService.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.app.service;
-
-// public interface ITaskService {
-// Long pushScriptToScheduler(PushScriptDto pushScriptDto);
-//
-// void recycleScriptFromScheduler(RecycleScriptReq req);
-//
-// PageInfo<JobSimpleInfoRes> listJob(JobListReq req);
-//
-// PageInfo<InstanceSimpleInfoRes> listInstance(InstanceListReq req);
-//
-// InstanceSimpleInfoRes tmpExecute(ExecuteReq req);
-//
-// InstanceLogRes queryInstanceLog(Long instanceId);
-//
-// void kill(Long instanceId);
-// }
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobExecutorServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobExecutorServiceImpl.java
index fe5ab5b9..6e50984e 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobExecutorServiceImpl.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobExecutorServiceImpl.java
@@ -36,7 +36,6 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-/** @Description @ClassName JobExecutorServiceImpl @Author zhang @Date
2023/6/30 15:53 */
@Slf4j
@Service
public class JobExecutorServiceImpl implements IJobExecutorService {
@@ -46,15 +45,12 @@ public class JobExecutorServiceImpl implements
IJobExecutorService {
@Override
public Result jobExecute(Integer userId, Long jobDefineId) {
- // 先获取JobExecutorRes
JobExecutorRes executeResource =
jobInstanceService.createExecuteResource(userId, jobDefineId);
String jobConfig = executeResource.getJobConfig();
- /** 将jobConfig写进conf文件中 */
String configFile = writeJobConfigIntoConfFile(jobConfig, jobDefineId);
- /** 调用 */
Long jobInstanceId =
executeJobBySeaTunnel(userId, configFile,
executeResource.getJobInstanceId());
return Result.success(jobInstanceId);
@@ -66,7 +62,7 @@ public class JobExecutorServiceImpl implements
IJobExecutorService {
try {
File file = new File(filePath);
if (!file.exists()) {
- file.getParentFile().mkdirs(); // 创建文件所在的文件夹
+ file.getParentFile().mkdirs();
}
FileWriter fileWriter = new FileWriter(file);
@@ -105,21 +101,6 @@ public class JobExecutorServiceImpl implements
IJobExecutorService {
seaTunnelClient);
});
- // CompletableFuture<JobStatus> objectCompletableFuture
=
- // CompletableFuture.supplyAsync(
- // () -> {
- // return
clientJobProxy.waitForJobComplete();
- // });
- //
- // //异步测试任务执行是否成功
- // await().atMost(180000, TimeUnit.MILLISECONDS)
- // .untilAsserted(
- // () ->
- // Assertions.assertTrue(
- //
objectCompletableFuture.isDone()
- // &&
JobStatus.FINISHED.equals(
- //
objectCompletableFuture.get())));
-
} catch (ExecutionException | InterruptedException e) {
throw new RuntimeException(e);
}
@@ -136,14 +117,12 @@ public class JobExecutorServiceImpl implements
IJobExecutorService {
CompletableFuture<JobStatus> future =
CompletableFuture.supplyAsync(
() -> {
- // 执行耗时任务,返回结果
return clientJobProxy.waitForJobComplete();
},
executor);
try {
JobStatus jobStatus = future.get();
if (JobStatus.FINISHED.equals(jobStatus)) {
- // 调用complete方法
jobInstanceService.complete(userId, jobInstanceId,
jobEngineId);
executor.shutdown();
}
@@ -169,10 +148,8 @@ public class JobExecutorServiceImpl implements
IJobExecutorService {
@Override
public Result jobPause(Integer userId, Long jobInstanceId) {
- // 先检查引擎上该任务是不是正在执行
JobInstance jobInstance = jobInstanceDao.getJobInstance(jobInstanceId);
if (getJobStatusFromEngine(jobInstance, jobInstance.getJobEngineId())
== "RUNNING") {
- // 暂停
pauseJobInEngine(jobInstance.getJobEngineId());
}
return Result.success();
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
index bb0df4a6..c2d1a786 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
@@ -435,14 +435,11 @@ public class JobInstanceServiceImpl extends
SeatunnelBaseServiceImpl
OptionRule optionRule)
throws JsonProcessingException {
- // 在这个地方mergeConfig
Long datasourceInstanceId = task.getDataSourceId();
- // datasourceInstanceId 获取pluginName;
String pluginName =
datasourceService
.queryDatasourceDetailById(datasourceInstanceId.toString())
.getPluginName();
- // 通过datasourceInstanceId 获取配置参数
Config datasourceConf =
parseConfigWithOptionRule(
pluginType,
@@ -481,9 +478,7 @@ public class JobInstanceServiceImpl extends
SeatunnelBaseServiceImpl
&& dataSourceOption != null
&& CollectionUtils.isNotEmpty(dataSourceOption.getTables())) {
String tableName = dataSourceOption.getTables().get(0);
- // 判断当前tableName是否为虚拟表
if
(virtualTableService.containsVirtualTableByTableName(tableName)) {
- // 是虚拟表,获取虚拟表参数
virtualTableDetailRes =
virtualTableService.queryVirtualTableByTableName(tableName);
}
}
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobMetricsServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobMetricsServiceImpl.java
index 65779b7e..9a6d1abd 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobMetricsServiceImpl.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobMetricsServiceImpl.java
@@ -188,8 +188,6 @@ public class JobMetricsServiceImpl extends
SeatunnelBaseServiceImpl implements I
jobInstanceIdAndJobEngineIdMap.get(
jobInstance.getId())));
jobSummaryMetricsResMap.put(jobInstance.getId(),
jobMetriceFromDb);
-
- // TODO:将数据库中的jobInstance和jobMetrics的作业状态改为finished
}
} else if (jobInstance.getJobStatus().equals("FINISHED")
|| jobInstance.getJobStatus().equals("CANCELED")) {
@@ -684,7 +682,6 @@ public class JobMetricsServiceImpl extends
SeatunnelBaseServiceImpl implements I
list.add(jobMetrics);
}
if (!list.isEmpty()) {
- log.info("003list={}", list);
jobMetricsDao.getJobMetricsMapper().insertBatchMetrics(list);
}
}
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/ScriptServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/ScriptServiceImpl.java
deleted file mode 100644
index db7db8c2..00000000
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/ScriptServiceImpl.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/// *
-// * 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.app.service.impl;
-//
-// import org.apache.seatunnel.app.common.ScriptParamStatusEnum;
-// import org.apache.seatunnel.app.common.ScriptStatusEnum;
-// import org.apache.seatunnel.app.dal.dao.IScriptDao;
-// import org.apache.seatunnel.app.dal.dao.IScriptParamDao;
-// import org.apache.seatunnel.app.dal.dao.IUserDao;
-// import org.apache.seatunnel.app.dal.entity.Script;
-// import org.apache.seatunnel.app.dal.entity.ScriptParam;
-// import org.apache.seatunnel.app.domain.dto.job.PushScriptDto;
-// import org.apache.seatunnel.app.domain.dto.script.CheckScriptDuplicateDto;
-// import org.apache.seatunnel.app.domain.dto.script.CreateScriptDto;
-// import org.apache.seatunnel.app.domain.dto.script.ListScriptsDto;
-// import org.apache.seatunnel.app.domain.dto.script.UpdateScriptContentDto;
-// import org.apache.seatunnel.app.domain.dto.script.UpdateScriptParamDto;
-// import org.apache.seatunnel.app.domain.request.script.CreateScriptReq;
-// import org.apache.seatunnel.app.domain.request.script.PublishScriptReq;
-// import org.apache.seatunnel.app.domain.request.script.ScriptListReq;
-// import
org.apache.seatunnel.app.domain.request.script.UpdateScriptContentReq;
-// import org.apache.seatunnel.app.domain.request.script.UpdateScriptParamReq;
-// import org.apache.seatunnel.app.domain.response.PageInfo;
-// import org.apache.seatunnel.app.domain.response.script.CreateScriptRes;
-// import org.apache.seatunnel.app.domain.response.script.ScriptFullInfoRes;
-// import org.apache.seatunnel.app.domain.response.script.ScriptParamRes;
-// import org.apache.seatunnel.app.domain.response.script.ScriptSimpleInfoRes;
-// import org.apache.seatunnel.app.service.IScriptService;
-//// import org.apache.seatunnel.app.service.ITaskService;
-// import org.apache.seatunnel.app.utils.Md5Utils;
-//
-// import org.apache.seatunnel.server.common.PageData;
-//
-// import org.springframework.stereotype.Component;
-// import org.springframework.transaction.annotation.Transactional;
-// import org.springframework.util.CollectionUtils;
-//
-// import com.google.common.base.Strings;
-//
-// import javax.annotation.Resource;
-//
-// import java.util.Collections;
-// import java.util.List;
-// import java.util.Objects;
-// import java.util.stream.Collectors;
-//
-// import static com.google.common.base.Preconditions.checkState;
-// import static
org.apache.seatunnel.server.common.SeatunnelErrorEnum.NO_SUCH_SCRIPT;
-//
-// @Component
-// public class ScriptServiceImpl implements IScriptService {
-//
-// @Resource private IScriptDao scriptDaoImpl;
-//
-// @Resource private IScriptParamDao scriptParamDaoImpl;
-//
-//
-// @Resource private IUserDao userDaoImpl;
-//
-//// @Resource private ITaskService iTaskService;
-//
-// @Override
-// public CreateScriptRes createScript(CreateScriptReq createScriptReq) {
-// // 1. check script name.
-// checkDuplicate(createScriptReq.getName(),
createScriptReq.getCreatorId());
-// // 2. create script
-// int scriptId =
-// translate(
-// createScriptReq.getName(),
-// createScriptReq.getCreatorId(),
-// createScriptReq.getCreatorId(),
-// createScriptReq.getType(),
-// createScriptReq.getContent());
-//
-// final CreateScriptRes res = new CreateScriptRes();
-// res.setId(scriptId);
-// return res;
-// }
-//
-// private int translate(
-// String name, Integer creatorId, Integer menderId, Byte type,
String content) {
-// final CreateScriptDto dto =
-// CreateScriptDto.builder()
-// .name(name)
-// .menderId(creatorId)
-// .creatorId(menderId)
-// .type(type)
-// .status((byte)
ScriptStatusEnum.UNPUBLISHED.getCode())
-// .content(content)
-// .build();
-// return scriptDaoImpl.createScript(dto);
-// }
-//
-// private void checkDuplicate(String name, Integer creatorId) {
-// final CheckScriptDuplicateDto dto =
-//
CheckScriptDuplicateDto.builder().creatorId(creatorId).name(name).build();
-// scriptDaoImpl.checkScriptDuplicate(dto);
-// }
-//
-// @Override
-// @Transactional(rollbackFor = Exception.class)
-// public void updateScriptContent(UpdateScriptContentReq
updateScriptContentReq) {
-// // 1. check content md5 is consistent
-// final String content = updateScriptContentReq.getContent();
-// final String contentMd5 = Strings.isNullOrEmpty(content) ? "" :
Md5Utils.toMd5(content);
-//
-// final boolean needSave =
checkIfNeedSave(updateScriptContentReq.getScriptId(),
-// contentMd5);
-//
-// if (needSave) {
-// final UpdateScriptContentDto dto =
-// UpdateScriptContentDto.builder()
-// .id(updateScriptContentReq.getScriptId())
-// .content(content)
-// .contentMd5(contentMd5)
-// .menderId(updateScriptContentReq.getMenderId())
-// .build();
-// scriptDaoImpl.updateScriptContent(dto);
-// }
-// }
-//
-// private boolean checkIfNeedSave(int id, String newContentMd5) {
-// Script script = scriptDaoImpl.getScript(id);
-// checkState(
-// Objects.nonNull(script)
-// && (int) script.getStatus() !=
ScriptStatusEnum.DELETED.getCode(),
-// NO_SUCH_SCRIPT.getTemplate());
-//
-// final String oldContentMd5 =
-// Strings.isNullOrEmpty(script.getContentMd5()) ? "" :
script.getContentMd5();
-// return !newContentMd5.equals(oldContentMd5);
-// }
-//
-// @Override
-// @Transactional(rollbackFor = Exception.class)
-// public void delete(Integer id) {
-// // no need check script if exist.
-// scriptDaoImpl.deleteScript(id);
-// }
-//
-// @Override
-// public PageInfo<ScriptSimpleInfoRes> list(ScriptListReq scriptListReq) {
-//
-// final ListScriptsDto dto =
ListScriptsDto.builder().name(scriptListReq.getName()).build();
-//
-// PageData<Script> scriptPageData =
-// scriptDaoImpl.list(dto, scriptListReq.getRealPageNo(),
-// scriptListReq.getPageSize());
-// final List<ScriptSimpleInfoRes> data =
-//
-//
scriptPageData.getData().stream().map(this::translate).collect(Collectors.toList());
-//
-// final PageInfo<ScriptSimpleInfoRes> pageInfo = new PageInfo<>();
-// pageInfo.setPageNo(scriptListReq.getPageNo());
-// pageInfo.setPageSize(scriptListReq.getPageSize());
-// pageInfo.setTotalCount(scriptPageData.getTotalCount());
-// pageInfo.setData(data);
-// return pageInfo;
-// }
-//
-// @Override
-// public String fetchScriptContent(Integer id) {
-// Script script = scriptDaoImpl.getScript(id);
-// checkState(Objects.nonNull(script), NO_SUCH_SCRIPT.getTemplate());
-// return script.getContent();
-// }
-//
-// @Override
-// public List<ScriptParamRes> fetchScriptParam(Integer id) {
-// List<ScriptParam> scriptParamRes =
scriptParamDaoImpl.getParamsByScriptId(id);
-// if (CollectionUtils.isEmpty(scriptParamRes)) {
-// return Collections.emptyList();
-// }
-// return
scriptParamRes.stream().map(this::translate).collect(Collectors.toList());
-// }
-//
-// @Override
-// @Transactional(rollbackFor = Exception.class)
-// public void updateScriptParam(UpdateScriptParamReq updateScriptParamReq)
{
-// // 1. delete all old params first.
-// // 2. save new params. (check params correctness)
-// scriptParamDaoImpl.updateStatusByScriptId(
-// updateScriptParamReq.getScriptId(),
ScriptParamStatusEnum.DELETED.getCode());
-//
-// UpdateScriptParamDto dto =
-// UpdateScriptParamDto.builder()
-// .scriptId(updateScriptParamReq.getScriptId())
-// .params(updateScriptParamReq.getParams())
-// .build();
-//
-// scriptParamDaoImpl.batchInsert(dto);
-// }
-//
-// @Override
-// public void publishScript(PublishScriptReq req) {
-// final PushScriptDto dto =
-// PushScriptDto.builder()
-// .scriptId(req.getScriptId())
-// .userId(req.getOperatorId())
-// .build();
-// iTaskService.pushScriptToScheduler(dto);
-// }
-//
-// @Override
-// public ScriptFullInfoRes detail(Integer scriptId) {
-// final Script script = scriptDaoImpl.getScript(scriptId);
-//
-// checkState(Objects.nonNull(script), NO_SUCH_SCRIPT.getTemplate());
-// return translateToFull(script);
-// }
-//
-// private ScriptParamRes translate(ScriptParam scriptParam) {
-// final ScriptParamRes res = new ScriptParamRes();
-// res.setId(scriptParam.getId());
-// res.setKey(scriptParam.getKey());
-// res.setValue(scriptParam.getValue());
-// return res;
-// }
-//
-// private ScriptSimpleInfoRes translate(Script script) {
-// final ScriptSimpleInfoRes res = new ScriptSimpleInfoRes();
-// res.setId(script.getId());
-// res.setName(script.getName());
-// res.setStatus(ScriptStatusEnum.parse(script.getStatus()));
-// res.setType(script.getType());
-// res.setCreatorId(script.getCreatorId());
-// res.setMenderId(script.getMenderId());
-// res.setCreateTime(script.getCreateTime());
-// res.setUpdateTime(script.getUpdateTime());
-// return res;
-// }
-//
-// private ScriptFullInfoRes translateToFull(Script script) {
-// final ScriptFullInfoRes res = new ScriptFullInfoRes();
-// res.setId(script.getId());
-// res.setName(script.getName());
-// res.setStatus(ScriptStatusEnum.parse(script.getStatus()));
-// res.setType(script.getType());
-// res.setCreatorId(script.getCreatorId());
-// res.setMenderId(script.getMenderId());
-// res.setCreateTime(script.getCreateTime());
-// res.setUpdateTime(script.getUpdateTime());
-// res.setContent(script.getContent());
-// return res;
-// }
-// }
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
index 19b75f38..6ba8286c 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
@@ -54,7 +54,6 @@ public class TaskInstanceServiceImpl implements
ITaskInstanceService {
String syncTaskType,
Integer pageNo,
Integer pageSize) {
- /** 根据过滤条件查出所有的TaskTnstance(List) */
JobDefinition jobDefinition = null;
IPage<SeaTunnelJobInstanceDto> jobInstanceIPage = null;
if (jobDefineName != null) {
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskServiceImpl.java
deleted file mode 100644
index 4494df3c..00000000
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskServiceImpl.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/// *
-// * 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.app.service.impl;
-//
-// import org.apache.seatunnel.app.common.ObjectTypeEnum;
-// import org.apache.seatunnel.app.common.ScriptStatusEnum;
-// import org.apache.seatunnel.app.dal.dao.ISchedulerConfigDao;
-// import org.apache.seatunnel.app.dal.dao.IScriptDao;
-// import org.apache.seatunnel.app.dal.dao.IScriptJobApplyDao;
-// import org.apache.seatunnel.app.dal.dao.IScriptParamDao;
-// import org.apache.seatunnel.app.dal.entity.JobDefine;
-// import org.apache.seatunnel.app.dal.entity.SchedulerConfig;
-// import org.apache.seatunnel.app.dal.entity.Script;
-// import org.apache.seatunnel.app.dal.entity.ScriptJobApply;
-// import org.apache.seatunnel.app.dal.entity.ScriptParam;
-// import org.apache.seatunnel.app.domain.dto.job.PushScriptDto;
-// import org.apache.seatunnel.app.domain.dto.job.ScriptJobApplyDto;
-// import org.apache.seatunnel.app.domain.request.task.ExecuteReq;
-// import org.apache.seatunnel.app.domain.request.task.InstanceListReq;
-// import org.apache.seatunnel.app.domain.request.task.InstanceLogRes;
-// import org.apache.seatunnel.app.domain.request.task.JobListReq;
-// import org.apache.seatunnel.app.domain.request.task.RecycleScriptReq;
-// import org.apache.seatunnel.app.domain.response.PageInfo;
-// import org.apache.seatunnel.app.domain.response.task.InstanceSimpleInfoRes;
-// import org.apache.seatunnel.app.domain.response.task.JobSimpleInfoRes;
-// import org.apache.seatunnel.app.service.ITaskService;
-// import org.apache.seatunnel.server.common.PageData;
-// import org.apache.seatunnel.server.common.SeatunnelException;
-// import org.apache.seatunnel.spi.scheduler.IInstanceService;
-// import org.apache.seatunnel.spi.scheduler.IJobService;
-// import org.apache.seatunnel.spi.scheduler.dto.ExecuteDto;
-// import org.apache.seatunnel.spi.scheduler.dto.InstanceDto;
-// import org.apache.seatunnel.spi.scheduler.dto.InstanceListDto;
-// import org.apache.seatunnel.spi.scheduler.dto.InstanceLogDto;
-// import org.apache.seatunnel.spi.scheduler.dto.JobDto;
-// import org.apache.seatunnel.spi.scheduler.dto.JobListDto;
-// import org.apache.seatunnel.spi.scheduler.dto.JobSimpleInfoDto;
-// import org.apache.seatunnel.spi.scheduler.dto.SchedulerConfigDto;
-// import org.apache.seatunnel.spi.scheduler.enums.ExecuteTypeEnum;
-//
-// import org.springframework.stereotype.Component;
-// import org.springframework.util.CollectionUtils;
-//
-// import com.cronutils.model.definition.CronDefinition;
-// import com.cronutils.model.definition.CronDefinitionBuilder;
-// import com.cronutils.model.time.ExecutionTime;
-// import com.cronutils.parser.CronParser;
-// import com.google.common.collect.Maps;
-// import lombok.extern.slf4j.Slf4j;
-//
-// import javax.annotation.PostConstruct;
-// import javax.annotation.Resource;
-//
-// import java.time.ZonedDateTime;
-// import java.util.Date;
-// import java.util.List;
-// import java.util.Map;
-// import java.util.Objects;
-// import java.util.Optional;
-// import java.util.concurrent.CompletableFuture;
-// import java.util.function.Function;
-// import java.util.stream.Collectors;
-//
-// import static com.cronutils.model.CronType.QUARTZ;
-// import static java.util.Objects.requireNonNull;
-// import static org.apache.seatunnel.app.common.ObjectTypeEnum.INSTANCE;
-// import static org.apache.seatunnel.app.common.ObjectTypeEnum.JOB;
-// import static org.apache.seatunnel.app.common.ObjectTypeEnum.SCRIPT;
-// import static org.apache.seatunnel.server.common.Constants.UNDERLINE;
-// import static
org.apache.seatunnel.server.common.SeatunnelErrorEnum.NO_SUCH_ELEMENT;
-// import static
org.apache.seatunnel.server.common.SeatunnelErrorEnum.NO_SUCH_JOB;
-// import static
org.apache.seatunnel.server.common.SeatunnelErrorEnum.NO_SUCH_SCRIPT;
-// import static
org.apache.seatunnel.server.common.SeatunnelErrorEnum.SCHEDULER_CONFIG_NOT_EXIST;
-// import static
-//
org.apache.seatunnel.spi.scheduler.constants.SchedulerConstant.NEVER_TRIGGER_EXPRESSION;
-// import static
-//
org.apache.seatunnel.spi.scheduler.constants.SchedulerConstant.RETRY_INTERVAL_DEFAULT;
-// import static
org.apache.seatunnel.spi.scheduler.constants.SchedulerConstant.RETRY_TIMES_DEFAULT;
-//
-// @Component
-// @Slf4j
-// public class TaskServiceImpl implements ITaskService {
-//
-// @Resource private IJobService iJobService;
-//
-// @Resource private IInstanceService iInstanceService;
-//
-// @Resource private IScriptDao scriptDaoImpl;
-//
-// @Resource private IScriptParamDao scriptParamDaoImpl;
-//
-// @Resource private ISchedulerConfigDao schedulerConfigDaoImpl;
-//
-// @Resource private IScriptJobApplyDao scriptJobApplyDaoImpl;
-//
-// private Map<ObjectTypeEnum, Function<ExecuteReq, ExecuteDto>>
executeFuncMap =
-// Maps.newHashMapWithExpectedSize(ObjectTypeEnum.values().length);
-//
-// private static final CronDefinition CRON_DEFINITION =
-// CronDefinitionBuilder.instanceDefinitionFor(QUARTZ);
-//
-// @PostConstruct
-// public void initFuncMap() {
-// executeFuncMap.put(SCRIPT, this::getExecuteDtoByScriptId);
-// executeFuncMap.put(JOB, this::getExecuteDtoByJobId);
-// executeFuncMap.put(INSTANCE, this::getExecuteDtoByInstanceId);
-// }
-//
-// @Override
-// public Long pushScriptToScheduler(PushScriptDto pushScriptDto) {
-// final int scriptId = pushScriptDto.getScriptId();
-// final int userId = pushScriptDto.getUserId();
-//
-// // check scheduler param
-// SchedulerConfig config =
schedulerConfigDaoImpl.getSchedulerConfig(scriptId);
-// if (Objects.isNull(config)) {
-// throw new SeatunnelException(SCHEDULER_CONFIG_NOT_EXIST);
-// }
-//
-// final Script script = checkAndGetScript(scriptId);
-// final List<ScriptParam> scriptParams =
scriptParamDaoImpl.getParamsByScriptId(scriptId);
-// Map<String, Object> params = getScriptParamMap(scriptParams);
-//
-// final SchedulerConfigDto schedulerConfigDto =
-// SchedulerConfigDto.builder()
-// .retryInterval(config.getRetryInterval())
-// .retryTimes(config.getRetryTimes())
-// .startTime(config.getActiveStartTime())
-// .endTime(config.getActiveEndTime())
-// .triggerExpression(config.getTriggerExpression())
-// .build();
-//
-// final JobDto jobDto =
-// JobDto.builder()
-// .jobName(script.getName())
-// .jobContent(script.getContent())
-// .params(params)
-// .operatorId(userId)
-// .schedulerConfigDto(schedulerConfigDto)
-// // todo fix to real execute script
-// .executorScript(script.getContent())
-// .jobId(null)
-// .build();
-//
-// ScriptJobApply apply =
scriptJobApplyDaoImpl.getByScriptId(script.getId());
-// if (Objects.nonNull(apply)) {
-// jobDto.setJobId(apply.getJobId());
-// }
-//
-// // push script
-// final long jobId = iJobService.submitJob(jobDto);
-//
-// // Use future to ensure that the page does not show exceptions due
to database errors.
-// syncScriptJobMapping(scriptId, userId, config.getId(), jobId);
-//
-// // Update script status
-// script.setStatus((byte) ScriptStatusEnum.PUBLISHED.getCode());
-// scriptDaoImpl.updateStatus(script);
-// return jobId;
-// }
-//
-// @Override
-// public void recycleScriptFromScheduler(RecycleScriptReq req) {
-// final ScriptJobApply apply =
-// requireNonNull(
-// scriptJobApplyDaoImpl.getByJobId(req.getJobId()),
-// NO_SUCH_JOB::getTemplate);
-//
-// final Script script =
-// requireNonNull(
-// scriptDaoImpl.getScript(apply.getScriptId()),
NO_SUCH_JOB::getTemplate);
-//
-// final JobDto jobDto =
-// JobDto.builder()
-// .jobId(apply.getJobId())
-// .jobName(script.getName())
-// .operatorId(req.getOperatorId())
-// .build();
-//
-// iJobService.offlineJob(jobDto);
-//
-// syncScriptJobMapping(
-// script.getId(),
-// req.getOperatorId(),
-// apply.getSchedulerConfigId(),
-// apply.getJobId());
-// }
-//
-// @Override
-// public PageInfo<JobSimpleInfoRes> listJob(JobListReq req) {
-// // Search from scheduler.
-// final JobListDto dto =
-// JobListDto.builder()
-// .name(req.getName())
-// .pageNo(req.getPageNo())
-// .pageSize(req.getPageSize())
-// .build();
-// final PageData<JobSimpleInfoDto> jobPageData = iJobService.list(dto);
-// final List<JobSimpleInfoRes> data =
-//
jobPageData.getData().stream().map(this::translate).collect(Collectors.toList());
-//
-// final PageInfo<JobSimpleInfoRes> pageInfo = new PageInfo<>();
-//
-// if (!CollectionUtils.isEmpty(data)) {
-// final List<JobDefine> jobDefines =
-// scriptJobApplyDaoImpl.selectJobDefineByJobIds(
-// data.stream()
-// .map(JobSimpleInfoRes::getJobId)
-// .collect(Collectors.toList()));
-// final Map<Long, JobDefine> mapping =
-// jobDefines.stream()
-// .collect(Collectors.toMap(JobDefine::getJobId,
Function.identity()));
-//
-// data.forEach(
-// d -> {
-// final JobDefine jf =
mapping.getOrDefault(d.getJobId(), new JobDefine());
-// d.setJobPlan(jf.getTriggerExpression());
-// d.setScriptId(jf.getScriptId());
-// });
-//
-// pageInfo.setData(data);
-// pageInfo.setPageNo(req.getPageNo());
-// pageInfo.setPageSize(req.getPageSize());
-// pageInfo.setTotalCount(jobPageData.getTotalCount());
-// }
-//
-// return pageInfo;
-// }
-//
-// @Override
-// public PageInfo<InstanceSimpleInfoRes> listInstance(InstanceListReq req)
{
-// // Search from scheduler.
-// final InstanceListDto dto =
-// InstanceListDto.builder()
-// .name(req.getName())
-// .pageNo(req.getPageNo())
-// .pageSize(req.getPageSize())
-// .build();
-// final PageData<InstanceDto> instancePageData =
iInstanceService.list(dto);
-// final List<InstanceSimpleInfoRes> data =
-// instancePageData.getData().stream()
-// .map(this::translate)
-// .collect(Collectors.toList());
-//
-// if (!CollectionUtils.isEmpty(data)) {
-// final List<JobDefine> jobDefines =
-// scriptJobApplyDaoImpl.selectJobDefineByJobIds(
-// data.stream()
-// .map(InstanceSimpleInfoRes::getJobId)
-// .collect(Collectors.toList()));
-// final Map<Long, JobDefine> mapping =
-// jobDefines.stream()
-// .collect(Collectors.toMap(JobDefine::getJobId,
Function.identity()));
-//
-// data.forEach(
-// d -> {
-// final JobDefine jobDefine =
mapping.get(d.getJobId());
-// CronParser parser = new CronParser(CRON_DEFINITION);
-//
-// if (Objects.nonNull(jobDefine)) {
-// ExecutionTime executionTime =
-// ExecutionTime.forCron(
-//
parser.parse(jobDefine.getTriggerExpression()));
-// Optional<ZonedDateTime> nextExecution =
-//
executionTime.nextExecution(ZonedDateTime.now());
-//
-// if (nextExecution.isPresent()) {
-// final ZonedDateTime next =
nextExecution.get();
-//
d.setNextExecutionTime(Date.from(next.toInstant()));
-// }
-// }
-// });
-// }
-//
-// final PageInfo<InstanceSimpleInfoRes> pageInfo = new PageInfo<>();
-// pageInfo.setData(data);
-// pageInfo.setPageNo(req.getPageNo());
-// pageInfo.setPageSize(req.getPageSize());
-// pageInfo.setTotalCount(instancePageData.getTotalCount());
-//
-// return pageInfo;
-// }
-//
-// @Override
-// public InstanceSimpleInfoRes tmpExecute(ExecuteReq req) {
-//
-// final Integer objectType = req.getObjectType();
-//
-// final ObjectTypeEnum parse = ObjectTypeEnum.parse(objectType);
-//
-// final Function<ExecuteReq, ExecuteDto> executeFunc =
-// Optional.ofNullable(executeFuncMap.get(parse))
-// .orElseThrow(() -> new
SeatunnelException(NO_SUCH_ELEMENT));
-//
-// final ExecuteDto dto = executeFunc.apply(req);
-//
-// return this.translate(iJobService.execute(dto));
-// }
-//
-// private ExecuteDto getExecuteDtoByInstanceId(ExecuteReq req) {
-// // objectId of instance is jobId
-// return ExecuteDto.builder()
-// .jobDto(JobDto.builder().jobId(req.getObjectId()).build())
-// .executeTypeEnum(ExecuteTypeEnum.RERUN)
-// .build();
-// }
-//
-// private ExecuteDto getExecuteDtoByJobId(ExecuteReq req) {
-// return ExecuteDto.builder()
-// .jobDto(JobDto.builder().jobId(req.getObjectId()).build())
-// .executeTypeEnum(ExecuteTypeEnum.parse(req.getExecuteType()))
-// .build();
-// }
-//
-// private ExecuteDto getExecuteDtoByScriptId(ExecuteReq req) {
-// final Script script =
checkAndGetScript(Math.toIntExact(req.getObjectId()));
-//
-// final SchedulerConfigDto schedulerConfigDto =
-// SchedulerConfigDto.builder()
-// .retryInterval(RETRY_INTERVAL_DEFAULT)
-// .retryTimes(RETRY_TIMES_DEFAULT)
-// .startTime(new Date())
-// .endTime(new Date())
-// .triggerExpression(NEVER_TRIGGER_EXPRESSION)
-// .build();
-//
-// final JobDto jobDto =
-// JobDto.builder()
-// .jobName(
-// script.getName()
-// .concat(UNDERLINE)
-//
.concat(String.valueOf(System.currentTimeMillis())))
-// .jobContent(req.getContent())
-// .params(req.getParams())
-// .operatorId(req.getOperatorId())
-// .schedulerConfigDto(schedulerConfigDto)
-// // todo fix to real execute script
-// .executorScript(script.getContent())
-// .jobId(null)
-// .build();
-//
-// final ExecuteDto dto =
-// ExecuteDto.builder()
-// .jobDto(jobDto)
-//
.executeTypeEnum(ExecuteTypeEnum.parse(req.getExecuteType()))
-// .complementDataDto(null)
-// .build();
-// return dto;
-// }
-//
-// @Override
-// public InstanceLogRes queryInstanceLog(Long instanceId) {
-// final InstanceLogDto dto =
iInstanceService.queryInstanceLog(instanceId);
-//
-// return InstanceLogRes.builder()
-// .instanceId(instanceId)
-// .logContent(dto.getLogContent())
-// .build();
-// }
-//
-// @Override
-// public void kill(Long instanceId) {
-// iJobService.kill(instanceId);
-// }
-//
-// private JobSimpleInfoRes translate(JobSimpleInfoDto dto) {
-// return JobSimpleInfoRes.builder()
-// .jobId(dto.getJobId())
-// .jobName(dto.getJobName())
-// .jobStatus(dto.getJobStatus())
-// .publish(dto.getPublish())
-// .creatorName(dto.getCreatorName())
-// .menderName(dto.getMenderName())
-// .createTime(dto.getCreateTime())
-// .updateTime(dto.getUpdateTime())
-// .build();
-// }
-//
-// private InstanceSimpleInfoRes translate(InstanceDto dto) {
-// if (Objects.isNull(dto)) {
-// return null;
-// }
-// return InstanceSimpleInfoRes.builder()
-// .instanceId(dto.getInstanceId())
-// .jobId(dto.getJobId())
-// .instanceName(dto.getInstanceName())
-// .submitTime(dto.getSubmitTime())
-// .startTime(dto.getStartTime())
-// .endTime(dto.getEndTime())
-// .status(dto.getStatus())
-// .executionDuration(dto.getExecutionDuration())
-// .retryTimes(dto.getRetryTimes())
-// .runFrequency(dto.getRunFrequency())
-// .build();
-// }
-//
-// private Script checkAndGetScript(int scriptId) {
-// final Script script = scriptDaoImpl.getScript(scriptId);
-// if (Objects.isNull(script)) {
-// throw new SeatunnelException(NO_SUCH_SCRIPT);
-// }
-// return script;
-// }
-//
-// private void syncScriptJobMapping(int scriptId, int userId, int
schedulerConfigId, long jobId)
-// {
-// CompletableFuture.runAsync(
-// () -> {
-// // store script and job mapping
-// final ScriptJobApplyDto dto =
-// ScriptJobApplyDto.builder()
-// .scriptId(scriptId)
-//
.schedulerConfigId(schedulerConfigId)
-// .jobId(jobId)
-// .userId(userId)
-// .build();
-// scriptJobApplyDaoImpl.insertOrUpdate(dto);
-// })
-// .whenComplete(
-// (_return, e) -> {
-// if (Objects.nonNull(e)) {
-// log.error(
-// "Store script and job mapping
failed, please maintain this
-// mapping manually. \n"
-// + "scriptId [{}],
schedulerConfigId [{}], jobId
-// [{}], userId [{}]",
-// scriptId,
-// schedulerConfigId,
-// jobId,
-// userId,
-// e);
-// }
-// });
-// }
-//
-// private Map<String, Object> getScriptParamMap(List<ScriptParam>
scriptParams) {
-// Map<String, Object> params = Maps.newHashMap();
-//
-// if (!CollectionUtils.isEmpty(params)) {
-// scriptParams.forEach(
-// scriptParam -> params.put(scriptParam.getKey(),
scriptParam.getValue()));
-// }
-// return params;
-// }
-// }