From 3716e2833aec84f49d64826f6e5ff72e962dcfd6 Mon Sep 17 00:00:00 2001
From: Yevhen Bondarenko <56396344+YevhenBondarenko@users.noreply.github.com>
Date: Fri, 26 Feb 2021 14:16:34 +0200
Subject: [PATCH] [WIP]added redis stores support to lwm2m transport (#4164)
* added redis stores support to lwm2m transport
* added cache dependency to dao
* added cache dependency to dao-api
* moved JacksonUtil to the common.util package
* added cache to the component scan for install
* lwm2m stores improvements
---
.../server/ThingsboardInstallApplication.java | 3 +-
.../controller/DashboardController.java | 3 +-
.../device/DeviceProvisionServiceImpl.java | 2 +-
.../update/DefaultDataUpdateService.java | 10 +-
.../query/DefaultEntityQueryService.java | 2 +-
.../queue/DefaultTbCoreConsumerService.java | 2 +-
.../system/DefaultSystemSecurityService.java | 2 +-
.../server/service/sms/DefaultSmsService.java | 2 +-
.../state/DefaultDeviceStateService.java | 2 +-
.../DefaultSubscriptionManagerService.java | 2 +-
.../subscription/TbSubscriptionUtils.java | 2 +-
.../transport/DefaultTransportApiService.java | 2 +-
.../src/main/resources/thingsboard.yml | 4 +-
...tMqttAttributesRequestIntegrationTest.java | 2 +-
...tMqttAttributesUpdatesIntegrationTest.java | 2 +-
.../AbstractMqttProvisionJsonDeviceTest.java | 2 +-
.../AbstractMqttProvisionProtoDeviceTest.java | 3 +-
...tractMqttServerSideRpcIntegrationTest.java | 2 +-
common/cache/pom.xml | 115 +++
.../thingsboard/server}/cache/CacheSpecs.java | 2 +-
.../cache/CaffeineCacheConfiguration.java | 10 +-
.../cache/TBRedisCacheConfiguration.java | 8 +-
.../cache/TBRedisClusterConfiguration.java | 2 +-
.../cache/TBRedisStandaloneConfiguration.java | 2 +-
common/pom.xml | 1 +
.../queue/util/TbLwM2mTransportComponent.java | 26 +
common/transport/lwm2m/pom.xml | 1 -
...TransportBootstrapServerConfiguration.java | 22 +-
.../LwM2MTransportContextBootstrap.java | 14 +-
.../secure/LwM2MBootstrapSecurityStore.java | 35 +-
...LwM2mCredentialsSecurityInfoValidator.java | 43 +-
.../lwm2m/server/LwM2mServerListener.java | 4 +-
...ener.java => LwM2mSessionMsgListener.java} | 6 +-
....java => LwM2mTransportContextServer.java} | 42 +-
...andler.java => LwM2mTransportHandler.java} | 22 +-
...equest.java => LwM2mTransportRequest.java} | 52 +-
...=> LwM2mTransportServerConfiguration.java} | 71 +-
...a => LwM2mTransportServerInitializer.java} | 12 +-
...ervice.java => LwM2mTransportService.java} | 2 +-
...pl.java => LwM2mTransportServiceImpl.java} | 272 +++---
.../{LwM2MClient.java => LwM2mClient.java} | 34 +-
.../server/client/LwM2mClientContext.java | 54 ++
.../server/client/LwM2mClientContextImpl.java | 171 ++++
...ntProfile.java => LwM2mClientProfile.java} | 2 +-
.../LwM2mInMemorySecurityStore.java | 90 +-
.../store/TbLwM2mRedisRegistrationStore.java | 785 ++++++++++++++++++
.../store/TbLwM2mRedisSecurityStore.java | 148 ++++
.../store/TbLwM2mStoreConfiguration.java | 123 +++
common/transport/transport-api/pom.xml | 4 +
.../common/transport/TransportContext.java | 4 +-
.../lwm2m/LwM2MTransportConfigServer.java | 4 -
common/util/pom.xml | 4 +
.../thingsboard/common/util}/JacksonUtil.java | 2 +-
dao/pom.xml | 4 +
.../server/dao/audit/AuditLogServiceImpl.java | 2 +-
...eviousDeviceCredentialsIdKeyGenerator.java | 2 +
.../device/DeviceCredentialsServiceImpl.java | 2 +-
.../server/dao/device/DeviceServiceImpl.java | 2 +-
.../dao/model/sql/AbstractDeviceEntity.java | 2 +-
.../dao/model/sql/DeviceProfileEntity.java | 2 +-
.../dao/model/sql/TenantProfileEntity.java | 2 +-
.../server/dao/user/UserServiceImpl.java | 2 +-
.../dao/util/mapping/JsonTypeDescriptor.java | 1 +
.../dao/service/BaseAlarmServiceTest.java | 2 +-
pom.xml | 5 +
.../rule/engine/api/util/TbNodeUtilsTest.java | 2 +-
.../engine/action/TbAbstractAlarmNode.java | 2 +-
.../engine/metadata/CalculateDeltaNode.java | 2 +-
.../rule/engine/profile/AlarmState.java | 5 +-
.../rule/engine/profile/DeviceState.java | 2 +-
.../engine/profile/TbDeviceProfileNode.java | 2 +-
.../TbDeviceProfileNodeConfiguration.java | 23 -
transport/lwm2m/pom.xml | 14 +-
.../ThingsboardLwm2mTransportApplication.java | 2 +-
.../src/main/resources/tb-lwm2m-transport.yml | 81 +-
75 files changed, 1932 insertions(+), 469 deletions(-)
create mode 100644 common/cache/pom.xml
rename {dao/src/main/java/org/thingsboard/server/dao => common/cache/src/main/java/org/thingsboard/server}/cache/CacheSpecs.java (94%)
rename {dao/src/main/java/org/thingsboard/server/dao => common/cache/src/main/java/org/thingsboard/server}/cache/CaffeineCacheConfiguration.java (91%)
rename {dao/src/main/java/org/thingsboard/server/dao => common/cache/src/main/java/org/thingsboard/server}/cache/TBRedisCacheConfiguration.java (95%)
rename {dao/src/main/java/org/thingsboard/server/dao => common/cache/src/main/java/org/thingsboard/server}/cache/TBRedisClusterConfiguration.java (98%)
rename {dao/src/main/java/org/thingsboard/server/dao => common/cache/src/main/java/org/thingsboard/server}/cache/TBRedisStandaloneConfiguration.java (98%)
create mode 100644 common/queue/src/main/java/org/thingsboard/server/queue/util/TbLwM2mTransportComponent.java
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MSessionMsgListener.java => LwM2mSessionMsgListener.java} (95%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MTransportContextServer.java => LwM2mTransportContextServer.java} (80%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MTransportHandler.java => LwM2mTransportHandler.java} (97%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MTransportRequest.java => LwM2mTransportRequest.java} (93%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MTransportServerConfiguration.java => LwM2mTransportServerConfiguration.java} (78%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MTransportServerInitializer.java => LwM2mTransportServerInitializer.java} (80%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MTransportService.java => LwM2mTransportService.java} (98%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{LwM2MTransportServiceImpl.java => LwM2mTransportServiceImpl.java} (83%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/{LwM2MClient.java => LwM2mClient.java} (72%)
create mode 100644 common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClientContext.java
create mode 100644 common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClientContextImpl.java
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/{LwM2MClientProfile.java => LwM2mClientProfile.java} (97%)
rename common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/{secure => store}/LwM2mInMemorySecurityStore.java (73%)
create mode 100644 common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/TbLwM2mRedisRegistrationStore.java
create mode 100644 common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/TbLwM2mRedisSecurityStore.java
create mode 100644 common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/TbLwM2mStoreConfiguration.java
rename common/{dao-api/src/main/java/org/thingsboard/server/dao/util/mapping => util/src/main/java/org/thingsboard/common/util}/JacksonUtil.java (98%)
diff --git a/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java b/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java
index 6eaac0157b..32c995ac82 100644
--- a/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java
+++ b/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java
@@ -30,7 +30,8 @@ import java.util.Arrays;
"org.thingsboard.server.service.component",
"org.thingsboard.server.service.install",
"org.thingsboard.server.dao",
- "org.thingsboard.server.common.stats"})
+ "org.thingsboard.server.common.stats",
+ "org.thingsboard.server.cache"})
public class ThingsboardInstallApplication {
private static final String SPRING_CONFIG_NAME_KEY = "--spring.config.name";
diff --git a/application/src/main/java/org/thingsboard/server/controller/DashboardController.java b/application/src/main/java/org/thingsboard/server/controller/DashboardController.java
index f5b350d861..2e6efc4246 100644
--- a/application/src/main/java/org/thingsboard/server/controller/DashboardController.java
+++ b/application/src/main/java/org/thingsboard/server/controller/DashboardController.java
@@ -44,8 +44,7 @@ import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.common.data.page.TimePageLink;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.queue.util.TbCoreComponent;
import org.thingsboard.server.service.security.model.SecurityUser;
import org.thingsboard.server.service.security.permission.Operation;
diff --git a/application/src/main/java/org/thingsboard/server/service/device/DeviceProvisionServiceImpl.java b/application/src/main/java/org/thingsboard/server/service/device/DeviceProvisionServiceImpl.java
index 3bd540048f..3fea206c3b 100644
--- a/application/src/main/java/org/thingsboard/server/service/device/DeviceProvisionServiceImpl.java
+++ b/application/src/main/java/org/thingsboard/server/service/device/DeviceProvisionServiceImpl.java
@@ -50,7 +50,7 @@ import org.thingsboard.server.dao.device.provision.ProvisionFailedException;
import org.thingsboard.server.dao.device.provision.ProvisionRequest;
import org.thingsboard.server.dao.device.provision.ProvisionResponse;
import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.gen.transport.TransportProtos;
import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg;
import org.thingsboard.server.queue.TbQueueCallback;
diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java
index 4bbe7c46f2..f232c0a41e 100644
--- a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java
+++ b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java
@@ -15,9 +15,7 @@
*/
package org.thingsboard.server.service.install.update;
-import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
@@ -25,16 +23,12 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
import org.thingsboard.rule.engine.profile.TbDeviceProfileNode;
import org.thingsboard.rule.engine.profile.TbDeviceProfileNodeConfiguration;
import org.thingsboard.server.common.data.EntityView;
-import org.thingsboard.server.common.data.SearchTextBased;
import org.thingsboard.server.common.data.Tenant;
-import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.common.data.id.UUIDBased;
import org.thingsboard.server.common.data.kv.BaseReadTsKvQuery;
import org.thingsboard.server.common.data.kv.ReadTsKvQuery;
import org.thingsboard.server.common.data.kv.TsKvEntry;
@@ -47,10 +41,9 @@ import org.thingsboard.server.dao.entityview.EntityViewService;
import org.thingsboard.server.dao.rule.RuleChainService;
import org.thingsboard.server.dao.tenant.TenantService;
import org.thingsboard.server.dao.timeseries.TimeseriesService;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.service.install.InstallScripts;
-import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -58,7 +51,6 @@ import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import static org.apache.commons.lang3.StringUtils.isBlank;
-import static org.thingsboard.server.service.install.DatabaseHelper.objectMapper;
@Service
@Profile("install")
diff --git a/application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java b/application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java
index 7e1101dfc8..22658563e4 100644
--- a/application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java
+++ b/application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java
@@ -47,7 +47,7 @@ import org.thingsboard.server.dao.attributes.AttributesService;
import org.thingsboard.server.dao.entity.EntityService;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.timeseries.TimeseriesService;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.queue.util.TbCoreComponent;
import org.thingsboard.server.service.executors.DbCallbackExecutorService;
import org.thingsboard.server.service.security.AccessValidator;
diff --git a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java
index af9239d298..02f69ce10d 100644
--- a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java
+++ b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java
@@ -35,7 +35,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType;
import org.thingsboard.server.common.msg.queue.TbCallback;
import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.common.transport.util.DataDecodingEncodingService;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.gen.transport.TransportProtos.DeviceStateServiceMsgProto;
import org.thingsboard.server.gen.transport.TransportProtos.FromDeviceRPCResponseProto;
import org.thingsboard.server.gen.transport.TransportProtos.LocalSubscriptionServiceMsgProto;
diff --git a/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java b/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java
index c86b1cdcfe..5db9509a77 100644
--- a/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java
+++ b/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java
@@ -49,7 +49,7 @@ import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.settings.AdminSettingsService;
import org.thingsboard.server.dao.user.UserService;
import org.thingsboard.server.dao.user.UserServiceImpl;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.service.security.exception.UserPasswordExpiredException;
import org.thingsboard.server.utils.MiscUtils;
diff --git a/application/src/main/java/org/thingsboard/server/service/sms/DefaultSmsService.java b/application/src/main/java/org/thingsboard/server/service/sms/DefaultSmsService.java
index af72b909ca..f7a012b23e 100644
--- a/application/src/main/java/org/thingsboard/server/service/sms/DefaultSmsService.java
+++ b/application/src/main/java/org/thingsboard/server/service/sms/DefaultSmsService.java
@@ -31,7 +31,7 @@ import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.settings.AdminSettingsService;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.queue.usagestats.TbApiUsageClient;
import org.thingsboard.server.service.apiusage.TbApiUsageStateService;
diff --git a/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java b/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java
index be31a0df45..c8a4e80e0e 100644
--- a/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java
+++ b/application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java
@@ -52,7 +52,7 @@ import org.thingsboard.server.dao.attributes.AttributesService;
import org.thingsboard.server.dao.device.DeviceService;
import org.thingsboard.server.dao.tenant.TenantService;
import org.thingsboard.server.dao.timeseries.TimeseriesService;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.gen.transport.TransportProtos;
import org.thingsboard.server.queue.discovery.PartitionChangeEvent;
import org.thingsboard.server.queue.discovery.PartitionService;
diff --git a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java
index 844db92de8..ce8838aaa8 100644
--- a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java
+++ b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultSubscriptionManagerService.java
@@ -39,7 +39,7 @@ import org.thingsboard.server.common.msg.queue.TbCallback;
import org.thingsboard.server.common.msg.queue.TopicPartitionInfo;
import org.thingsboard.server.dao.attributes.AttributesService;
import org.thingsboard.server.dao.timeseries.TimeseriesService;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.gen.transport.TransportProtos.*;
import org.thingsboard.server.gen.transport.TransportProtos.LocalSubscriptionServiceMsgProto;
import org.thingsboard.server.gen.transport.TransportProtos.TbSubscriptionUpdateProto;
diff --git a/application/src/main/java/org/thingsboard/server/service/subscription/TbSubscriptionUtils.java b/application/src/main/java/org/thingsboard/server/service/subscription/TbSubscriptionUtils.java
index c6da1aad29..da84e8e4ea 100644
--- a/application/src/main/java/org/thingsboard/server/service/subscription/TbSubscriptionUtils.java
+++ b/application/src/main/java/org/thingsboard/server/service/subscription/TbSubscriptionUtils.java
@@ -30,7 +30,7 @@ import org.thingsboard.server.common.data.kv.KvEntry;
import org.thingsboard.server.common.data.kv.LongDataEntry;
import org.thingsboard.server.common.data.kv.StringDataEntry;
import org.thingsboard.server.common.data.kv.TsKvEntry;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.gen.transport.TransportProtos;
import org.thingsboard.server.gen.transport.TransportProtos.KeyValueProto;
import org.thingsboard.server.gen.transport.TransportProtos.KeyValueType;
diff --git a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java
index a56e98fe5f..b157e0d0a7 100644
--- a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java
+++ b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java
@@ -54,7 +54,7 @@ import org.thingsboard.server.dao.device.provision.ProvisionRequest;
import org.thingsboard.server.dao.device.provision.ProvisionResponse;
import org.thingsboard.server.dao.relation.RelationService;
import org.thingsboard.server.dao.tenant.TbTenantProfileCache;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.gen.transport.TransportProtos;
import org.thingsboard.server.gen.transport.TransportProtos.DeviceInfoProto;
import org.thingsboard.server.gen.transport.TransportProtos.GetEntityProfileRequestMsg;
diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index 93fff15df2..dbd8d09412 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -635,8 +635,8 @@ transport:
public_y: "${LWM2M_SERVER_PUBLIC_Y_BS:3fc4e61bcd8901ec27c424114c3e887ed372497f0c2cf85839b8443e76988b34}"
private_encoded: "${LWM2M_SERVER_PRIVATE_ENCODED_BS:308193020100301306072a8648ce3d020106082a8648ce3d0301070479307702010104205ecafd90caa7be45c42e1f3f32571632b8409e6e6249d7124f4ba56fab3c8083a00a06082a8648ce3d030107a144034200045017c87a1c1768264656b3b355434b0def6edb8b9bf166a4762d9930cd730f913fc4e61bcd8901ec27c424114c3e887ed372497f0c2cf85839b8443e76988b34}" # Only Certificate_x509:
alias: "${LWM2M_KEYSTORE_ALIAS_BOOTSTRAP:bootstrap}"
- # Redis
- redis_url: "${LWM2M_REDIS_URL:''}"
+ # Use redis for Security and Registration stores
+ redis.enabled: "${LWM2M_REDIS_ENABLED:false}"
swagger:
api_path_regex: "${SWAGGER_API_PATH_REGEX:/api.*}"
diff --git a/application/src/test/java/org/thingsboard/server/mqtt/attributes/request/AbstractMqttAttributesRequestIntegrationTest.java b/application/src/test/java/org/thingsboard/server/mqtt/attributes/request/AbstractMqttAttributesRequestIntegrationTest.java
index 002474c59d..6ad5db9aff 100644
--- a/application/src/test/java/org/thingsboard/server/mqtt/attributes/request/AbstractMqttAttributesRequestIntegrationTest.java
+++ b/application/src/test/java/org/thingsboard/server/mqtt/attributes/request/AbstractMqttAttributesRequestIntegrationTest.java
@@ -26,7 +26,7 @@ import org.junit.Before;
import org.junit.Test;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.device.profile.MqttTopics;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.mqtt.attributes.AbstractMqttAttributesIntegrationTest;
import java.nio.charset.StandardCharsets;
diff --git a/application/src/test/java/org/thingsboard/server/mqtt/attributes/updates/AbstractMqttAttributesUpdatesIntegrationTest.java b/application/src/test/java/org/thingsboard/server/mqtt/attributes/updates/AbstractMqttAttributesUpdatesIntegrationTest.java
index 7045e28f62..9810c4fe3a 100644
--- a/application/src/test/java/org/thingsboard/server/mqtt/attributes/updates/AbstractMqttAttributesUpdatesIntegrationTest.java
+++ b/application/src/test/java/org/thingsboard/server/mqtt/attributes/updates/AbstractMqttAttributesUpdatesIntegrationTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.TransportPayloadType;
import org.thingsboard.server.common.data.device.profile.MqttTopics;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.mqtt.attributes.AbstractMqttAttributesIntegrationTest;
import java.nio.charset.StandardCharsets;
diff --git a/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionJsonDeviceTest.java b/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionJsonDeviceTest.java
index 0fce47fc84..1011c86b7f 100644
--- a/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionJsonDeviceTest.java
+++ b/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionJsonDeviceTest.java
@@ -37,7 +37,7 @@ import org.thingsboard.server.common.transport.util.JsonUtils;
import org.thingsboard.server.dao.device.DeviceCredentialsService;
import org.thingsboard.server.dao.device.DeviceService;
import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.mqtt.AbstractMqttIntegrationTest;
import java.util.concurrent.CountDownLatch;
diff --git a/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionProtoDeviceTest.java b/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionProtoDeviceTest.java
index 0478a402d9..476b4add4c 100644
--- a/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionProtoDeviceTest.java
+++ b/application/src/test/java/org/thingsboard/server/mqtt/provision/AbstractMqttProvisionProtoDeviceTest.java
@@ -36,7 +36,7 @@ import org.thingsboard.server.common.msg.EncryptionUtil;
import org.thingsboard.server.dao.device.DeviceCredentialsService;
import org.thingsboard.server.dao.device.DeviceService;
import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.gen.transport.TransportProtos.CredentialsDataProto;
import org.thingsboard.server.gen.transport.TransportProtos.CredentialsType;
import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceCredentialsMsg;
@@ -47,7 +47,6 @@ import org.thingsboard.server.gen.transport.TransportProtos.ValidateDeviceTokenR
import org.thingsboard.server.gen.transport.TransportProtos.ValidateDeviceX509CertRequestMsg;
import org.thingsboard.server.mqtt.AbstractMqttIntegrationTest;
-import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
diff --git a/application/src/test/java/org/thingsboard/server/mqtt/rpc/AbstractMqttServerSideRpcIntegrationTest.java b/application/src/test/java/org/thingsboard/server/mqtt/rpc/AbstractMqttServerSideRpcIntegrationTest.java
index 4ae0072029..19e74b6fdc 100644
--- a/application/src/test/java/org/thingsboard/server/mqtt/rpc/AbstractMqttServerSideRpcIntegrationTest.java
+++ b/application/src/test/java/org/thingsboard/server/mqtt/rpc/AbstractMqttServerSideRpcIntegrationTest.java
@@ -30,7 +30,7 @@ import org.junit.Assert;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.TransportPayloadType;
import org.thingsboard.server.common.data.device.profile.MqttTopics;
-import org.thingsboard.server.dao.util.mapping.JacksonUtil;
+import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.mqtt.AbstractMqttIntegrationTest;
import java.util.Arrays;
diff --git a/common/cache/pom.xml b/common/cache/pom.xml
new file mode 100644
index 0000000000..80000b80a0
--- /dev/null
+++ b/common/cache/pom.xml
@@ -0,0 +1,115 @@
+
+
+ 4.0.0
+
+ org.thingsboard
+ 3.3.0-SNAPSHOT
+ common
+
+ org.thingsboard.common
+ cache
+ jar
+
+ Thingsboard Server Common Cache
+ https://thingsboard.io
+
+
+ UTF-8
+ ${basedir}/../..
+
+
+
+
+ org.thingsboard.common
+ data
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+
+
+ org.springframework.data
+ spring-data-redis
+
+
+ redis.clients
+ jedis
+
+
+ com.github.ben-manes.caffeine
+ caffeine
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.slf4j
+ log4j-over-slf4j
+
+
+ ch.qos.logback
+ logback-core
+
+
+ ch.qos.logback
+ logback-classic
+
+
+ junit
+ junit
+ test
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dao/src/main/java/org/thingsboard/server/dao/cache/CacheSpecs.java b/common/cache/src/main/java/org/thingsboard/server/cache/CacheSpecs.java
similarity index 94%
rename from dao/src/main/java/org/thingsboard/server/dao/cache/CacheSpecs.java
rename to common/cache/src/main/java/org/thingsboard/server/cache/CacheSpecs.java
index 6130942118..15a733c9ca 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/cache/CacheSpecs.java
+++ b/common/cache/src/main/java/org/thingsboard/server/cache/CacheSpecs.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.dao.cache;
+package org.thingsboard.server.cache;
import lombok.Data;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/cache/CaffeineCacheConfiguration.java b/common/cache/src/main/java/org/thingsboard/server/cache/CaffeineCacheConfiguration.java
similarity index 91%
rename from dao/src/main/java/org/thingsboard/server/dao/cache/CaffeineCacheConfiguration.java
rename to common/cache/src/main/java/org/thingsboard/server/cache/CaffeineCacheConfiguration.java
index f3bffb7cb9..7a0ce251fe 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/cache/CaffeineCacheConfiguration.java
+++ b/common/cache/src/main/java/org/thingsboard/server/cache/CaffeineCacheConfiguration.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.dao.cache;
+package org.thingsboard.server.cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.RemovalCause;
@@ -26,7 +26,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.caffeine.CaffeineCache;
-import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.cache.support.SimpleCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -78,14 +77,9 @@ public class CaffeineCacheConfiguration {
return Ticker.systemTicker();
}
- @Bean
- public KeyGenerator previousDeviceCredentialsId() {
- return new PreviousDeviceCredentialsIdKeyGenerator();
- }
-
private Weigher super Object, ? super Object> collectionSafeWeigher() {
return (Weigher