Commit e944874e6459b687c6dddc03f6236eb4ef581d66

Authored by xp.Huang
2 parents a351929c f93602c0

Merge branch '20221124' into 'master'

20221124

See merge request huang/thingsboard3.3.2!142
@@ -21,14 +21,11 @@ import com.fasterxml.jackson.databind.node.ObjectNode; @@ -21,14 +21,11 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
21 import lombok.RequiredArgsConstructor; 21 import lombok.RequiredArgsConstructor;
22 import lombok.extern.slf4j.Slf4j; 22 import lombok.extern.slf4j.Slf4j;
23 import org.apache.commons.lang3.StringUtils; 23 import org.apache.commons.lang3.StringUtils;
  24 +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
24 import org.springframework.stereotype.Service; 25 import org.springframework.stereotype.Service;
25 -import org.thingsboard.server.common.data.DataConstants;  
26 -import org.thingsboard.server.common.data.EntityType;  
27 -import org.thingsboard.server.common.data.HasName;  
28 -import org.thingsboard.server.common.data.HasTenantId;  
29 -import org.thingsboard.server.common.data.User; 26 +import org.thingsboard.server.cluster.TbClusterService;
  27 +import org.thingsboard.server.common.data.*;
30 import org.thingsboard.server.common.data.audit.ActionType; 28 import org.thingsboard.server.common.data.audit.ActionType;
31 -import org.thingsboard.server.common.data.exception.ThingsboardException;  
32 import org.thingsboard.server.common.data.id.CustomerId; 29 import org.thingsboard.server.common.data.id.CustomerId;
33 import org.thingsboard.server.common.data.id.EntityId; 30 import org.thingsboard.server.common.data.id.EntityId;
34 import org.thingsboard.server.common.data.id.TenantId; 31 import org.thingsboard.server.common.data.id.TenantId;
@@ -40,14 +37,12 @@ import org.thingsboard.server.common.msg.TbMsg; @@ -40,14 +37,12 @@ import org.thingsboard.server.common.msg.TbMsg;
40 import org.thingsboard.server.common.msg.TbMsgDataType; 37 import org.thingsboard.server.common.msg.TbMsgDataType;
41 import org.thingsboard.server.common.msg.TbMsgMetaData; 38 import org.thingsboard.server.common.msg.TbMsgMetaData;
42 import org.thingsboard.server.dao.audit.AuditLogService; 39 import org.thingsboard.server.dao.audit.AuditLogService;
43 -import org.thingsboard.server.queue.util.TbCoreComponent;  
44 -import org.thingsboard.server.cluster.TbClusterService;  
45 40
46 import java.util.List; 41 import java.util.List;
47 import java.util.Map; 42 import java.util.Map;
48 import java.util.stream.Collectors; 43 import java.util.stream.Collectors;
49 44
50 -@TbCoreComponent 45 +@ConditionalOnExpression("'${service.type:null}'=='monolith' || '${service.type:null}'=='tb-core' || '${service.type:null}'=='tb-rule-engine'")
51 @Service 46 @Service
52 @RequiredArgsConstructor 47 @RequiredArgsConstructor
53 @Slf4j 48 @Slf4j
@@ -16,14 +16,11 @@ @@ -16,14 +16,11 @@
16 package org.thingsboard.server.service.device; 16 package org.thingsboard.server.service.device;
17 17
18 import com.fasterxml.jackson.databind.ObjectMapper; 18 import com.fasterxml.jackson.databind.ObjectMapper;
19 -import com.google.common.util.concurrent.FutureCallback;  
20 -import com.google.common.util.concurrent.Futures;  
21 -import com.google.common.util.concurrent.ListenableFuture;  
22 -import com.google.common.util.concurrent.MoreExecutors;  
23 -import com.google.common.util.concurrent.SettableFuture; 19 +import com.google.common.util.concurrent.*;
24 import lombok.extern.slf4j.Slf4j; 20 import lombok.extern.slf4j.Slf4j;
25 import org.springframework.beans.factory.annotation.Autowired; 21 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.beans.factory.annotation.Value; 22 import org.springframework.beans.factory.annotation.Value;
  23 +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
