From 8b35e21390d48d4b6bdd9d03419300f8130dff28 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 4 Mar 2021 12:57:10 +0800 Subject: [PATCH] [Feature][jsonsplit] replace processDefinitionVersion with processDefinitionLog (#4942) * Modify Project and ProjectUser Mapper * project_code is bigint(20) * modify saveProcessDefine, remove the duplicate code with createTaskAndRelation * modify import/export processdefinition, add genProcessData * modify listResources mothod and remove getResourceIds mothod * 1 * conflicts solve * modify listResources mothod and remove getResourceIds mothod * modify listResources mothod and remove getResourceIds mothod * replace processDefinitionVersion with processDefinitionLog --- .../ProcessDefinitionController.java | 9 +- .../api/service/ProcessDefinitionService.java | 25 ++ .../ProcessDefinitionVersionService.java | 73 ----- .../impl/ProcessDefinitionServiceImpl.java | 82 ++++++ .../ProcessDefinitionVersionServiceImpl.java | 184 ------------ .../impl/ProcessInstanceServiceImpl.java | 4 - .../ProcessDefinitionControllerTest.java | 12 +- .../service/ProcessDefinitionServiceTest.java | 2 - .../ProcessDefinitionVersionServiceTest.java | 276 ------------------ .../service/ProcessInstanceServiceTest.java | 4 - .../mapper/ProcessDefinitionLogMapper.java | 21 ++ .../dao/mapper/ProcessDefinitionMapper.java | 13 + .../ProcessDefinitionVersionMapper.java | 69 ----- .../dao/mapper/ProcessDefinitionLogMapper.xml | 16 + .../mapper/ProcessDefinitionVersionMapper.xml | 57 ---- .../ProcessDefinitionVersionMapperTest.java | 168 ----------- 16 files changed, 164 insertions(+), 851 deletions(-) delete mode 100644 dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionService.java delete mode 100644 dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionVersionServiceImpl.java delete mode 100644 dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionServiceTest.java delete mode 100644 dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.java delete mode 100644 dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.xml delete mode 100644 dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapperTest.java diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java index ab8fc2cbb0..47ab8ac480 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java @@ -37,7 +37,6 @@ import static org.apache.dolphinscheduler.api.enums.Status.VERIFY_PROCESS_DEFINI import org.apache.dolphinscheduler.api.enums.Status; import org.apache.dolphinscheduler.api.exceptions.ApiException; import org.apache.dolphinscheduler.api.service.ProcessDefinitionService; -import org.apache.dolphinscheduler.api.service.ProcessDefinitionVersionService; import org.apache.dolphinscheduler.api.utils.RegexUtils; import org.apache.dolphinscheduler.api.utils.Result; import org.apache.dolphinscheduler.common.Constants; @@ -90,9 +89,6 @@ public class ProcessDefinitionController extends BaseController { @Autowired private ProcessDefinitionService processDefinitionService; - @Autowired - private ProcessDefinitionVersionService processDefinitionVersionService; - /** * create process definition * @@ -297,8 +293,9 @@ public class ProcessDefinitionController extends BaseController { @RequestParam(value = "pageSize") int pageSize, @RequestParam(value = "processDefinitionId") int processDefinitionId) { - Map result = processDefinitionVersionService.queryProcessDefinitionVersions(loginUser + Map result = processDefinitionService.queryProcessDefinitionVersions(loginUser , projectName, pageNo, pageSize, processDefinitionId); + return returnDataList(result); } @@ -351,7 +348,7 @@ public class ProcessDefinitionController extends BaseController { @RequestParam(value = "processDefinitionId") int processDefinitionId, @RequestParam(value = "version") long version) { - Map result = processDefinitionVersionService.deleteByProcessDefinitionIdAndVersion(loginUser, projectName, processDefinitionId, version); + Map result = processDefinitionService.deleteByProcessDefinitionIdAndVersion(loginUser, projectName, processDefinitionId, version); return returnDataList(result); } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionService.java index 82651dde74..ca4703c203 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionService.java @@ -274,5 +274,30 @@ public interface ProcessDefinitionService { */ Map switchProcessDefinitionVersion(User loginUser, String projectName , int processDefinitionId, long version); + + /** + * query the pagination versions info by one certain process definition id + * + * @param loginUser login user info to check auth + * @param projectName process definition project name + * @param pageNo page number + * @param pageSize page size + * @param processDefinitionId process definition id + * @return the pagination process definition versions info of the certain process definition + */ + Map queryProcessDefinitionVersions(User loginUser, String projectName, + int pageNo, int pageSize, int processDefinitionId); + + /** + * delete one certain process definition by version number and process definition id + * + * @param loginUser login user info to check auth + * @param projectName process definition project name + * @param processDefinitionId process definition id + * @param version version number + * @return delele result code + */ + Map deleteByProcessDefinitionIdAndVersion(User loginUser, String projectName, + int processDefinitionId, long version); } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionService.java deleted file mode 100644 index cc7a344152..0000000000 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionService.java +++ /dev/null @@ -1,73 +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.api.service; - -import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; -import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionVersion; -import org.apache.dolphinscheduler.dao.entity.User; - -import java.util.Map; - -/** - * process definition version service - */ -public interface ProcessDefinitionVersionService { - - /** - * add the newest version of one process definition - * - * @param processDefinition the process definition that need to record version - * @return the newest version number of this process definition - */ - int addProcessDefinitionVersion(ProcessDefinition processDefinition); - - /** - * query the pagination versions info by one certain process definition id - * - * @param loginUser login user info to check auth - * @param projectName process definition project name - * @param pageNo page number - * @param pageSize page size - * @param processDefinitionId process definition id - * @return the pagination process definition versions info of the certain process definition - */ - Map queryProcessDefinitionVersions(User loginUser, String projectName, - int pageNo, int pageSize, int processDefinitionId); - - /** - * query one certain process definition version by version number and process definition id - * - * @param processDefinitionId process definition id - * @param version version number - * @return the process definition version info - */ - ProcessDefinitionVersion queryByProcessDefinitionIdAndVersion(int processDefinitionId, - long version); - - /** - * delete one certain process definition by version number and process definition id - * - * @param loginUser login user info to check auth - * @param projectName process definition project name - * @param processDefinitionId process definition id - * @param version version number - * @return delele result code - */ - Map deleteByProcessDefinitionIdAndVersion(User loginUser, String projectName, - int processDefinitionId, long version); -} diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java index d3da26f0f2..db972c4b6b 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java @@ -101,6 +101,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.collect.ImmutableMap; /** * process definition service impl @@ -1701,4 +1702,85 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro } } + /** + * query the pagination versions info by one certain process definition id + * + * @param loginUser login user info to check auth + * @param projectName process definition project name + * @param pageNo page number + * @param pageSize page size + * @param processDefinitionId process definition id + * @return the pagination process definition versions info of the certain process definition + */ + @Override + public Map queryProcessDefinitionVersions(User loginUser, String projectName, int pageNo, int pageSize, int processDefinitionId) { + + Map result = new HashMap<>(); + + // check the if pageNo or pageSize less than 1 + if (pageNo <= 0 || pageSize <= 0) { + putMsg(result + , Status.QUERY_PROCESS_DEFINITION_VERSIONS_PAGE_NO_OR_PAGE_SIZE_LESS_THAN_1_ERROR + , pageNo + , pageSize); + return result; + } + + Project project = projectMapper.queryByName(projectName); + + // check project auth + Map checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName); + Status resultStatus = (Status) checkResult.get(Constants.STATUS); + if (resultStatus != Status.SUCCESS) { + return checkResult; + } + + ProcessDefinition processDefinition = processDefinitionMapper.queryByDefineId(processDefinitionId); + + PageInfo pageInfo = new PageInfo<>(pageNo, pageSize); + Page page = new Page<>(pageNo, pageSize); + IPage processDefinitionVersionsPaging = processDefinitionLogMapper.queryProcessDefinitionVersionsPaging(page, processDefinition.getCode()); + List processDefinitionLogs = processDefinitionVersionsPaging.getRecords(); + + ProcessData processData = processService.genProcessData(processDefinition); + processDefinition.setProcessDefinitionJson(JSONUtils.toJsonString(processData)); + pageInfo.setLists(processDefinitionLogs); + pageInfo.setTotalCount((int) processDefinitionVersionsPaging.getTotal()); + return ImmutableMap.of( + Constants.MSG, Status.SUCCESS.getMsg() + , Constants.STATUS, Status.SUCCESS + , Constants.DATA_LIST, pageInfo); + } + + + /** + * delete one certain process definition by version number and process definition id + * + * @param loginUser login user info to check auth + * @param projectName process definition project name + * @param processDefinitionId process definition id + * @param version version number + * @return delele result code + */ + @Override + public Map deleteByProcessDefinitionIdAndVersion(User loginUser, String projectName, int processDefinitionId, long version) { + Map result = new HashMap<>(); + Project project = projectMapper.queryByName(projectName); + // check project auth + Map checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName); + Status resultStatus = (Status) checkResult.get(Constants.STATUS); + if (resultStatus != Status.SUCCESS) { + return checkResult; + } + ProcessDefinition processDefinition = processDefinitionMapper.queryByDefineId(processDefinitionId); + + if (processDefinition == null) { + putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processDefinitionId); + } else { + processDefinitionLogMapper.deleteByProcessDefinitionCodeAndVersion(processDefinition.getCode(), version); + putMsg(result, Status.SUCCESS); + } + return result; + + } } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionVersionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionVersionServiceImpl.java deleted file mode 100644 index 0764810cd7..0000000000 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionVersionServiceImpl.java +++ /dev/null @@ -1,184 +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.api.service.impl; - -import org.apache.dolphinscheduler.api.enums.Status; -import org.apache.dolphinscheduler.api.service.ProcessDefinitionVersionService; -import org.apache.dolphinscheduler.api.service.ProjectService; -import org.apache.dolphinscheduler.api.utils.PageInfo; -import org.apache.dolphinscheduler.common.Constants; -import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; -import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionVersion; -import org.apache.dolphinscheduler.dao.entity.Project; -import org.apache.dolphinscheduler.dao.entity.User; -import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionVersionMapper; -import org.apache.dolphinscheduler.dao.mapper.ProjectMapper; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.google.common.collect.ImmutableMap; - -/** - * process definition version service impl - */ -@Service -public class ProcessDefinitionVersionServiceImpl extends BaseServiceImpl implements ProcessDefinitionVersionService { - - @Autowired - private ProcessDefinitionVersionMapper processDefinitionVersionMapper; - - @Autowired - private ProjectService projectService; - - @Autowired - private ProjectMapper projectMapper; - - /** - * add the newest version of one process definition - * - * @param processDefinition the process definition that need to record version - * @return the newest version number of this process definition - */ - @Override - public int addProcessDefinitionVersion(ProcessDefinition processDefinition) { - - long version = this.queryMaxVersionByProcessDefinitionId(processDefinition.getId()) + 1; - - ProcessDefinitionVersion processDefinitionVersion = ProcessDefinitionVersion - .newBuilder() - .processDefinitionId(processDefinition.getId()) - .version(version) - .description(processDefinition.getDescription()) - .locations(processDefinition.getLocations()) - .connects(processDefinition.getConnects()) - .timeout(processDefinition.getTimeout()) - .globalParams(processDefinition.getGlobalParams()) - .createTime(processDefinition.getUpdateTime()) - .warningGroupId(processDefinition.getWarningGroupId()) - .resourceIds(processDefinition.getResourceIds()) - .build(); - - processDefinitionVersionMapper.insert(processDefinitionVersion); - - return Integer.parseInt(String.valueOf(version)); - } - - /** - * query the max version number by the process definition id - * - * @param processDefinitionId process definition id - * @return the max version number of this id - */ - private long queryMaxVersionByProcessDefinitionId(int processDefinitionId) { - Long maxVersion = processDefinitionVersionMapper.queryMaxVersionByProcessDefinitionId(processDefinitionId); - if (Objects.isNull(maxVersion)) { - return 0L; - } else { - return maxVersion; - } - } - - /** - * query the pagination versions info by one certain process definition id - * - * @param loginUser login user info to check auth - * @param projectName process definition project name - * @param pageNo page number - * @param pageSize page size - * @param processDefinitionId process definition id - * @return the pagination process definition versions info of the certain process definition - */ - @Override - public Map queryProcessDefinitionVersions(User loginUser, String projectName, int pageNo, int pageSize, int processDefinitionId) { - - Map result = new HashMap<>(); - - // check the if pageNo or pageSize less than 1 - if (pageNo <= 0 || pageSize <= 0) { - putMsg(result - , Status.QUERY_PROCESS_DEFINITION_VERSIONS_PAGE_NO_OR_PAGE_SIZE_LESS_THAN_1_ERROR - , pageNo - , pageSize); - return result; - } - - Project project = projectMapper.queryByName(projectName); - - // check project auth - Map checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName); - Status resultStatus = (Status) checkResult.get(Constants.STATUS); - if (resultStatus != Status.SUCCESS) { - return checkResult; - } - - PageInfo pageInfo = new PageInfo<>(pageNo, pageSize); - Page page = new Page<>(pageNo, pageSize); - IPage processDefinitionVersionsPaging = processDefinitionVersionMapper.queryProcessDefinitionVersionsPaging(page, processDefinitionId); - List processDefinitionVersions = processDefinitionVersionsPaging.getRecords(); - pageInfo.setLists(processDefinitionVersions); - pageInfo.setTotalCount((int) processDefinitionVersionsPaging.getTotal()); - return ImmutableMap.of( - Constants.MSG, Status.SUCCESS.getMsg() - , Constants.STATUS, Status.SUCCESS - , Constants.DATA_LIST, pageInfo); - } - - /** - * query one certain process definition version by version number and process definition id - * - * @param processDefinitionId process definition id - * @param version version number - * @return the process definition version info - */ - @Override - public ProcessDefinitionVersion queryByProcessDefinitionIdAndVersion(int processDefinitionId, long version) { - return processDefinitionVersionMapper.queryByProcessDefinitionIdAndVersion(processDefinitionId, version); - } - - /** - * delete one certain process definition by version number and process definition id - * - * @param loginUser login user info to check auth - * @param projectName process definition project name - * @param processDefinitionId process definition id - * @param version version number - * @return delele result code - */ - @Override - public Map deleteByProcessDefinitionIdAndVersion(User loginUser, String projectName, int processDefinitionId, long version) { - Map result = new HashMap<>(); - Project project = projectMapper.queryByName(projectName); - // check project auth - Map checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName); - Status resultStatus = (Status) checkResult.get(Constants.STATUS); - if (resultStatus != Status.SUCCESS) { - return checkResult; - } - processDefinitionVersionMapper.deleteByProcessDefinitionIdAndVersion(processDefinitionId, version); - putMsg(result, Status.SUCCESS); - return result; - } -} diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java index 4e53377d24..ca0bc8ccee 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java @@ -30,7 +30,6 @@ import org.apache.dolphinscheduler.api.enums.Status; import org.apache.dolphinscheduler.api.service.ExecutorService; import org.apache.dolphinscheduler.api.service.LoggerService; import org.apache.dolphinscheduler.api.service.ProcessDefinitionService; -import org.apache.dolphinscheduler.api.service.ProcessDefinitionVersionService; import org.apache.dolphinscheduler.api.service.ProcessInstanceService; import org.apache.dolphinscheduler.api.service.ProjectService; import org.apache.dolphinscheduler.api.service.UsersService; @@ -122,9 +121,6 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce @Autowired ProcessDefinitionService processDefinitionService; - @Autowired - ProcessDefinitionVersionService processDefinitionVersionService; - @Autowired ExecutorService execService; diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionControllerTest.java index e44fad8151..96d6ad264b 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionControllerTest.java @@ -18,7 +18,6 @@ package org.apache.dolphinscheduler.api.controller; import org.apache.dolphinscheduler.api.enums.Status; -import org.apache.dolphinscheduler.api.service.ProcessDefinitionVersionService; import org.apache.dolphinscheduler.api.service.impl.ProcessDefinitionServiceImpl; import org.apache.dolphinscheduler.api.utils.PageInfo; import org.apache.dolphinscheduler.api.utils.Result; @@ -26,7 +25,7 @@ import org.apache.dolphinscheduler.common.Constants; import org.apache.dolphinscheduler.common.enums.ReleaseState; import org.apache.dolphinscheduler.common.enums.UserType; import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; -import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionVersion; +import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionLog; import org.apache.dolphinscheduler.dao.entity.Resource; import org.apache.dolphinscheduler.dao.entity.User; @@ -64,9 +63,6 @@ public class ProcessDefinitionControllerTest { @Mock private ProcessDefinitionServiceImpl processDefinitionService; - @Mock - private ProcessDefinitionVersionService processDefinitionVersionService; - protected User user; @Before @@ -392,8 +388,8 @@ public class ProcessDefinitionControllerTest { String projectName = "test"; Map resultMap = new HashMap<>(); putMsg(resultMap, Status.SUCCESS); - resultMap.put(Constants.DATA_LIST, new PageInfo(1, 10)); - Mockito.when(processDefinitionVersionService.queryProcessDefinitionVersions( + resultMap.put(Constants.DATA_LIST, new PageInfo(1, 10)); + Mockito.when(processDefinitionService.queryProcessDefinitionVersions( user , projectName , 1 @@ -435,7 +431,7 @@ public class ProcessDefinitionControllerTest { String projectName = "test"; Map resultMap = new HashMap<>(); putMsg(resultMap, Status.SUCCESS); - Mockito.when(processDefinitionVersionService.deleteByProcessDefinitionIdAndVersion( + Mockito.when(processDefinitionService.deleteByProcessDefinitionIdAndVersion( user , projectName , 1 diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java index c67d13c368..fbe0f51775 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java @@ -253,8 +253,6 @@ public class ProcessDefinitionServiceTest { private ProcessInstanceService processInstanceService; @Mock private TaskInstanceMapper taskInstanceMapper; - @Mock - private ProcessDefinitionVersionService processDefinitionVersionService; @Test public void testQueryProcessDefinitionList() { diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionServiceTest.java deleted file mode 100644 index ba4f2e5e42..0000000000 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionVersionServiceTest.java +++ /dev/null @@ -1,276 +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.api.service; - -import org.apache.dolphinscheduler.api.enums.Status; -import org.apache.dolphinscheduler.api.service.impl.ProcessDefinitionVersionServiceImpl; -import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl; -import org.apache.dolphinscheduler.api.utils.PageInfo; -import org.apache.dolphinscheduler.common.Constants; -import org.apache.dolphinscheduler.common.enums.UserType; -import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; -import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionVersion; -import org.apache.dolphinscheduler.dao.entity.Project; -import org.apache.dolphinscheduler.dao.entity.User; -import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionVersionMapper; -import org.apache.dolphinscheduler.dao.mapper.ProjectMapper; - -import java.text.MessageFormat; -import java.util.HashMap; -import java.util.Map; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.google.common.collect.Lists; - -/** - * process definition version service test - */ -@RunWith(MockitoJUnitRunner.class) -public class ProcessDefinitionVersionServiceTest { - - @InjectMocks - private ProcessDefinitionVersionServiceImpl processDefinitionVersionService; - - @Mock - private ProcessDefinitionVersionMapper processDefinitionVersionMapper; - - @Mock - private ProjectMapper projectMapper; - - @Mock - private ProjectServiceImpl projectService; - - @Test - public void testAddProcessDefinitionVersion() { - long expectedVersion = 5L; - ProcessDefinition processDefinition = getProcessDefinition(); - Mockito.when(processDefinitionVersionMapper - .queryMaxVersionByProcessDefinitionId(processDefinition.getId())) - .thenReturn(expectedVersion); - - int version = processDefinitionVersionService.addProcessDefinitionVersion(processDefinition); - - Assert.assertEquals(expectedVersion + 1, version); - } - - @Test - @SuppressWarnings("unchecked") - public void testQueryProcessDefinitionVersions() { - // pageNo <= 0 - int pageNo = -1; - int pageSize = 10; - int processDefinitionId = 66; - - String projectName = "project_test1"; - User loginUser = new User(); - loginUser.setId(-1); - loginUser.setUserType(UserType.GENERAL_USER); - Map resultMap1 = processDefinitionVersionService.queryProcessDefinitionVersions( - loginUser - , projectName - , pageNo - , pageSize - , processDefinitionId); - Assert.assertEquals(Status.QUERY_PROCESS_DEFINITION_VERSIONS_PAGE_NO_OR_PAGE_SIZE_LESS_THAN_1_ERROR - , resultMap1.get(Constants.STATUS)); - - // pageSize <= 0 - pageNo = 1; - pageSize = -1; - Map resultMap2 = processDefinitionVersionService.queryProcessDefinitionVersions( - loginUser - , projectName - , pageNo - , pageSize - , processDefinitionId); - Assert.assertEquals(Status.QUERY_PROCESS_DEFINITION_VERSIONS_PAGE_NO_OR_PAGE_SIZE_LESS_THAN_1_ERROR - , resultMap2.get(Constants.STATUS)); - - Map res = new HashMap<>(); - putMsg(res, Status.PROJECT_NOT_FOUNT); - Project project = getProject(projectName); - Mockito.when(projectMapper.queryByName(projectName)) - .thenReturn(project); - Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)) - .thenReturn(res); - - // project auth fail - pageNo = 1; - pageSize = 10; - Map resultMap3 = processDefinitionVersionService.queryProcessDefinitionVersions( - loginUser - , projectName - , pageNo - , pageSize - , processDefinitionId); - Assert.assertEquals(Status.PROJECT_NOT_FOUNT, resultMap3.get(Constants.STATUS)); - - putMsg(res, Status.SUCCESS); - - Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)) - .thenReturn(res); - - ProcessDefinitionVersion processDefinitionVersion = getProcessDefinitionVersion(getProcessDefinition()); - - Mockito.when(processDefinitionVersionMapper - .queryProcessDefinitionVersionsPaging(Mockito.any(Page.class), Mockito.eq(processDefinitionId))) - .thenReturn(new Page() - .setRecords(Lists.newArrayList(processDefinitionVersion))); - - Map resultMap4 = processDefinitionVersionService.queryProcessDefinitionVersions( - loginUser - , projectName - , pageNo - , pageSize - , processDefinitionId); - Assert.assertEquals(Status.SUCCESS, resultMap4.get(Constants.STATUS)); - Assert.assertEquals(processDefinitionVersion - , ((PageInfo) resultMap4.get(Constants.DATA_LIST)) - .getLists().get(0)); - } - - @Test - public void testQueryByProcessDefinitionIdAndVersion() { - - ProcessDefinitionVersion expectedProcessDefinitionVersion = - getProcessDefinitionVersion(getProcessDefinition()); - - int processDefinitionId = 66; - long version = 10; - Mockito.when(processDefinitionVersionMapper.queryByProcessDefinitionIdAndVersion(processDefinitionId, version)) - .thenReturn(expectedProcessDefinitionVersion); - - ProcessDefinitionVersion processDefinitionVersion = processDefinitionVersionService - .queryByProcessDefinitionIdAndVersion(processDefinitionId, version); - - Assert.assertEquals(expectedProcessDefinitionVersion, processDefinitionVersion); - } - - @Test - public void testDeleteByProcessDefinitionIdAndVersion() { - String projectName = "project_test1"; - int processDefinitionId = 66; - long version = 10; - Project project = getProject(projectName); - Mockito.when(projectMapper.queryByName(projectName)) - .thenReturn(project); - - User loginUser = new User(); - loginUser.setId(-1); - loginUser.setUserType(UserType.GENERAL_USER); - - // project auth fail - Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)) - .thenReturn(new HashMap<>()); - - Map resultMap1 = processDefinitionVersionService.deleteByProcessDefinitionIdAndVersion( - loginUser - , projectName - , processDefinitionId - , version); - - Assert.assertEquals(0, resultMap1.size()); - - Map res = new HashMap<>(); - putMsg(res, Status.SUCCESS); - - Mockito.when(processDefinitionVersionMapper.deleteByProcessDefinitionIdAndVersion(processDefinitionId, version)) - .thenReturn(1); - Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)) - .thenReturn(res); - - Map resultMap2 = processDefinitionVersionService.deleteByProcessDefinitionIdAndVersion( - loginUser - , projectName - , processDefinitionId - , version); - - Assert.assertEquals(Status.SUCCESS, resultMap2.get(Constants.STATUS)); - - } - - /** - * get mock processDefinitionVersion by processDefinition - * - * @return processDefinitionVersion - */ - private ProcessDefinitionVersion getProcessDefinitionVersion(ProcessDefinition processDefinition) { - return ProcessDefinitionVersion - .newBuilder() - .processDefinitionId(processDefinition.getId()) - .version(1) - .processDefinitionJson(processDefinition.getProcessDefinitionJson()) - .description(processDefinition.getDescription()) - .locations(processDefinition.getLocations()) - .connects(processDefinition.getConnects()) - .timeout(processDefinition.getTimeout()) - .globalParams(processDefinition.getGlobalParams()) - .createTime(processDefinition.getUpdateTime()) - .warningGroupId(processDefinition.getWarningGroupId()) - .resourceIds(processDefinition.getResourceIds()) - .build(); - } - - /** - * get mock processDefinition - * - * @return ProcessDefinition - */ - private ProcessDefinition getProcessDefinition() { - - ProcessDefinition processDefinition = new ProcessDefinition(); - processDefinition.setId(66); - processDefinition.setName("test_pdf"); - processDefinition.setProjectId(2); - processDefinition.setTenantId(1); - processDefinition.setDescription(""); - - return processDefinition; - } - - /** - * get mock Project - * - * @param projectName projectName - * @return Project - */ - private Project getProject(String projectName) { - Project project = new Project(); - project.setId(1); - project.setName(projectName); - project.setUserId(1); - return project; - } - - private void putMsg(Map result, Status status, Object... statusParams) { - result.put(Constants.STATUS, status); - if (statusParams != null && statusParams.length > 0) { - result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams)); - } else { - result.put(Constants.MSG, status.getMsg()); - } - } -} \ No newline at end of file diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessInstanceServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessInstanceServiceTest.java index 50513425e5..27650e37f8 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessInstanceServiceTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessInstanceServiceTest.java @@ -92,9 +92,6 @@ public class ProcessInstanceServiceTest { @Mock ProcessDefinitionService processDefinitionService; - @Mock - ProcessDefinitionVersionService processDefinitionVersionService; - @Mock TaskInstanceMapper taskInstanceMapper; @@ -387,7 +384,6 @@ public class ProcessInstanceServiceTest { when(processService.getTenantForProcess(Mockito.anyInt(), Mockito.anyInt())).thenReturn(tenant); when(processService.updateProcessInstance(processInstance)).thenReturn(1); when(processDefinitionService.checkProcessNodeList(Mockito.any(), eq(shellJson))).thenReturn(result); - when(processDefinitionVersionService.addProcessDefinitionVersion(processDefinition)).thenReturn(1); Map processInstanceFinishRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1, shellJson, "2020-02-21 00:00:00", true, Flag.YES, "", ""); Assert.assertEquals(Status.UPDATE_PROCESS_INSTANCE_ERROR, processInstanceFinishRes.get(Constants.STATUS)); diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.java index c6d3a54fd8..f41eb4dc0d 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.java @@ -24,6 +24,8 @@ import org.apache.ibatis.annotations.Param; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; /** * process definition log mapper interface @@ -62,4 +64,23 @@ public interface ProcessDefinitionLogMapper extends BaseMapper queryProcessDefinitionVersionsPaging(Page page, + @Param("processDefinitionCode") Long processDefinitionCode); + + /** + * delete the certain process definition version by process definition id and version number + * + * @param processDefinitionCode process definition code + * @param version version number + * @return delete result + */ + int deleteByProcessDefinitionCodeAndVersion(@Param("processDefinitionCode") Long processDefinitionCode, @Param("version") long version); } diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java index fb5cb79914..eba6962ab9 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java @@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.dao.mapper; import org.apache.dolphinscheduler.dao.entity.DefinitionGroupByUser; import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; +import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionLog; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; @@ -29,6 +30,7 @@ import java.util.Map; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; /** * process definition mapper interface @@ -169,4 +171,15 @@ public interface ProcessDefinitionMapper extends BaseMapper { * @return project ids list */ List listProjectIds(); + + + /** + * query the paging process definition version list by pagination info + * + * @param page pagination info + * @param processDefinitionCode process definition code + * @return the paging process definition version list + */ + IPage queryProcessDefinitionVersionsPaging(Page page, + @Param("processDefinitionCode") Long processDefinitionCode); } diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.java deleted file mode 100644 index 27efda4327..0000000000 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.java +++ /dev/null @@ -1,69 +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.ProcessDefinitionVersion; - -import org.apache.ibatis.annotations.Param; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - -/** - * process definition mapper interface - */ -public interface ProcessDefinitionVersionMapper extends BaseMapper { - - /** - * query max version by process definition id - * - * @param processDefinitionId process definition id - * @return the max version of this process definition id - */ - Long queryMaxVersionByProcessDefinitionId(@Param("processDefinitionId") int processDefinitionId); - - /** - * query the paging process definition version list by pagination info - * - * @param page pagination info - * @param processDefinitionId process definition id - * @return the paging process definition version list - */ - IPage queryProcessDefinitionVersionsPaging(Page page, - @Param("processDefinitionId") int processDefinitionId); - - /** - * query the certain process definition version info by process definition id and version number - * - * @param processDefinitionId process definition id - * @param version version number - * @return the process definition version info - */ - ProcessDefinitionVersion queryByProcessDefinitionIdAndVersion(@Param("processDefinitionId") int processDefinitionId, @Param("version") long version); - - /** - * delete the certain process definition version by process definition id and version number - * - * @param processDefinitionId process definition id - * @param version version number - * @return delete result - */ - int deleteByProcessDefinitionIdAndVersion(@Param("processDefinitionId") int processDefinitionId, @Param("version") long version); - -} diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.xml index 60108fbd7a..436a668633 100644 --- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.xml +++ b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionLogMapper.xml @@ -56,4 +56,20 @@ where code = #{processDefinitionCode} + + + + + delete + from t_ds_process_definition_log + where code = #{processDefinitionCode} + and version = #{version} + diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.xml deleted file mode 100644 index ff20e23246..0000000000 --- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapper.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - id - , process_definition_id, version, process_definition_json, description, global_params,locations,connects, - warning_group_id, create_time, timeout, resource_ids - - - - - - - - - delete - from t_ds_process_definition_version - where process_definition_id = #{processDefinitionId} - and version = #{version} - - - diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapperTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapperTest.java deleted file mode 100644 index 938e26dd6c..0000000000 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionVersionMapperTest.java +++ /dev/null @@ -1,168 +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.common.utils.StringUtils; -import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionVersion; - -import java.util.Date; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.Rollback; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.transaction.annotation.Transactional; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - -@RunWith(SpringRunner.class) -@SpringBootTest -@Transactional -@Rollback(true) -public class ProcessDefinitionVersionMapperTest { - - - @Autowired - ProcessDefinitionMapper processDefinitionMapper; - - @Autowired - ProcessDefinitionVersionMapper processDefinitionVersionMapper; - - @Autowired - UserMapper userMapper; - - @Autowired - QueueMapper queueMapper; - - @Autowired - TenantMapper tenantMapper; - - @Autowired - ProjectMapper projectMapper; - - /** - * insert - * - * @return ProcessDefinition - */ - private ProcessDefinitionVersion insertOne() { - // insertOne - ProcessDefinitionVersion processDefinitionVersion - = new ProcessDefinitionVersion(); - processDefinitionVersion.setProcessDefinitionId(66); - processDefinitionVersion.setVersion(10); - processDefinitionVersion.setProcessDefinitionJson(StringUtils.EMPTY); - processDefinitionVersion.setDescription(StringUtils.EMPTY); - processDefinitionVersion.setGlobalParams(StringUtils.EMPTY); - processDefinitionVersion.setCreateTime(new Date()); - processDefinitionVersion.setLocations(StringUtils.EMPTY); - processDefinitionVersion.setConnects(StringUtils.EMPTY); - processDefinitionVersion.setTimeout(10); - processDefinitionVersion.setResourceIds("1,2"); - processDefinitionVersionMapper.insert(processDefinitionVersion); - return processDefinitionVersion; - } - - /** - * insert - * - * @return ProcessDefinitionVersion - */ - private ProcessDefinitionVersion insertTwo() { - // insertTwo - ProcessDefinitionVersion processDefinitionVersion - = new ProcessDefinitionVersion(); - processDefinitionVersion.setProcessDefinitionId(67); - processDefinitionVersion.setVersion(11); - processDefinitionVersion.setProcessDefinitionJson(StringUtils.EMPTY); - processDefinitionVersion.setDescription(StringUtils.EMPTY); - processDefinitionVersion.setGlobalParams(StringUtils.EMPTY); - processDefinitionVersion.setCreateTime(new Date()); - processDefinitionVersion.setLocations(StringUtils.EMPTY); - processDefinitionVersion.setConnects(StringUtils.EMPTY); - processDefinitionVersion.setTimeout(10); - processDefinitionVersion.setResourceIds("1,2"); - processDefinitionVersionMapper.insert(processDefinitionVersion); - return processDefinitionVersion; - } - - /** - * test insert - */ - @Test - public void testInsert() { - ProcessDefinitionVersion processDefinitionVersion = insertOne(); - Assert.assertTrue(processDefinitionVersion.getId() > 0); - } - - /** - * test query - */ - @Test - public void testQueryMaxVersionByProcessDefinitionId() { - ProcessDefinitionVersion processDefinitionVersion = insertOne(); - - Long version = processDefinitionVersionMapper.queryMaxVersionByProcessDefinitionId( - processDefinitionVersion.getProcessDefinitionId()); - // query - Assert.assertEquals(10, (long) version); - } - - @Test - public void testQueryProcessDefinitionVersionsPaging() { - insertOne(); - insertTwo(); - - Page page = new Page<>(1, 3); - - IPage processDefinitionVersionIPage = - processDefinitionVersionMapper.queryProcessDefinitionVersionsPaging(page, 10); - - Assert.assertTrue(processDefinitionVersionIPage.getSize() >= 2); - } - - @Test - public void testDeleteByProcessDefinitionIdAndVersion() { - ProcessDefinitionVersion processDefinitionVersion = insertOne(); - int i = processDefinitionVersionMapper.deleteByProcessDefinitionIdAndVersion( - processDefinitionVersion.getProcessDefinitionId(), processDefinitionVersion.getVersion()); - Assert.assertEquals(1, i); - } - - @Test - public void testQueryByProcessDefinitionIdAndVersion() { - ProcessDefinitionVersion processDefinitionVersion1 = insertOne(); - ProcessDefinitionVersion processDefinitionVersion3 = processDefinitionVersionMapper.queryByProcessDefinitionIdAndVersion( - processDefinitionVersion1.getProcessDefinitionId(), 10); - - ProcessDefinitionVersion processDefinitionVersion2 = insertTwo(); - ProcessDefinitionVersion processDefinitionVersion4 = processDefinitionVersionMapper.queryByProcessDefinitionIdAndVersion( - processDefinitionVersion2.getProcessDefinitionId(), 11); - - Assert.assertEquals(processDefinitionVersion1.getProcessDefinitionId(), - processDefinitionVersion3.getProcessDefinitionId()); - Assert.assertEquals(processDefinitionVersion2.getProcessDefinitionId(), - processDefinitionVersion4.getProcessDefinitionId()); - - } - -} \ No newline at end of file