This is an automated email from the ASF dual-hosted git repository.

zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 8895921d87 [Improvement-13651] Remove useless resources_task (#13721)
8895921d87 is described below

commit 8895921d87ad34d5dc98f69ab024a28a1e6b1598
Author: Aaron Wang <[email protected]>
AuthorDate: Thu Mar 23 22:52:23 2023 +0800

    [Improvement-13651] Remove useless resources_task (#13721)
---
 .../api/service/impl/ResourcesServiceImpl.java     | 217 ---------------------
 .../dolphinscheduler/dao/entity/ResourcesTask.java |  56 ------
 .../dao/mapper/ResourceTaskMapper.java             |  45 -----
 .../dao/mapper/ResourceTaskMapper.xml              |  58 ------
 .../src/main/resources/sql/dolphinscheduler_h2.sql |  18 --
 .../main/resources/sql/dolphinscheduler_mysql.sql  |  17 --
 .../resources/sql/dolphinscheduler_postgresql.sql  |  13 --
 .../3.2.0_schema/mysql/dolphinscheduler_ddl.sql    |   1 -
 .../service/process/ProcessServiceImpl.java        |  80 +-------
 .../service/process/ProcessServiceTest.java        |   6 +-
 10 files changed, 4 insertions(+), 507 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ResourcesServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ResourcesServiceImpl.java
index 76c14333eb..cb279395c6 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ResourcesServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ResourcesServiceImpl.java
@@ -32,7 +32,6 @@ import 
org.apache.dolphinscheduler.api.dto.resources.visitor.ResourceTreeVisitor
 import org.apache.dolphinscheduler.api.dto.resources.visitor.Visitor;
 import org.apache.dolphinscheduler.api.enums.Status;
 import org.apache.dolphinscheduler.api.exceptions.ServiceException;
-import org.apache.dolphinscheduler.api.service.ProcessDefinitionService;
 import org.apache.dolphinscheduler.api.service.ResourcesService;
 import org.apache.dolphinscheduler.api.utils.PageInfo;
 import org.apache.dolphinscheduler.api.utils.RegexUtils;
@@ -44,27 +43,20 @@ import 
org.apache.dolphinscheduler.common.enums.ResUploadType;
 import org.apache.dolphinscheduler.common.utils.FileUtils;
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
 import org.apache.dolphinscheduler.common.utils.PropertyUtils;
-import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionLog;
-import org.apache.dolphinscheduler.dao.entity.ProcessTaskRelation;
 import org.apache.dolphinscheduler.dao.entity.Resource;
-import org.apache.dolphinscheduler.dao.entity.ResourcesTask;
-import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
 import org.apache.dolphinscheduler.dao.entity.Tenant;
 import org.apache.dolphinscheduler.dao.entity.UdfFunc;
 import org.apache.dolphinscheduler.dao.entity.User;
 import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.mapper.ResourceMapper;
-import org.apache.dolphinscheduler.dao.mapper.ResourceTaskMapper;
 import org.apache.dolphinscheduler.dao.mapper.ResourceUserMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
 import org.apache.dolphinscheduler.dao.mapper.UdfFuncMapper;
 import org.apache.dolphinscheduler.dao.mapper.UserMapper;
 import org.apache.dolphinscheduler.plugin.storage.api.StorageEntity;
 import org.apache.dolphinscheduler.plugin.storage.api.StorageOperate;
 import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
-import org.apache.dolphinscheduler.service.process.ProcessService;
 import org.apache.dolphinscheduler.spi.enums.ResourceType;
 
 import org.apache.commons.collections4.CollectionUtils;
@@ -110,21 +102,9 @@ public class ResourcesServiceImpl extends BaseServiceImpl 
implements ResourcesSe
     @Autowired
     private ResourceMapper resourcesMapper;
 
-    @Autowired
-    private ResourceTaskMapper resourceTaskMapper;
-
-    @Autowired
-    private TaskDefinitionMapper taskDefinitionMapper;
-
     @Autowired
     private UdfFuncMapper udfFunctionMapper;
 
-    @Autowired
-    private ProcessService processService;
-
-    @Autowired
-    private ProcessDefinitionService processDefinitionService;
-
     @Autowired
     private TenantMapper tenantMapper;
 
@@ -475,7 +455,6 @@ public class ResourcesServiceImpl extends BaseServiceImpl 
implements ResourcesSe
         }
 
         Date now = new Date();
-        long originFileSize = resource.getSize();
 
         resource.setAlias(name);
         resource.setFileName(name);
@@ -491,87 +470,6 @@ public class ResourcesServiceImpl extends BaseServiceImpl 
implements ResourcesSe
             return result;
         }
 