27 import org.springframework.cache.Cache; 24 import org.springframework.cache.Cache;
28 import org.springframework.cache.CacheManager; 25 import org.springframework.cache.CacheManager;
29 import org.springframework.stereotype.Service; 26 import org.springframework.stereotype.Service;
@@ -49,7 +46,6 @@ import org.thingsboard.server.dao.device.claim.ClaimResponse; @@ -49,7 +46,6 @@ import org.thingsboard.server.dao.device.claim.ClaimResponse;
49 import org.thingsboard.server.dao.device.claim.ClaimResult; 46 import org.thingsboard.server.dao.device.claim.ClaimResult;
50 import org.thingsboard.server.dao.device.claim.ReclaimResult; 47 import org.thingsboard.server.dao.device.claim.ReclaimResult;
51 import org.thingsboard.server.dao.model.ModelConstants; 48 import org.thingsboard.server.dao.model.ModelConstants;
52 -import org.thingsboard.server.queue.util.TbCoreComponent;  
53 49
54 import javax.annotation.Nullable; 50 import javax.annotation.Nullable;
55 import java.io.IOException; 51 import java.io.IOException;
@@ -63,7 +59,7 @@ import static org.thingsboard.server.common.data.CacheConstants.CLAIM_DEVICES_CA @@ -63,7 +59,7 @@ import static org.thingsboard.server.common.data.CacheConstants.CLAIM_DEVICES_CA
63 59
64 @Service 60 @Service
65 @Slf4j 61 @Slf4j
66 -@TbCoreComponent 62 +@ConditionalOnExpression("'${service.type:null}'=='monolith' || '${service.type:null}'=='tb-core' || '${service.type:null}'=='tb-rule-engine'")
67 public class ClaimDevicesServiceImpl implements ClaimDevicesService { 63 public class ClaimDevicesServiceImpl implements ClaimDevicesService {
68 64
69 private static final String CLAIM_ATTRIBUTE_NAME = "claimingAllowed"; 65 private static final String CLAIM_ATTRIBUTE_NAME = "claimingAllowed";
@@ -17,6 +17,7 @@ package org.thingsboard.server.service.rule; @@ -17,6 +17,7 @@ package org.thingsboard.server.service.rule;
17 17
18 import lombok.RequiredArgsConstructor; 18 import lombok.RequiredArgsConstructor;
19 import lombok.extern.slf4j.Slf4j; 19 import lombok.extern.slf4j.Slf4j;
  20 +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
20 import org.springframework.stereotype.Service; 21 import org.springframework.stereotype.Service;
21 import org.thingsboard.common.util.JacksonUtil; 22 import org.thingsboard.common.util.JacksonUtil;
22 import org.thingsboard.rule.engine.flow.TbRuleChainInputNode; 23 import org.thingsboard.rule.engine.flow.TbRuleChainInputNode;
@@ -26,29 +27,16 @@ import org.thingsboard.server.common.data.id.RuleChainId; @@ -26,29 +27,16 @@ import org.thingsboard.server.common.data.id.RuleChainId;
26 import org.thingsboard.server.common.data.id.RuleNodeId; 27 import org.thingsboard.server.common.data.id.RuleNodeId;
27 import org.thingsboard.server.common.data.id.TenantId; 28 import org.thingsboard.server.common.data.id.TenantId;
28 import org.thingsboard.server.common.data.relation.EntityRelation; 29 import org.thingsboard.server.common.data.relation.EntityRelation;
29 -import org.thingsboard.server.common.data.rule.RuleChain;  
30 -import org.thingsboard.server.common.data.rule.RuleChainMetaData;  
31 -import org.thingsboard.server.common.data.rule.RuleChainOutputLabelsUsage;  
32 -import org.thingsboard.server.common.data.rule.RuleChainUpdateResult;  
33 -import org.thingsboard.server.common.data.rule.RuleNode;  
34 -import org.thingsboard.server.common.data.rule.RuleNodeUpdateResult; 30 +import org.thingsboard.server.common.data.rule.*;
35 import org.thingsboard.server.dao.relation.RelationService; 31 import org.thingsboard.server.dao.relation.RelationService;
36 import org.thingsboard.server.dao.rule.RuleChainService; 32 import org.thingsboard.server.dao.rule.RuleChainService;
37 -import org.thingsboard.server.queue.util.TbCoreComponent;  
38 -  
39 -import java.util.Collections;  
40 -import java.util.Comparator;  
41 -import java.util.HashMap;  
42 -import java.util.HashSet;  
43 -import java.util.List;  
44 -import java.util.Map;  
45 -import java.util.Set;  
46 -import java.util.TreeSet; 33 +
  34 +import java.util.*;
47 import java.util.stream.Collectors; 35 import java.util.stream.Collectors;
48 36
49 @RequiredArgsConstructor 37 @RequiredArgsConstructor
50 @Service 38 @Service
51 -@TbCoreComponent 39 +@ConditionalOnExpression("'${service.type:null}'=='monolith' || '${service.type:null}'=='tb-core' || '${service.type:null}'=='tb-rule-engine'")
52 @Slf4j 40 @Slf4j
53 public class DefaultTbRuleChainService implements TbRuleChainService { 41 public class DefaultTbRuleChainService implements TbRuleChainService {
54 42
@@ -24,6 +24,7 @@ import lombok.Getter; @@ -24,6 +24,7 @@ import lombok.Getter;
24 import lombok.extern.slf4j.Slf4j; 24 import lombok.extern.slf4j.Slf4j;
25 import org.springframework.beans.factory.annotation.Autowired; 25 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.beans.factory.annotation.Value; 26 import org.springframework.beans.factory.annotation.Value;
  27 +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
27 import org.springframework.stereotype.Service; 28 import org.springframework.stereotype.Service;
28 import org.springframework.util.StringUtils; 29 import org.springframework.util.StringUtils;
29 import org.thingsboard.common.util.JacksonUtil; 30 import org.thingsboard.common.util.JacksonUtil;
@@ -34,12 +35,7 @@ import org.thingsboard.server.common.data.Device; @@ -34,12 +35,7 @@ import org.thingsboard.server.common.data.Device;
34 import org.thingsboard.server.common.data.Tenant; 35 import org.thingsboard.server.common.data.Tenant;
35 import org.thingsboard.server.common.data.id.DeviceId; 36 import org.thingsboard.server.common.data.id.DeviceId;
36 import org.thingsboard.server.common.data.id.TenantId; 37 import org.thingsboard.server.common.data.id.TenantId;
37 -import org.thingsboard.server.common.data.kv.AttributeKvEntry;  
38 -import org.thingsboard.server.common.data.kv.BasicTsKvEntry;  
39 -import org.thingsboard.server.common.data.kv.BooleanDataEntry;  
40 -import org.thingsboard.server.common.data.kv.KvEntry;  
41 -import org.thingsboard.server.common.data.kv.LongDataEntry;  
42 -import org.thingsboard.server.common.data.kv.TsKvEntry; 38 +import org.thingsboard.server.common.data.kv.*;
43 import org.thingsboard.server.common.data.page.PageData; 39 import org.thingsboard.server.common.data.page.PageData;
44 import org.thingsboard.server.common.data.page.PageDataIterable; 40 import org.thingsboard.server.common.data.page.PageDataIterable;
45 import org.thingsboard.server.common.data.page.PageLink; 41 import org.thingsboard.server.common.data.page.PageLink;
@@ -55,7 +51,6 @@ import org.thingsboard.server.dao.tenant.TenantService; @@ -55,7 +51,6 @@ import org.thingsboard.server.dao.tenant.TenantService;
55 import org.thingsboard.server.dao.timeseries.TimeseriesService; 51 import org.thingsboard.server.dao.timeseries.TimeseriesService;
56 import org.thingsboard.server.gen.transport.TransportProtos; 52 import org.thingsboard.server.gen.transport.TransportProtos;
57 import org.thingsboard.server.queue.discovery.PartitionService; 53 import org.thingsboard.server.queue.discovery.PartitionService;
58 -import org.thingsboard.server.queue.util.TbCoreComponent;  
59 import org.thingsboard.server.service.partition.AbstractPartitionBasedService; 54 import org.thingsboard.server.service.partition.AbstractPartitionBasedService;
60 import org.thingsboard.server.service.telemetry.TelemetrySubscriptionService; 55 import org.thingsboard.server.service.telemetry.TelemetrySubscriptionService;
61 56
@@ -63,31 +58,16 @@ import javax.annotation.Nonnull; @@ -63,31 +58,16 @@ import javax.annotation.Nonnull;
63 import javax.annotation.Nullable; 58 import javax.annotation.Nullable;
64 import javax.annotation.PostConstruct; 59 import javax.annotation.PostConstruct;
65 import javax.annotation.PreDestroy; 60 import javax.annotation.PreDestroy;
66 -import java.util.ArrayList;  
67 -import java.util.Arrays;  
68 -import java.util.Collections;  
69 -import java.util.List;  
70 -import java.util.Random;  
71 -import java.util.Set;  
72 -import java.util.UUID;  
73 -import java.util.concurrent.ConcurrentHashMap;  
74 -import java.util.concurrent.ConcurrentMap;  
75 -import java.util.concurrent.ExecutionException;  
76 -import java.util.concurrent.ExecutorService;  
77 -import java.util.concurrent.Executors;  
78 -import java.util.concurrent.TimeUnit;  
79 -  
80 -import static org.thingsboard.server.common.data.DataConstants.ACTIVITY_EVENT;  
81 -import static org.thingsboard.server.common.data.DataConstants.CONNECT_EVENT;  
82 -import static org.thingsboard.server.common.data.DataConstants.DISCONNECT_EVENT;  
83 -import static org.thingsboard.server.common.data.DataConstants.INACTIVITY_EVENT;  
84 -import static org.thingsboard.server.common.data.DataConstants.SERVER_SCOPE; 61 +import java.util.*;
  62 +import java.util.concurrent.*;
  63 +
  64 +import static org.thingsboard.server.common.data.DataConstants.*;
85 65
86 /** 66 /**
87 * Created by ashvayka on 01.05.18. 67 * Created by ashvayka on 01.05.18.
88 */ 68 */
89 @Service 69 @Service
90 -@TbCoreComponent 70 +@ConditionalOnExpression("'${service.type:null}'=='monolith' || '${service.type:null}'=='tb-core' || '${service.type:null}'=='tb-rule-engine'")
91 @Slf4j 71 @Slf4j
92 public class DefaultDeviceStateService extends AbstractPartitionBasedService<DeviceId> implements DeviceStateService { 72 public class DefaultDeviceStateService extends AbstractPartitionBasedService<DeviceId> implements DeviceStateService {
93 73
@@ -141,7 +141,7 @@ @@ -141,7 +141,7 @@
141 LEFT JOIN attribute_kv c ON ifd.tb_device_id = c.entity_id::TEXT AND c.entity_type ='DEVICE' AND c.attribute_key='lastDisconnectTime' 141 LEFT JOIN attribute_kv c ON ifd.tb_device_id = c.entity_id::TEXT AND c.entity_type ='DEVICE' AND c.attribute_key='lastDisconnectTime'
142 LEFT JOIN attribute_kv e ON ifd.tb_device_id = e.entity_id::TEXT AND e.entity_type ='DEVICE' AND e.attribute_key='lastConnectTime' 142 LEFT JOIN attribute_kv e ON ifd.tb_device_id = e.entity_id::TEXT AND e.entity_type ='DEVICE' AND e.attribute_key='lastConnectTime'
143 LEFT JOIN device d ON d.id::TEXT = ifd.tb_device_id 143 LEFT JOIN device d ON d.id::TEXT = ifd.tb_device_id
144 - LEFT JOIN tk_device idg ON idg.id = ifd.gateway_id 144 + LEFT JOIN tk_device idg ON idg.tb_device_id = ifd.gateway_id
145 <where> 145 <where>
146 <if test="tenantId !=null and tenantId !=''"> 146 <if test="tenantId !=null and tenantId !=''">
147 AND ifd.tenant_id = #{tenantId} 147 AND ifd.tenant_id = #{tenantId}