diff --git a/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java b/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java index a9af76345a..acf3f163b4 100644 --- a/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java +++ b/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java @@ -30,6 +30,7 @@ import org.apache.jorphan.collections.HashTree; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; @@ -39,6 +40,7 @@ import java.io.InputStream; import java.lang.reflect.Field; @Service +@Transactional(rollbackFor = Exception.class) public class JMeterService { private static final String BASE_URL = "http://%s:%d"; @Resource diff --git a/backend/src/main/java/io/metersphere/api/jmeter/MsKafkaListener.java b/backend/src/main/java/io/metersphere/api/jmeter/MsKafkaListener.java index 96cbcf7b3b..e84b062105 100644 --- a/backend/src/main/java/io/metersphere/api/jmeter/MsKafkaListener.java +++ b/backend/src/main/java/io/metersphere/api/jmeter/MsKafkaListener.java @@ -10,10 +10,12 @@ import org.apache.commons.lang3.StringUtils; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @Service +@Transactional(rollbackFor = Exception.class) public class MsKafkaListener { public static final String TOPICS = "ms-api-exec-topic"; public static final String CONSUME_ID = "ms-api-exec-consume"; diff --git a/backend/src/main/java/io/metersphere/api/jmeter/ResourcePoolCalculation.java b/backend/src/main/java/io/metersphere/api/jmeter/ResourcePoolCalculation.java index 650e5cff8f..ee10a96d79 100644 --- a/backend/src/main/java/io/metersphere/api/jmeter/ResourcePoolCalculation.java +++ b/backend/src/main/java/io/metersphere/api/jmeter/ResourcePoolCalculation.java @@ -12,6 +12,7 @@ import io.metersphere.commons.exception.MSException; import io.metersphere.dto.NodeDTO; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; @@ -19,6 +20,7 @@ import java.util.List; import java.util.stream.Collectors; @Service +@Transactional(rollbackFor = Exception.class) public class ResourcePoolCalculation { @Resource TestResourcePoolMapper testResourcePoolMapper; diff --git a/backend/src/main/java/io/metersphere/api/service/ApiJmeterFileService.java b/backend/src/main/java/io/metersphere/api/service/ApiJmeterFileService.java index c6197fdb8b..f8e2f5294f 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiJmeterFileService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiJmeterFileService.java @@ -20,6 +20,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.jorphan.collections.HashTree; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.ByteArrayOutputStream; @@ -30,6 +31,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @Service +@Transactional(rollbackFor = Exception.class) public class ApiJmeterFileService { @Resource diff --git a/backend/src/main/java/io/metersphere/api/service/CommandService.java b/backend/src/main/java/io/metersphere/api/service/CommandService.java index 581c92b65c..d5db0b2000 100644 --- a/backend/src/main/java/io/metersphere/api/service/CommandService.java +++ b/backend/src/main/java/io/metersphere/api/service/CommandService.java @@ -11,6 +11,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.jorphan.exec.SystemCommand; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.BufferedReader; @@ -19,6 +20,7 @@ import java.io.InputStreamReader; import java.util.*; @Service +@Transactional(rollbackFor = Exception.class) public class CommandService { public List get(String password, MultipartFile file) { diff --git a/backend/src/main/java/io/metersphere/api/service/MsResultService.java b/backend/src/main/java/io/metersphere/api/service/MsResultService.java index 9772a64784..8d13d34495 100644 --- a/backend/src/main/java/io/metersphere/api/service/MsResultService.java +++ b/backend/src/main/java/io/metersphere/api/service/MsResultService.java @@ -12,6 +12,7 @@ import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.threads.JMeterVariables; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import sun.security.util.Cache; import java.util.*; @@ -19,6 +20,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @Service +@Transactional(rollbackFor = Exception.class) public class MsResultService { // 零时存放实时结果 private Cache cache = Cache.newHardMemoryCache(0, 3600 * 2); diff --git a/backend/src/main/java/io/metersphere/commons/consumer/LoadTestConsumer.java b/backend/src/main/java/io/metersphere/commons/consumer/LoadTestConsumer.java index 7efffd057e..6b95632f5f 100644 --- a/backend/src/main/java/io/metersphere/commons/consumer/LoadTestConsumer.java +++ b/backend/src/main/java/io/metersphere/commons/consumer/LoadTestConsumer.java @@ -10,10 +10,12 @@ import org.apache.kafka.clients.consumer.ConsumerRecord; import org.reflections8.Reflections; import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Set; @Service +@Transactional(rollbackFor = Exception.class) public class LoadTestConsumer { public static final String CONSUME_ID = "load-test-data"; diff --git a/backend/src/main/java/io/metersphere/consul/ConsulService.java b/backend/src/main/java/io/metersphere/consul/ConsulService.java index ce2737f42e..17aa1e03ee 100644 --- a/backend/src/main/java/io/metersphere/consul/ConsulService.java +++ b/backend/src/main/java/io/metersphere/consul/ConsulService.java @@ -16,12 +16,14 @@ import io.metersphere.performance.service.PerformanceTestService; import io.metersphere.service.TestResourcePoolService; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @Service +@Transactional(rollbackFor = Exception.class) public class ConsulService { private final Map> cache = new ConcurrentHashMap<>(); @Resource diff --git a/backend/src/main/java/io/metersphere/ldap/service/LdapService.java b/backend/src/main/java/io/metersphere/ldap/service/LdapService.java index a735e3122d..7298d5f7a8 100644 --- a/backend/src/main/java/io/metersphere/ldap/service/LdapService.java +++ b/backend/src/main/java/io/metersphere/ldap/service/LdapService.java @@ -21,6 +21,7 @@ import org.springframework.ldap.core.support.DefaultDirObjectFactory; import org.springframework.ldap.core.support.LdapContextSource; import org.springframework.ldap.query.SearchScope; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.naming.directory.DirContext; @@ -32,6 +33,7 @@ import java.util.Map; import static org.springframework.ldap.query.LdapQueryBuilder.query; @Service +@Transactional(rollbackFor = Exception.class) public class LdapService { @Resource diff --git a/backend/src/main/java/io/metersphere/notice/service/ApiAndPerformanceHelper.java b/backend/src/main/java/io/metersphere/notice/service/ApiAndPerformanceHelper.java index 4de13d2c17..5b4b87835f 100644 --- a/backend/src/main/java/io/metersphere/notice/service/ApiAndPerformanceHelper.java +++ b/backend/src/main/java/io/metersphere/notice/service/ApiAndPerformanceHelper.java @@ -13,6 +13,7 @@ import io.metersphere.dto.LoadTestDTO; import io.metersphere.performance.request.QueryTestPlanRequest; import io.metersphere.service.ScheduleService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -21,6 +22,7 @@ import java.util.List; @Service +@Transactional(rollbackFor = Exception.class) public class ApiAndPerformanceHelper { @Resource private ExtLoadTestMapper extLoadTestMapper; diff --git a/backend/src/main/java/io/metersphere/performance/engine/EngineFactory.java b/backend/src/main/java/io/metersphere/performance/engine/EngineFactory.java index ac29660d3f..6b78a53272 100644 --- a/backend/src/main/java/io/metersphere/performance/engine/EngineFactory.java +++ b/backend/src/main/java/io/metersphere/performance/engine/EngineFactory.java @@ -26,6 +26,7 @@ import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.reflections8.Reflections; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -47,6 +48,7 @@ import java.util.*; import java.util.stream.Collectors; @Service +@Transactional(rollbackFor = Exception.class) public class EngineFactory { private static FileService fileService; private static PerformanceTestService performanceTestService; diff --git a/backend/src/main/java/io/metersphere/performance/service/JmeterFileService.java b/backend/src/main/java/io/metersphere/performance/service/JmeterFileService.java index 2de440f59d..43e361fe9d 100644 --- a/backend/src/main/java/io/metersphere/performance/service/JmeterFileService.java +++ b/backend/src/main/java/io/metersphere/performance/service/JmeterFileService.java @@ -11,6 +11,7 @@ import io.metersphere.commons.utils.LogUtil; import io.metersphere.performance.engine.EngineContext; import io.metersphere.performance.engine.EngineFactory; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.ByteArrayOutputStream; @@ -22,6 +23,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @Service +@Transactional(rollbackFor = Exception.class) public class JmeterFileService { @Resource diff --git a/backend/src/main/java/io/metersphere/service/BaseDisplayService.java b/backend/src/main/java/io/metersphere/service/BaseDisplayService.java index 6373548114..371135e434 100644 --- a/backend/src/main/java/io/metersphere/service/BaseDisplayService.java +++ b/backend/src/main/java/io/metersphere/service/BaseDisplayService.java @@ -11,12 +11,14 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.IOException; import java.util.List; @Service +@Transactional(rollbackFor = Exception.class) public class BaseDisplayService { @Resource private SystemParameterMapper systemParameterMapper; diff --git a/backend/src/main/java/io/metersphere/service/CheckPermissionService.java b/backend/src/main/java/io/metersphere/service/CheckPermissionService.java index 98f9765009..dbd921ad75 100644 --- a/backend/src/main/java/io/metersphere/service/CheckPermissionService.java +++ b/backend/src/main/java/io/metersphere/service/CheckPermissionService.java @@ -10,6 +10,7 @@ import io.metersphere.i18n.Translator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; @@ -17,6 +18,7 @@ import java.util.Set; import java.util.stream.Collectors; @Service +@Transactional(rollbackFor = Exception.class) public class CheckPermissionService { @Resource private ExtApiTestMapper extApiTestMapper; diff --git a/backend/src/main/java/io/metersphere/service/FileService.java b/backend/src/main/java/io/metersphere/service/FileService.java index 7158472c87..eda7701992 100644 --- a/backend/src/main/java/io/metersphere/service/FileService.java +++ b/backend/src/main/java/io/metersphere/service/FileService.java @@ -8,6 +8,7 @@ import io.metersphere.commons.constants.FileType; import io.metersphere.commons.exception.MSException; import io.metersphere.performance.request.QueryProjectFileRequest; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.web.multipart.MultipartFile; @@ -22,6 +23,7 @@ import java.util.UUID; import java.util.stream.Collectors; @Service +@Transactional(rollbackFor = Exception.class) public class FileService { @Resource private FileMetadataMapper fileMetadataMapper; @@ -215,4 +217,4 @@ public class FileService { example.createCriteria().andIdIn(fileIds); return fileMetadataMapper.selectByExample(example); } -} \ No newline at end of file +} diff --git a/backend/src/main/java/io/metersphere/service/NodeResourcePoolService.java b/backend/src/main/java/io/metersphere/service/NodeResourcePoolService.java index ffe7be9ea0..85abfb996d 100644 --- a/backend/src/main/java/io/metersphere/service/NodeResourcePoolService.java +++ b/backend/src/main/java/io/metersphere/service/NodeResourcePoolService.java @@ -16,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; @@ -27,6 +28,7 @@ import java.util.stream.Collectors; import static io.metersphere.commons.constants.ResourceStatusEnum.VALID; @Service +@Transactional(rollbackFor = Exception.class) public class NodeResourcePoolService { private final static String nodeControllerUrl = "http://%s:%s/status"; diff --git a/backend/src/main/java/io/metersphere/service/UserKeyService.java b/backend/src/main/java/io/metersphere/service/UserKeyService.java index 4ad671d5a8..a98116ac0f 100644 --- a/backend/src/main/java/io/metersphere/service/UserKeyService.java +++ b/backend/src/main/java/io/metersphere/service/UserKeyService.java @@ -8,6 +8,7 @@ import io.metersphere.commons.exception.MSException; import io.metersphere.i18n.Translator; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -15,6 +16,7 @@ import java.util.List; import java.util.UUID; @Service +@Transactional(rollbackFor = Exception.class) public class UserKeyService { @Resource diff --git a/backend/src/main/java/io/metersphere/task/service/TaskService.java b/backend/src/main/java/io/metersphere/task/service/TaskService.java index dc8b24f5f4..0c47c8238f 100644 --- a/backend/src/main/java/io/metersphere/task/service/TaskService.java +++ b/backend/src/main/java/io/metersphere/task/service/TaskService.java @@ -5,12 +5,14 @@ import io.metersphere.task.dto.TaskCenterDTO; import io.metersphere.task.dto.TaskCenterRequest; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Service +@Transactional(rollbackFor = Exception.class) public class TaskService { @Resource private ExtTaskMapper extTaskMapper; diff --git a/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java b/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java index a1a467f2e4..fa9551b048 100644 --- a/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java +++ b/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java @@ -7,9 +7,12 @@ import io.metersphere.commons.constants.ReportTriggerMode; import io.metersphere.commons.consumer.LoadTestFinishEvent; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; @Component +@Transactional(rollbackFor = Exception.class) public class LoadReportStatusEvent implements LoadTestFinishEvent { @Resource diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseEvent.java b/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseEvent.java index 5541556205..4ad5d61fd3 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseEvent.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanLoadCaseEvent.java @@ -10,6 +10,7 @@ import io.metersphere.commons.utils.LogUtil; import io.metersphere.track.dto.TestPlanLoadCaseEventDTO; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -19,6 +20,7 @@ import javax.annotation.Resource; * @Description */ @Service +@Transactional(rollbackFor = Exception.class) public class TestPlanLoadCaseEvent implements LoadTestFinishEvent { @Resource TestPlanReportService testPlanReportService; diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanReportResourceService.java b/backend/src/main/java/io/metersphere/track/service/TestPlanReportResourceService.java index 6ef86bb27f..1989012221 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanReportResourceService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanReportResourceService.java @@ -6,6 +6,7 @@ import io.metersphere.base.mapper.TestPlanReportResourceMapper; import io.metersphere.base.mapper.ext.ExtTestPlanReportResourceMapper; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; @@ -17,6 +18,7 @@ import java.util.Map; * @Date 2021/8/2 1:57 下午 */ @Service +@Transactional(rollbackFor = Exception.class) public class TestPlanReportResourceService { @Resource private TestPlanReportResourceMapper testPlanReportResourceMapper; diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java b/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java index fab2cdb007..ffd7479d0f 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java @@ -34,6 +34,7 @@ import org.apache.ibatis.session.SqlSessionFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -47,6 +48,7 @@ import java.util.stream.Collectors; */ @Service +@Transactional(rollbackFor = Exception.class) public class TestPlanReportService { Logger testPlanLog = LoggerFactory.getLogger("testPlanExecuteLog"); diff --git a/backend/src/main/java/io/metersphere/xpack b/backend/src/main/java/io/metersphere/xpack index 08a0cec891..34a6e29717 160000 --- a/backend/src/main/java/io/metersphere/xpack +++ b/backend/src/main/java/io/metersphere/xpack @@ -1 +1 @@ -Subproject commit 08a0cec891c59775cdf5cd87249ceda672447c48 +Subproject commit 34a6e297177441fcc83e1926f9a00d3da6153f09