Browse Source

Merge with master

pull/12167/head
Andrii Shvaika 2 years ago
parent
commit
fbf35f9850
  1. 2
      application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java
  2. 2
      application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java
  3. 4
      application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java
  4. 8
      application/src/main/java/org/thingsboard/server/service/subscription/TbSubscription.java
  5. 2
      common/data/src/main/java/org/thingsboard/server/common/data/DeviceIdInfo.java
  6. 2
      common/data/src/main/java/org/thingsboard/server/common/data/DeviceProfileInfo.java
  7. 2
      common/data/src/main/java/org/thingsboard/server/common/data/asset/AssetProfileInfo.java
  8. 2
      common/data/src/main/java/org/thingsboard/server/common/data/id/EntityIdFactory.java
  9. 4
      common/data/src/main/java/org/thingsboard/server/common/data/id/TenantId.java
  10. 13
      common/data/src/main/java/org/thingsboard/server/common/data/id/UUIDBased.java
  11. 2
      common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/util/LwM2MClientSerDes.java
  12. 2
      common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/VersionControlRequestCtx.java
  13. 2
      dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientEntity.java
  14. 2
      dao/src/main/java/org/thingsboard/server/dao/model/sql/QueueEntity.java
  15. 2
      dao/src/main/java/org/thingsboard/server/dao/model/sql/QueueStatsEntity.java
  16. 2
      dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java
  17. 2
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/util/TenantIdLoader.java

2
application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java

