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;
-//    }
-// }

Reply via email to