-        List<ResourcesTask> existResourcesList;
-        if (resource.isDirectory()) {
-            existResourcesList = 
resourceTaskMapper.selectSubfoldersFullNames(originFullName + FOLDER_SEPARATOR);
-        } else {
-            existResourcesList = resourceTaskMapper.selectByMap(
-                    Collections.singletonMap("full_name", originFullName));
-        }
-
-        if (existResourcesList.size() > 0 && !fullName.equals(originFullName)) 
{
-            // check if any related task is online. If it is, it can not be 
updated.
-            for (ResourcesTask existResource : existResourcesList) {
-                int taskId = existResource.getTaskId();
-                if 
(processService.isTaskOnline(taskDefinitionMapper.selectById(taskId).getCode()))
 {
-                    log.error("can't be updated,because it is used of process 
definition that's online");
-                    log.error("resource task relation id:{} is used of task 
code {}", existResource.getId(),
-                            taskDefinitionMapper.selectById(taskId).getCode());
-                    putMsg(result, Status.RESOURCE_IS_USED);
-                    return result;
-                }
-            }
-
-            for (ResourcesTask existResource : existResourcesList) {
-                int taskId = existResource.getTaskId();
-                long taskCode = 
taskDefinitionMapper.selectById(taskId).getCode();
-
-                List<ProcessTaskRelation> processTaskRelation = 
processTaskRelationMapper.selectByMap(
-                        Collections.singletonMap("post_task_code", taskCode));
-                if (processTaskRelation.size() > 0) {
-                    long processDefinitionCode = 
processTaskRelation.get(0).getProcessDefinitionCode();
-                    int processDefinitionVersion = 
processTaskRelation.get(0).getProcessDefinitionVersion();
-                    List<ProcessTaskRelation> taskRelationList = 
processTaskRelationMapper.queryByProcessCode(
-                            processTaskRelation.get(0).getProjectCode(),
-                            processDefinitionCode);
-
-                    List<TaskDefinition> taskDefinitionLogList = new 
ArrayList<>();
-
-                    if (taskRelationList.size() > 0) {
-                        ProcessDefinitionLog processDefinition =
-                                
processDefinitionLogMapper.queryByDefinitionCodeAndVersion(
-                                        processDefinitionCode, 
processDefinitionVersion);
-                        for (ProcessTaskRelation taskRelation : 
taskRelationList) {
-                            long taskCodeInProcess = 
taskRelation.getPostTaskCode();
-                            TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByCode(taskCodeInProcess);
-                            if (taskCodeInProcess == taskCode) {
-                                // originFullName is a prefix if isDirectory 
is true
-                                
taskDefinition.setTaskParams(RemoveResourceFromResourceList(originFullName,
-                                        taskDefinition.getTaskParams(),
-                                        resource.isDirectory()));
-                                // if isDirectory is true, fullName is the new 
prefix. we replace old prefix
-                                // of resource fullname with the new prefix.
-                                // if isDirectory is false, fullName is the 
new path.
-                                
taskDefinition.setTaskParams(AddResourceToResourceList(originFullName,
-                                        fullName,
-                                        existResource.getFullName(),
-                                        taskDefinition.getTaskParams(),
-                                        resource.isDirectory()));
-                            }
-                            taskDefinitionLogList.add(taskDefinition);
-                        }
-
-                        // update workflow & task definition associated to the 
resource
-                        if (processDefinition != null) {
-                            
processDefinitionService.updateProcessDefinition(loginUser,
-                                    processDefinition.getProjectCode(),
-                                    processDefinition.getName(),
-                                    processDefinition.getCode(),
-                                    processDefinition.getDescription(),
-                                    processDefinition.getGlobalParams(),
-                                    processDefinition.getLocations(),
-                                    processDefinition.getTimeout(),
-                                    tenantCode,
-                                    
JSONUtils.toJsonString(taskRelationList.toArray()),
-                                    
JSONUtils.toJsonString(taskDefinitionLogList.toArray()),
-                                    "",
-                                    processDefinition.getExecutionType());
-                        }
-                    }
-                }
-            }
-        }
-
         if (file != null) {
             // fail upload
             if (!upload(loginUser, fullName, file, type)) {
@@ -1049,15 +947,8 @@ public class ResourcesServiceImpl extends BaseServiceImpl 
implements ResourcesSe
                 resTenantCode, resource.getType()).stream().map(storageEntity 
-> storageEntity.getFullName())
                 .collect(Collectors.toList());
 
-        Set<ResourcesTask> resourcesNeedToDeleteSet = new HashSet<>();
         String[] allChildrenFullNameArray = 
allChildren.stream().toArray(String[]::new);
 
-        // check before using allChildrenFullNameArray to query full names.
-        if (allChildrenFullNameArray.length != 0) {
-            resourcesNeedToDeleteSet.addAll(
-                    
resourceTaskMapper.selectBatchFullNames(allChildrenFullNameArray));
-        }
-
         // if resource type is UDF,need check whether it is bound by UDF 
function
         if (resource.getType() == (ResourceType.UDF)) {
             List<UdfFunc> udfFuncs = 
udfFunctionMapper.listUdfByResourceFullName(allChildrenFullNameArray);
@@ -1069,70 +960,6 @@ public class ResourcesServiceImpl extends BaseServiceImpl 
implements ResourcesSe
             }
         }
 
-        // delete data in database
-        if (resourcesNeedToDeleteSet.size() > 0) {
-            for (ResourcesTask resourcesTask : resourcesNeedToDeleteSet) {
-                int taskId = resourcesTask.getTaskId();
-                if 
(processService.isTaskOnline(taskDefinitionMapper.selectById(taskId).getCode()))
 {
-                    log.error("can't be deleted,because it is used of process 
definition that's online");
-                    log.error("resource task relation id:{} is used of task 
code {}", resourcesTask.getId(),
-                            taskDefinitionMapper.selectById(taskId).getCode());
-                    putMsg(result, Status.RESOURCE_IS_USED);
-                    return result;
-                }
-            }
-
-            for (ResourcesTask existResource : resourcesNeedToDeleteSet) {
-                int taskId = existResource.getTaskId();
-                long taskCode = 
taskDefinitionMapper.selectById(taskId).getCode();
-
-                // use taskCode to get processDefinitionCode, then get a list 
of processDefinitionLog.
-                List<ProcessTaskRelation> processTaskRelation = 
processTaskRelationMapper.selectByMap(
-                        Collections.singletonMap("post_task_code", taskCode));
-                if (processTaskRelation.size() > 0) {
-                    long processDefinitionCode = 
processTaskRelation.get(0).getProcessDefinitionCode();
-                    int processDefinitionVersion = 
processTaskRelation.get(0).getProcessDefinitionVersion();
-                    List<ProcessTaskRelation> taskRelationList = 
processTaskRelationMapper.queryByProcessCode(
-                            processTaskRelation.get(0).getProjectCode(),
-                            processDefinitionCode);
-
-                    List<TaskDefinition> taskDefinitionLogList = new 
ArrayList<>();
-
-                    if (taskRelationList.size() > 0) {
-                        ProcessDefinitionLog processDefinition =
-                                
processDefinitionLogMapper.queryByDefinitionCodeAndVersion(
-                                        processDefinitionCode, 
processDefinitionVersion);
-                        for (ProcessTaskRelation taskRelation : 
taskRelationList) {
-                            long taskCodeInProcess = 
taskRelation.getPostTaskCode();
-                            TaskDefinition taskDefinition = 
taskDefinitionMapper.queryByCode(taskCodeInProcess);
-                            if (taskCodeInProcess == taskCode) {
-                                
taskDefinition.setTaskParams(RemoveResourceFromResourceList(existResource.getFullName(),
-                                        taskDefinition.getTaskParams(), 
false));
-                            }
-                            taskDefinitionLogList.add(taskDefinition);
-                        }
-
-                        // update workflow & task definition associated to the 
resource
-                        if (processDefinition != null) {
-                            
processDefinitionService.updateProcessDefinition(loginUser,
-                                    processDefinition.getProjectCode(),
-                                    processDefinition.getName(),
-                                    processDefinition.getCode(),
-                                    processDefinition.getDescription(),
-                                    processDefinition.getGlobalParams(),
-                                    processDefinition.getLocations(),
-                                    processDefinition.getTimeout(),
-                                    tenantCode,
-                                    
JSONUtils.toJsonString(taskRelationList.toArray()),
-                                    
JSONUtils.toJsonString(taskDefinitionLogList.toArray()),
-                                    "",
-                                    processDefinition.getExecutionType());
-                        }
-                    }
-                }
-            }
-        }
-
         // delete file on hdfs,S3
         storageOperate.delete(fullName, allChildren, true);
 
@@ -1169,50 +996,6 @@ public class ResourcesServiceImpl extends BaseServiceImpl 
implements ResourcesSe
         return taskParameter;
     }
 
-    private String AddResourceToResourceList(String oldPrefix, String 
newPrefix, String resFullName,
-                                             String taskParameter, boolean 
isDir) {
-        Map<String, Object> taskParameters = JSONUtils.parseObject(
-                taskParameter,
-                new TypeReference<Map<String, Object>>() {
-                });
-
-        if (taskParameters.containsKey("resourceList")) {
-            String resourceListStr = 
JSONUtils.toJsonString(taskParameters.get("resourceList"));
-            List<ResourceInfo> resourceInfos = 
JSONUtils.toList(resourceListStr, ResourceInfo.class);
-
-            // add updated resource to replace the original resource.
-            ResourceInfo newResource = new ResourceInfo();
-            if (isDir) {
-                // we add spearator here because we dont want rare cases like
-                // oldFullName: .../folderToDelete and a resource path: 
.../folderToDeleteAnotherFolder
-                // Therefore, we make sure the oldFullName has a format of 
.../folderToDelete/ when
-                // modifying resourceFullNames in taskDefinition.
-                String oldFullNameWSeparator = oldPrefix + FOLDER_SEPARATOR;
-                String newFullNameWSpearator = newPrefix + FOLDER_SEPARATOR;
-
-                
newResource.setResourceName(resFullName.replace(oldFullNameWSeparator, 
newFullNameWSpearator));
-            } else {
-                newResource.setResourceName(newPrefix);
-            }
-            resourceInfos.add(newResource);
-
-            taskParameters.put("resourceList", resourceInfos);
-
-            return JSONUtils.toJsonString(taskParameters);
-        }
-        return taskParameter;
-    }
-
-    private String RemoveResourceFromIdsNew(int idToDelete, String idNews) {
-
-        String[] resourceIds = idNews.split(",");
-        Set<Integer> resourceIdSet = Arrays.stream(resourceIds)
-                .map(Integer::parseInt)
-                .filter(integerId -> !integerId.equals(idToDelete))
-                .collect(Collectors.toSet());
-        return Joiner.on(",").join(resourceIdSet);
-    }
-
     /**
      * verify resource by name and type
      *
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ResourcesTask.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ResourcesTask.java
deleted file mode 100644
index 799aa3e901..0000000000
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ResourcesTask.java
+++ /dev/null
@@ -1,56 +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.dolphinscheduler.dao.entity;
-
-import org.apache.dolphinscheduler.spi.enums.ResourceType;
-
-import lombok.Data;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-@Data
-@TableName("t_ds_relation_resources_task")
-public class ResourcesTask {
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    private String fullName;
-
-    private int taskId;
-
-    private ResourceType type;
-
-    public ResourcesTask(int id, String fullName, int taskId, ResourceType 
type) {
-        this.id = id;
-        this.fullName = fullName;
-        this.taskId = taskId;
-        this.type = type;
-    }
-
-    public ResourcesTask(int taskId, String fullName, ResourceType type) {
-        this.taskId = taskId;
-        this.fullName = fullName;
-        this.type = type;
-    }
-}
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ResourceTaskMapper.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ResourceTaskMapper.java
deleted file mode 100644
index bdd1542c49..0000000000
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ResourceTaskMapper.java
+++ /dev/null
@@ -1,45 +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.dolphinscheduler.dao.mapper;
-
-import org.apache.dolphinscheduler.dao.entity.ResourcesTask;
-
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * resource task relation mapper interface
- */
-public interface ResourceTaskMapper extends BaseMapper<ResourcesTask> {
-
-    Integer existResourceByTaskIdNFullName(@Param("taskId") int task_id, 
@Param("fullName") String fullName);
-
-    int deleteIds(@Param("resIds") Integer[] resIds);
-
-    int updateResource(@Param("id") int id, @Param("fullName") String 
fullName);
-
-    List<ResourcesTask> selectBatchFullNames(@Param("fullNameArr") String[] 
fullNameArr);
-
-    List<ResourcesTask> selectSubfoldersFullNames(@Param("folderPath") String 
folderPath);
-}
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceTaskMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceTaskMapper.xml
deleted file mode 100644
index f5131405de..0000000000
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceTaskMapper.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-  ~ 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.
-  -->
-
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"; >
-<mapper namespace="org.apache.dolphinscheduler.dao.mapper.ResourceTaskMapper">
-    <sql id="baseSqlV2">
-        ${alias}.id, ${alias}.full_name, ${alias}.task_id, ${alias}.type
-    </sql>
-    <select id="existResourceByTaskIdNFullName" resultType="java.lang.Integer">
-        select
-        id
-        from t_ds_relation_resources_task
-        where full_name = #{fullName} and task_id = #{taskId}
-    </select>
-
-    <select id="selectBatchFullNames" 
resultType="org.apache.dolphinscheduler.dao.entity.ResourcesTask">
-        select
-        id, full_name, task_id, type
-        from t_ds_relation_resources_task
-        where full_name in
-        <foreach collection="fullNameArr" item="i" open="(" close=")" 
separator=",">
-            #{i}
-        </foreach>
-    </select>
-
-    <update id="updateResource" >
-        UPDATE t_ds_relation_resources_task SET full_name=#{fullName} WHERE 
id=#{id}
-    </update>
-
-    <delete id="deleteIds" parameterType="java.lang.Integer">
-        delete from t_ds_relation_resources_task where id in
-        <foreach collection="resIds" item="i" open="(" close=")" separator=",">
-            #{i}
-        </foreach>
-    </delete>
-
-    <select id="selectSubfoldersFullNames" 
resultType="org.apache.dolphinscheduler.dao.entity.ResourcesTask">
-        select
-        id, full_name, task_id, type
-        from t_ds_relation_resources_task
-        where full_name like concat(#{folderPath}, '%')
-    </select>
-</mapper>
\ No newline at end of file
diff --git 
a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql 
b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql
index b54dfd07d6..58844f59c5 100644
--- a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql
+++ b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql
@@ -798,24 +798,6 @@ CREATE TABLE t_ds_resources
 -- Records of t_ds_resources
 -- ----------------------------
 
--- ----------------------------
--- Table structure for t_ds_relation_resources_task
--- ----------------------------
-DROP TABLE IF EXISTS t_ds_relation_resources_task CASCADE;
-CREATE TABLE t_ds_relation_resources_task
-(
-  id                        int(11) NOT NULL AUTO_INCREMENT,
-  task_id                   int(11) DEFAULT NULL,
-  full_name                 varchar(255) DEFAULT NULL,
-  type                      tinyint(4) DEFAULT NULL,
-  PRIMARY KEY (id),
-  UNIQUE KEY t_ds_relation_resources_task_un (task_id, full_name)
-) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of t_ds_relation_resources_task
--- ----------------------------
-
 -- ----------------------------
 -- Table structure for t_ds_schedules
 -- ----------------------------
diff --git 
a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql 
b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql
index 1955d52e64..e0bc9316c6 100644
--- a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql
+++ b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql
@@ -796,23 +796,6 @@ CREATE TABLE `t_ds_resources` (
 -- Records of t_ds_resources
 -- ----------------------------
 
--- ----------------------------
--- Table structure for t_ds_relation_resources_task
--- ----------------------------
-DROP TABLE IF EXISTS `t_ds_relation_resources_task`;
-CREATE TABLE `t_ds_relation_resources_task` (
-  `id` int NOT NULL AUTO_INCREMENT COMMENT 'key',
-  `task_id` int(11) DEFAULT NULL COMMENT 'task id',
-  `full_name` varchar(255) DEFAULT NULL,
-  `type` tinyint DEFAULT NULL COMMENT 'resource type,0:FILE,1:UDF',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `t_ds_relation_resources_task_un` (`task_id`, `full_name`)
-) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE = utf8_bin;
-
--- ----------------------------
--- Records of t_ds_relation_resources_task
--- ----------------------------
-
 -- ----------------------------
 -- Table structure for t_ds_schedules
 -- ----------------------------
diff --git 
a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql 
b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql
index f3e6e43e64..9c5f60a372 100644
--- 
a/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql
+++ 
b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql
@@ -705,19 +705,6 @@ CREATE TABLE t_ds_resources (
   CONSTRAINT t_ds_resources_un UNIQUE (full_name, type)
 ) ;
 
---
--- Table structure for table t_ds_relation_resources_task
---
-DROP TABLE IF EXISTS t_ds_relation_resources_task;
-CREATE TABLE t_ds_relation_resources_task (
-  id SERIAL NOT NULL,
-  task_id int DEFAULT NULL,
-  full_name varchar(255) DEFAULT NULL,
-  type int DEFAULT NULL,
-  PRIMARY KEY (id),
-  CONSTRAINT t_ds_relation_resources_task_un UNIQUE (task_id, full_name)
-);
-
 --
 -- Table structure for table t_ds_schedules
 --
diff --git 
a/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.2.0_schema/mysql/dolphinscheduler_ddl.sql
 
b/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.2.0_schema/mysql/dolphinscheduler_ddl.sql
index 5c91090c3d..44b545c2bd 100644
--- 
a/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.2.0_schema/mysql/dolphinscheduler_ddl.sql
+++ 
b/dolphinscheduler-dao/src/main/resources/sql/upgrade/3.2.0_schema/mysql/dolphinscheduler_ddl.sql
@@ -319,7 +319,6 @@ alter table t_ds_relation_project_user CONVERT TO CHARACTER 
SET utf8 COLLATE utf
 alter table t_ds_relation_resources_user CONVERT TO CHARACTER SET utf8 COLLATE 
utf8_bin;
 alter table t_ds_relation_udfs_user CONVERT TO CHARACTER SET utf8 COLLATE 
utf8_bin;
 alter table t_ds_resources CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
-alter table t_ds_relation_resources_task CONVERT TO CHARACTER SET utf8 COLLATE 
utf8_bin;
 alter table t_ds_schedules CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
 alter table t_ds_session CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
 alter table t_ds_task_instance CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
index 2863274708..b38bff49d4 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
@@ -69,7 +69,6 @@ import 
org.apache.dolphinscheduler.dao.entity.ProcessTaskRelationLog;
 import org.apache.dolphinscheduler.dao.entity.Project;
 import org.apache.dolphinscheduler.dao.entity.ProjectUser;
 import org.apache.dolphinscheduler.dao.entity.Resource;
-import org.apache.dolphinscheduler.dao.entity.ResourcesTask;
 import org.apache.dolphinscheduler.dao.entity.Schedule;
 import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
 import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
@@ -98,7 +97,6 @@ import 
org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
 import org.apache.dolphinscheduler.dao.mapper.ResourceMapper;
-import org.apache.dolphinscheduler.dao.mapper.ResourceTaskMapper;
 import org.apache.dolphinscheduler.dao.mapper.ResourceUserMapper;
 import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
@@ -148,7 +146,6 @@ import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -232,9 +229,6 @@ public class ProcessServiceImpl implements ProcessService {
     @Autowired
     private ResourceMapper resourceMapper;
 
-    @Autowired
-    private ResourceTaskMapper resourceTaskMapper;
-
     @Autowired
     private ResourceUserMapper resourceUserMapper;
 
@@ -1414,13 +1408,9 @@ public class ProcessServiceImpl implements 
ProcessService {
                 return new ResourceInfo();
             }
             resourceInfo = new ResourceInfo();
-            // get resource from database, only one resource should be returned
-            Integer resultList = 
resourceTaskMapper.existResourceByTaskIdNFullName(task_id, resourceFullName);
-            if (resultList != null) {
-                resourceInfo.setId(resultList);
-                resourceInfo.setRes(res.getRes());
-                resourceInfo.setResourceName(resourceFullName);
-            }
+            resourceInfo.setId(-1);
+            resourceInfo.setRes(res.getRes());
+            resourceInfo.setResourceName(resourceFullName);
             log.info("updated resource info {}",
                     JSONUtils.toJsonString(resourceInfo));
         }
@@ -2061,42 +2051,9 @@ public class ProcessServiceImpl implements 
ProcessService {
 
         if (CollectionUtils.isNotEmpty(newTaskDefinitionLogs) && 
Boolean.TRUE.equals(syncDefine)) {
             updateResult += 
taskDefinitionMapper.batchInsert(newTaskDefinitionLogs);
-
-            for (TaskDefinitionLog newTaskDefinitionLog : 
newTaskDefinitionLogs) {
-                Set<String> resourceFullNameSet = 
getResourceFullNames(newTaskDefinitionLog);
-                for (String resourceFullName : resourceFullNameSet) {
-                    List<TaskDefinition> taskDefinitionList = 
taskDefinitionMapper.selectByMap(
-                            Collections.singletonMap("code", 
newTaskDefinitionLog.getCode()));
-                    if (taskDefinitionList.size() > 0) {
-                        createRelationTaskResourcesIfNotExist(
-                                taskDefinitionList.get(0).getId(), 
resourceFullName);
-                    }
-                }
-            }
-
         }
         if (CollectionUtils.isNotEmpty(updateTaskDefinitionLogs) && 
Boolean.TRUE.equals(syncDefine)) {
             for (TaskDefinitionLog taskDefinitionLog : 
updateTaskDefinitionLogs) {
-                Set<String> resourceFullNameSet = 
getResourceFullNames(taskDefinitionLog);
-
-                // remove resources that user deselected.
-                for (ResourcesTask resourcesTask : 
resourceTaskMapper.selectByMap(
-                        Collections.singletonMap("task_id",
-                                
taskDefinitionMapper.queryByCode(taskDefinitionLog.getCode()).getId()))) {
-                    if 
(!resourceFullNameSet.contains(resourcesTask.getFullName())) {
-                        resourceTaskMapper.deleteById(resourcesTask.getId());
-                    }
-                }
-
-                for (String resourceFullName : resourceFullNameSet) {
-                    List<TaskDefinition> taskDefinitionList = 
taskDefinitionMapper.selectByMap(
-                            Collections.singletonMap("code", 
taskDefinitionLog.getCode()));
-                    if (taskDefinitionList.size() > 0) {
-                        createRelationTaskResourcesIfNotExist(
-                                taskDefinitionList.get(0).getId(), 
resourceFullName);
-                    }
-                }
-
                 updateResult += 
taskDefinitionMapper.updateById(taskDefinitionLog);
             }
         }
@@ -2717,35 +2674,4 @@ public class ProcessServiceImpl implements 
ProcessService {
         triggerRelationService.saveCommandTrigger(commandId, 
processInstanceId);
     }
 
-    private Set<String> getResourceFullNames(TaskDefinition taskDefinition) {
-        Set<String> resourceFullNames = null;
-        AbstractParameters params = 
taskPluginManager.getParameters(ParametersNode.builder()
-                
.taskType(taskDefinition.getTaskType()).taskParams(taskDefinition.getTaskParams()).build());
-
-        if (params != null && 
CollectionUtils.isNotEmpty(params.getResourceFilesList())) {
-            resourceFullNames = params.getResourceFilesList().stream()
-                    .filter(t -> !StringUtils.isBlank(t.getResourceName()))
-                    .map(ResourceInfo::getResourceName)
-                    .collect(toSet());
-        }
-
-        if (CollectionUtils.isEmpty(resourceFullNames)) {
-            return new HashSet<String>();
-        }
-
-        return resourceFullNames;
-    }
-
-    private Integer createRelationTaskResourcesIfNotExist(int taskId, String 
resourceFullName) {
-
-        Integer resourceId = 
resourceTaskMapper.existResourceByTaskIdNFullName(taskId, resourceFullName);
-        if (null == resourceId) {
-            // create the relation if not exist
-            ResourcesTask resourcesTask = new ResourcesTask(taskId, 
resourceFullName, ResourceType.FILE);
-            resourceTaskMapper.insert(resourcesTask);
-            return resourcesTask.getId();
-        }
-
-        return resourceId;
-    }
 }
diff --git 
a/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java
 
b/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java
index 65b67c09fe..fdaf75ab90 100644
--- 
a/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java
+++ 
b/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java
@@ -59,7 +59,6 @@ import 
org.apache.dolphinscheduler.dao.mapper.ProcessInstanceMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.mapper.ResourceMapper;
-import org.apache.dolphinscheduler.dao.mapper.ResourceTaskMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskGroupMapper;
@@ -154,8 +153,6 @@ public class ProcessServiceTest {
     @Mock
     private ResourceMapper resourceMapper;
     @Mock
-    private ResourceTaskMapper resourceTaskMapper;
-    @Mock
     private TaskGroupMapper taskGroupMapper;
     @Mock
     private DataSourceMapper dataSourceMapper;
@@ -720,11 +717,10 @@ public class ProcessServiceTest {
         resourceInfoNormal.setId(1);
         resourceInfoNormal.setRes("test.txt");
         resourceInfoNormal.setResourceName("/test.txt");
-        Mockito.when(resourceTaskMapper.existResourceByTaskIdNFullName(0, 
"/test.txt")).thenReturn(1);
 
         ResourceInfo updatedResourceInfo3 = 
processService.updateResourceInfo(0, resourceInfoNormal);
 
-        Assertions.assertEquals(1, updatedResourceInfo3.getId().intValue());
+        Assertions.assertEquals(-1, updatedResourceInfo3.getId().intValue());
         Assertions.assertEquals("test.txt", updatedResourceInfo3.getRes());
         Assertions.assertEquals("/test.txt", 
updatedResourceInfo3.getResourceName());
 


Reply via email to