@ -43,7 +43,7 @@ public class TenantEdgeProcessor extends BaseEdgeProcessor {
private TenantMsgConstructorFactory tenantMsgConstructorFactory; private TenantMsgConstructorFactory tenantMsgConstructorFactory;
public DownlinkMsg convertTenantEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { public DownlinkMsg convertTenantEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) {
TenantId tenantId = new TenantId(edgeEvent.getEntityId()); TenantId tenantId = TenantId.fromUUID(edgeEvent.getEntityId());
var msgConstructor = ((TenantMsgConstructor) tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)); var msgConstructor = ((TenantMsgConstructor) tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion));
if (EdgeEventActionType.UPDATED.equals(edgeEvent.getAction())) { if (EdgeEventActionType.UPDATED.equals(edgeEvent.getAction())) {
Tenant tenant = edgeCtx.getTenantService().findTenantById(tenantId); Tenant tenant = edgeCtx.getTenantService().findTenantById(tenantId);

2
application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java

@ -503,7 +503,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore
} }
private void forwardToResourceService(TransportProtos.ResourceCacheInvalidateMsg msg, TbCallback callback) { private void forwardToResourceService(TransportProtos.ResourceCacheInvalidateMsg msg, TbCallback callback) {
var tenantId = new TenantId(new UUID(msg.getTenantIdMSB(), msg.getTenantIdLSB())); var tenantId = TenantId.fromUUID(new UUID(msg.getTenantIdMSB(), msg.getTenantIdLSB()));
msg.getKeysList().stream().map(cacheKeyProto -> { msg.getKeysList().stream().map(cacheKeyProto -> {
if (cacheKeyProto.hasResourceKey()) { if (cacheKeyProto.hasResourceKey()) {
return ImageCacheKey.forImage(tenantId, cacheKeyProto.getResourceKey()); return ImageCacheKey.forImage(tenantId, cacheKeyProto.getResourceKey());

4
application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java

@ -192,7 +192,7 @@ public class DefaultTbRuleEngineConsumerService extends AbstractConsumerService<
private void updateQueues(List<QueueUpdateMsg> queueUpdateMsgs) { private void updateQueues(List<QueueUpdateMsg> queueUpdateMsgs) {
for (QueueUpdateMsg queueUpdateMsg : queueUpdateMsgs) { for (QueueUpdateMsg queueUpdateMsg : queueUpdateMsgs) {
log.info("Received queue update msg: [{}]", queueUpdateMsg); log.info("Received queue update msg: [{}]", queueUpdateMsg);
TenantId tenantId = new TenantId(new UUID(queueUpdateMsg.getTenantIdMSB(), queueUpdateMsg.getTenantIdLSB())); TenantId tenantId = TenantId.fromUUID(new UUID(queueUpdateMsg.getTenantIdMSB(), queueUpdateMsg.getTenantIdLSB()));
if (partitionService.isManagedByCurrentService(tenantId)) { if (partitionService.isManagedByCurrentService(tenantId)) {
QueueId queueId = new QueueId(new UUID(queueUpdateMsg.getQueueIdMSB(), queueUpdateMsg.getQueueIdLSB())); QueueId queueId = new QueueId(new UUID(queueUpdateMsg.getQueueIdMSB(), queueUpdateMsg.getQueueIdLSB()));
String queueName = queueUpdateMsg.getQueueName(); String queueName = queueUpdateMsg.getQueueName();
@ -212,7 +212,7 @@ public class DefaultTbRuleEngineConsumerService extends AbstractConsumerService<
private void deleteQueues(List<QueueDeleteMsg> queueDeleteMsgs) { private void deleteQueues(List<QueueDeleteMsg> queueDeleteMsgs) {
for (QueueDeleteMsg queueDeleteMsg : queueDeleteMsgs) { for (QueueDeleteMsg queueDeleteMsg : queueDeleteMsgs) {
log.info("Received queue delete msg: [{}]", queueDeleteMsg); log.info("Received queue delete msg: [{}]", queueDeleteMsg);
TenantId tenantId = new TenantId(new UUID(queueDeleteMsg.getTenantIdMSB(), queueDeleteMsg.getTenantIdLSB())); TenantId tenantId = TenantId.fromUUID(new UUID(queueDeleteMsg.getTenantIdMSB(), queueDeleteMsg.getTenantIdLSB()));
QueueKey queueKey = new QueueKey(ServiceType.TB_RULE_ENGINE, queueDeleteMsg.getQueueName(), tenantId); QueueKey queueKey = new QueueKey(ServiceType.TB_RULE_ENGINE, queueDeleteMsg.getQueueName(), tenantId);
removeConsumer(queueKey).ifPresent(consumer -> consumer.delete(true)); removeConsumer(queueKey).ifPresent(consumer -> consumer.delete(true));
} }

8
application/src/main/java/org/thingsboard/server/service/subscription/TbSubscription.java

@ -27,6 +27,9 @@ import java.util.function.BiConsumer;
@AllArgsConstructor @AllArgsConstructor
public abstract class TbSubscription<T> { public abstract class TbSubscription<T> {
/** Cache the hash code */
private transient int hash; // Default to 0. The hash code calculated for this object likely never be zero
private final String serviceId; private final String serviceId;
private final String sessionId; private final String sessionId;
private final int subscriptionId; private final int subscriptionId;
@ -49,7 +52,10 @@ public abstract class TbSubscription<T> {
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(sessionId, subscriptionId, tenantId, entityId, type); if (hash == 0) {
hash = Objects.hash(sessionId, subscriptionId, tenantId, entityId, type);
}
return hash;
} }
} }

2
common/data/src/main/java/org/thingsboard/server/common/data/DeviceIdInfo.java

@ -35,7 +35,7 @@ public class DeviceIdInfo implements Serializable, HasTenantId {
private final DeviceId deviceId; private final DeviceId deviceId;
public DeviceIdInfo(UUID tenantId, UUID customerId, UUID deviceId) { public DeviceIdInfo(UUID tenantId, UUID customerId, UUID deviceId) {
this.tenantId = new TenantId(tenantId); this.tenantId = TenantId.fromUUID(tenantId);
this.customerId = customerId != null ? new CustomerId(customerId) : null; this.customerId = customerId != null ? new CustomerId(customerId) : null;
this.deviceId = new DeviceId(deviceId); this.deviceId = new DeviceId(deviceId);
} }

2
common/data/src/main/java/org/thingsboard/server/common/data/DeviceProfileInfo.java

@ -63,7 +63,7 @@ public class DeviceProfileInfo extends EntityInfo {
public DeviceProfileInfo(UUID uuid, UUID tenantId, String name, String image, UUID defaultDashboardId, DeviceProfileType type, DeviceTransportType transportType) { public DeviceProfileInfo(UUID uuid, UUID tenantId, String name, String image, UUID defaultDashboardId, DeviceProfileType type, DeviceTransportType transportType) {
super(EntityIdFactory.getByTypeAndUuid(EntityType.DEVICE_PROFILE, uuid), name); super(EntityIdFactory.getByTypeAndUuid(EntityType.DEVICE_PROFILE, uuid), name);
this.tenantId = new TenantId(tenantId); this.tenantId = TenantId.fromUUID(tenantId);
this.image = image; this.image = image;
this.defaultDashboardId = defaultDashboardId != null ? new DashboardId(defaultDashboardId) : null; this.defaultDashboardId = defaultDashboardId != null ? new DashboardId(defaultDashboardId) : null;
this.type = type; this.type = type;

2
common/data/src/main/java/org/thingsboard/server/common/data/asset/AssetProfileInfo.java

@ -57,7 +57,7 @@ public class AssetProfileInfo extends EntityInfo {
public AssetProfileInfo(UUID uuid, UUID tenantId, String name, String image, UUID defaultDashboardId) { public AssetProfileInfo(UUID uuid, UUID tenantId, String name, String image, UUID defaultDashboardId) {
super(EntityIdFactory.getByTypeAndUuid(EntityType.ASSET_PROFILE, uuid), name); super(EntityIdFactory.getByTypeAndUuid(EntityType.ASSET_PROFILE, uuid), name);
this.tenantId = new TenantId(tenantId); this.tenantId = TenantId.fromUUID(tenantId);
this.image = image; this.image = image;
this.defaultDashboardId = defaultDashboardId != null ? new DashboardId(defaultDashboardId) : null; this.defaultDashboardId = defaultDashboardId != null ? new DashboardId(defaultDashboardId) : null;
} }

2
common/data/src/main/java/org/thingsboard/server/common/data/id/EntityIdFactory.java

@ -120,7 +120,7 @@ public class EntityIdFactory {
public static EntityId getByEdgeEventTypeAndUuid(EdgeEventType edgeEventType, UUID uuid) { public static EntityId getByEdgeEventTypeAndUuid(EdgeEventType edgeEventType, UUID uuid) {
switch (edgeEventType) { switch (edgeEventType) {
case TENANT: case TENANT:
return new TenantId(uuid); return TenantId.fromUUID(uuid);
case CUSTOMER: case CUSTOMER:
return new CustomerId(uuid); return new CustomerId(uuid);
case USER: case USER:

4
common/data/src/main/java/org/thingsboard/server/common/data/id/TenantId.java

@ -40,7 +40,9 @@ public final class TenantId extends UUIDBased implements EntityId {
return tenants.computeIfAbsent(id, TenantId::new); return tenants.computeIfAbsent(id, TenantId::new);
} }
//default constructor is still available due to possible usage in extensions // Please, use TenantId.fromUUID instead
// Default constructor is still available due to possible usage in extensions
@Deprecated
public TenantId(UUID id) { public TenantId(UUID id) {
super(id); super(id);
} }

13
common/data/src/main/java/org/thingsboard/server/common/data/id/UUIDBased.java

@ -25,6 +25,9 @@ public abstract class UUIDBased implements HasUUID, Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** Cache the hash code */
private transient int hash; // Default to 0. The hash code calculated for this object likely never be zero
private final UUID id; private final UUID id;
public UUIDBased() { public UUIDBased() {
@ -43,10 +46,12 @@ public abstract class UUIDBased implements HasUUID, Serializable {
@Override @Override
public int hashCode() { public int hashCode() {
final int prime = 31; if (hash == 0) {
int result = 1; final int prime = 31;
result = prime * result + ((id == null) ? 0 : id.hashCode()); int result = 1;
return result; hash = prime * result + ((id == null) ? 0 : id.hashCode());
}
return hash;
} }
@Override @Override

2
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/util/LwM2MClientSerDes.java

@ -297,7 +297,7 @@ public class LwM2MClientSerDes {
if (tenantId != null) { if (tenantId != null) {
Field tenantIdField = lwM2mClientClass.getDeclaredField("tenantId"); Field tenantIdField = lwM2mClientClass.getDeclaredField("tenantId");
tenantIdField.setAccessible(true); tenantIdField.setAccessible(true);
tenantIdField.set(lwM2mClient, new TenantId(UUID.fromString(tenantId.getAsString()))); tenantIdField.set(lwM2mClient, TenantId.fromUUID(UUID.fromString(tenantId.getAsString())));
} }
JsonElement deviceId = o.get("deviceId"); JsonElement deviceId = o.get("deviceId");

2
common/version-control/src/main/java/org/thingsboard/server/service/sync/vc/VersionControlRequestCtx.java

@ -34,7 +34,7 @@ public class VersionControlRequestCtx {
public VersionControlRequestCtx(ToVersionControlServiceMsg msg, RepositorySettings settings) { public VersionControlRequestCtx(ToVersionControlServiceMsg msg, RepositorySettings settings) {
this.nodeId = msg.getNodeId(); this.nodeId = msg.getNodeId();
this.requestId = new UUID(msg.getRequestIdMSB(), msg.getRequestIdLSB()); this.requestId = new UUID(msg.getRequestIdMSB(), msg.getRequestIdLSB());
this.tenantId = new TenantId(new UUID(msg.getTenantIdMSB(), msg.getTenantIdLSB())); this.tenantId = TenantId.fromUUID(new UUID(msg.getTenantIdMSB(), msg.getTenantIdLSB()));
this.settings = settings; this.settings = settings;
} }

2
dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientEntity.java

@ -168,7 +168,7 @@ public class OAuth2ClientEntity extends BaseSqlEntity<OAuth2Client> {
OAuth2Client registration = new OAuth2Client(); OAuth2Client registration = new OAuth2Client();
registration.setId(new OAuth2ClientId(id)); registration.setId(new OAuth2ClientId(id));
registration.setCreatedTime(createdTime); registration.setCreatedTime(createdTime);
registration.setTenantId(new TenantId(tenantId)); registration.setTenantId(TenantId.fromUUID(tenantId));
registration.setTitle(title); registration.setTitle(title);
registration.setAdditionalInfo(additionalInfo); registration.setAdditionalInfo(additionalInfo);
registration.setMapperConfig( registration.setMapperConfig(

2
dao/src/main/java/org/thingsboard/server/dao/model/sql/QueueEntity.java

@ -97,7 +97,7 @@ public class QueueEntity extends BaseSqlEntity<Queue> {
public Queue toData() { public Queue toData() {
Queue queue = new Queue(new QueueId(getUuid())); Queue queue = new Queue(new QueueId(getUuid()));
queue.setCreatedTime(createdTime); queue.setCreatedTime(createdTime);
queue.setTenantId(new TenantId(tenantId)); queue.setTenantId(TenantId.fromUUID(tenantId));
queue.setName(name); queue.setName(name);
queue.setTopic(topic); queue.setTopic(topic);
queue.setPollInterval(pollInterval); queue.setPollInterval(pollInterval);

2
dao/src/main/java/org/thingsboard/server/dao/model/sql/QueueStatsEntity.java

@ -61,7 +61,7 @@ public class QueueStatsEntity extends BaseSqlEntity<QueueStats> {
public QueueStats toData() { public QueueStats toData() {
QueueStats queueStats = new QueueStats(new QueueStatsId(getUuid())); QueueStats queueStats = new QueueStats(new QueueStatsId(getUuid()));
queueStats.setCreatedTime(createdTime); queueStats.setCreatedTime(createdTime);
queueStats.setTenantId(new TenantId(tenantId)); queueStats.setTenantId(TenantId.fromUUID(tenantId));
queueStats.setQueueName(queueName); queueStats.setQueueName(queueName);
queueStats.setServiceId(serviceId); queueStats.setServiceId(serviceId);
return queueStats; return queueStats;

2
dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java

@ -235,7 +235,7 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
@Override @Override
public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findTenantById(new TenantId(entityId.getId()))); return Optional.ofNullable(findTenantById(TenantId.fromUUID(entityId.getId())));
} }
@Override @Override

2
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/util/TenantIdLoader.java

@ -62,7 +62,7 @@ public class TenantIdLoader {
HasTenantId tenantEntity; HasTenantId tenantEntity;
switch (entityType) { switch (entityType) {
case TENANT: case TENANT:
return new TenantId(id); return TenantId.fromUUID(id);
case CUSTOMER: case CUSTOMER:
tenantEntity = ctx.getCustomerService().findCustomerById(ctxTenantId, new CustomerId(id)); tenantEntity = ctx.getCustomerService().findCustomerById(ctxTenantId, new CustomerId(id));
break; break;

Loading…
Cancel
Save