diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index 03c3bbd9f9..4eb82e93dc 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -476,6 +476,8 @@ updates:
# Enable/disable updates checking.
enabled: "${UPDATES_ENABLED:true}"
+spring.main.allow-circular-references: "true"
+
# spring freemarker configuration
spring.freemarker.checkTemplateLocation: "false"
diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseDeviceProfileControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseDeviceProfileControllerTest.java
index 6e0839b354..b77a7d9f41 100644
--- a/application/src/test/java/org/thingsboard/server/controller/BaseDeviceProfileControllerTest.java
+++ b/application/src/test/java/org/thingsboard/server/controller/BaseDeviceProfileControllerTest.java
@@ -151,7 +151,7 @@ public abstract class BaseDeviceProfileControllerTest extends AbstractController
public void testSetDefaultDeviceProfile() throws Exception {
DeviceProfile deviceProfile = this.createDeviceProfile("Device Profile 1", null);
DeviceProfile savedDeviceProfile = doPost("/api/deviceProfile", deviceProfile, DeviceProfile.class);
- DeviceProfile defaultDeviceProfile = doPost("/api/deviceProfile/"+savedDeviceProfile.getId().getId().toString()+"/default", null, DeviceProfile.class);
+ DeviceProfile defaultDeviceProfile = doPost("/api/deviceProfile/"+savedDeviceProfile.getId().getId().toString()+"/default", DeviceProfile.class);
Assert.assertNotNull(defaultDeviceProfile);
DeviceProfileInfo foundDefaultDeviceProfile = doGet("/api/deviceProfileInfo/default", DeviceProfileInfo.class);
Assert.assertNotNull(foundDefaultDeviceProfile);
diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseTenantProfileControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseTenantProfileControllerTest.java
index d8efb76f95..2e628028bb 100644
--- a/application/src/test/java/org/thingsboard/server/controller/BaseTenantProfileControllerTest.java
+++ b/application/src/test/java/org/thingsboard/server/controller/BaseTenantProfileControllerTest.java
@@ -109,7 +109,7 @@ public abstract class BaseTenantProfileControllerTest extends AbstractController
loginSysAdmin();
TenantProfile tenantProfile = this.createTenantProfile("Tenant Profile 1");
TenantProfile savedTenantProfile = doPost("/api/tenantProfile", tenantProfile, TenantProfile.class);
- TenantProfile defaultTenantProfile = doPost("/api/tenantProfile/"+savedTenantProfile.getId().getId().toString()+"/default", null, TenantProfile.class);
+ TenantProfile defaultTenantProfile = doPost("/api/tenantProfile/"+savedTenantProfile.getId().getId().toString()+"/default", TenantProfile.class);
Assert.assertNotNull(defaultTenantProfile);
EntityInfo foundDefaultTenantProfile = doGet("/api/tenantProfileInfo/default", EntityInfo.class);
Assert.assertNotNull(foundDefaultTenantProfile);
diff --git a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisCacheConfiguration.java b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisCacheConfiguration.java
index ff1452f5f0..ebf031c562 100644
--- a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisCacheConfiguration.java
+++ b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisCacheConfiguration.java
@@ -33,6 +33,8 @@ import org.springframework.util.Assert;
import org.thingsboard.server.common.data.id.EntityId;
import redis.clients.jedis.JedisPoolConfig;
+import java.time.Duration;
+
@Configuration
@ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "redis", matchIfMissing = false)
@EnableCaching
@@ -114,8 +116,8 @@ public abstract class TBRedisCacheConfiguration {
poolConfig.setTestOnBorrow(testOnBorrow);
poolConfig.setTestOnReturn(testOnReturn);
poolConfig.setTestWhileIdle(testWhileIdle);
- poolConfig.setMinEvictableIdleTimeMillis(minEvictableMs);
- poolConfig.setTimeBetweenEvictionRunsMillis(evictionRunsMs);
+ poolConfig.setSoftMinEvictableIdleTime(Duration.ofMillis(minEvictableMs));
+ poolConfig.setTimeBetweenEvictionRuns(Duration.ofMillis(evictionRunsMs));
poolConfig.setMaxWaitMillis(maxWaitMills);
poolConfig.setNumTestsPerEvictionRun(numberTestsPerEvictionRun);
poolConfig.setBlockWhenExhausted(blockWhenExhausted);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/util/TbAutoConfiguration.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/util/TbAutoConfiguration.java
new file mode 100644
index 0000000000..ee870a4aea
--- /dev/null
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/util/TbAutoConfiguration.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright © 2016-2022 The Thingsboard Authors
+ *
+ * Licensed 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.thingsboard.server.dao.util;
+
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@EnableAutoConfiguration(exclude = {CassandraAutoConfiguration.class, CassandraDataAutoConfiguration.class, RedisAutoConfiguration.class})
+public @interface TbAutoConfiguration {
+}
diff --git a/dao/pom.xml b/dao/pom.xml
index fdff417fe6..c7471df38c 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -220,14 +220,6 @@
org.springframework
spring-context-support
-
- org.springframework.data
- spring-data-redis
-
-
- redis.clients
- jedis
-
org.elasticsearch.client
rest
diff --git a/dao/src/main/java/org/thingsboard/server/dao/HsqlTsDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/HsqlTsDaoConfig.java
index 56ae8392e9..932312f96e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/HsqlTsDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/HsqlTsDaoConfig.java
@@ -15,7 +15,6 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -23,9 +22,10 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.thingsboard.server.dao.util.HsqlDao;
import org.thingsboard.server.dao.util.SqlTsDao;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@ComponentScan({"org.thingsboard.server.dao.sqlts.hsql"})
@EnableJpaRepositories({"org.thingsboard.server.dao.sqlts.ts", "org.thingsboard.server.dao.sqlts.insert.hsql"})
@EntityScan({"org.thingsboard.server.dao.model.sqlts.ts"})
diff --git a/dao/src/main/java/org/thingsboard/server/dao/HsqlTsLatestDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/HsqlTsLatestDaoConfig.java
index f615a18402..2012ca5a82 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/HsqlTsLatestDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/HsqlTsLatestDaoConfig.java
@@ -15,7 +15,6 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -23,9 +22,10 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.thingsboard.server.dao.util.HsqlDao;
import org.thingsboard.server.dao.util.SqlTsLatestDao;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@ComponentScan({"org.thingsboard.server.dao.sqlts.hsql"})
@EnableJpaRepositories({"org.thingsboard.server.dao.sqlts.insert.latest.hsql", "org.thingsboard.server.dao.sqlts.latest"})
@EntityScan({"org.thingsboard.server.dao.model.sqlts.latest"})
diff --git a/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java
index d71b989d56..de695a9035 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java
@@ -15,18 +15,18 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
/**
* @author Valerii Sosliuk
*/
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@ComponentScan("org.thingsboard.server.dao.sql")
@EnableJpaRepositories("org.thingsboard.server.dao.sql")
@EntityScan("org.thingsboard.server.dao.model.sql")
diff --git a/dao/src/main/java/org/thingsboard/server/dao/PsqlTsDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/PsqlTsDaoConfig.java
index 9c717ec396..06c8cf4a5b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/PsqlTsDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/PsqlTsDaoConfig.java
@@ -15,7 +15,6 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -23,9 +22,10 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.thingsboard.server.dao.util.PsqlDao;
import org.thingsboard.server.dao.util.SqlTsDao;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@ComponentScan({"org.thingsboard.server.dao.sqlts.psql", "org.thingsboard.server.dao.sqlts.insert.psql"})
@EnableJpaRepositories({"org.thingsboard.server.dao.sqlts.ts", "org.thingsboard.server.dao.sqlts.insert.psql"})
@EntityScan({"org.thingsboard.server.dao.model.sqlts.ts"})
diff --git a/dao/src/main/java/org/thingsboard/server/dao/PsqlTsLatestDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/PsqlTsLatestDaoConfig.java
index 73ff6f63fe..9d8d625e78 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/PsqlTsLatestDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/PsqlTsLatestDaoConfig.java
@@ -15,7 +15,6 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -23,9 +22,10 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.thingsboard.server.dao.util.PsqlDao;
import org.thingsboard.server.dao.util.SqlTsLatestDao;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@ComponentScan({"org.thingsboard.server.dao.sqlts.psql"})
@EnableJpaRepositories({"org.thingsboard.server.dao.sqlts.insert.latest.psql", "org.thingsboard.server.dao.sqlts.latest"})
@EntityScan({"org.thingsboard.server.dao.model.sqlts.latest"})
diff --git a/dao/src/main/java/org/thingsboard/server/dao/SqlTimeseriesDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/SqlTimeseriesDaoConfig.java
index e360f84b53..6964ba9dd1 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/SqlTimeseriesDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/SqlTimeseriesDaoConfig.java
@@ -15,16 +15,15 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-import org.thingsboard.server.dao.util.PsqlDao;
import org.thingsboard.server.dao.util.SqlTsOrTsLatestAnyDao;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@EnableJpaRepositories({"org.thingsboard.server.dao.sqlts.dictionary"})
@EntityScan({"org.thingsboard.server.dao.model.sqlts.dictionary"})
@EnableTransactionManagement
diff --git a/dao/src/main/java/org/thingsboard/server/dao/TimescaleDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/TimescaleDaoConfig.java
index 7f73e0dfcc..0e4d4750f9 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/TimescaleDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/TimescaleDaoConfig.java
@@ -15,17 +15,17 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.thingsboard.server.dao.util.PsqlDao;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
import org.thingsboard.server.dao.util.TimescaleDBTsDao;
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@ComponentScan({"org.thingsboard.server.dao.sqlts.timescale"})
@EnableJpaRepositories({"org.thingsboard.server.dao.sqlts.timescale", "org.thingsboard.server.dao.sqlts.insert.timescale"})
@EntityScan({"org.thingsboard.server.dao.model.sqlts.timescale"})
diff --git a/dao/src/main/java/org/thingsboard/server/dao/TimescaleTsLatestDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/TimescaleTsLatestDaoConfig.java
index a9e4b6baab..02082085ba 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/TimescaleTsLatestDaoConfig.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/TimescaleTsLatestDaoConfig.java
@@ -15,17 +15,17 @@
*/
package org.thingsboard.server.dao;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.thingsboard.server.dao.util.PsqlDao;
+import org.thingsboard.server.dao.util.TbAutoConfiguration;
import org.thingsboard.server.dao.util.TimescaleDBTsLatestDao;
@Configuration
-@EnableAutoConfiguration
+@TbAutoConfiguration
@ComponentScan({"org.thingsboard.server.dao.sqlts.timescale"})
@EnableJpaRepositories({"org.thingsboard.server.dao.sqlts.insert.latest.psql", "org.thingsboard.server.dao.sqlts.latest"})
@EntityScan({"org.thingsboard.server.dao.model.sqlts.latest"})
diff --git a/pom.xml b/pom.xml
index d572580132..9d9c12710c 100755
--- a/pom.xml
+++ b/pom.xml
@@ -39,13 +39,13 @@
1.3.2
2.3.2
2.3.2
- 2.3.12.RELEASE
- 2.3.9.RELEASE
- 5.2.16.RELEASE
- 5.2.11.RELEASE
- 5.4.7
- 2.4.3
- 3.3.0
+ 2.5.9
+ 2.5.9
+ 5.3.16
+ 5.5.9
+ 5.6.2
+ 2.5.9
+ 3.7.1
0.7.0
1.7.32
2.17.1
@@ -79,7 +79,7 @@
1.42.1
1.18.18
1.2.4
- 4.1.72.Final
+ 4.1.75.Final
2.0.46.Final
1.7.0
4.8.0
@@ -112,7 +112,7 @@
1.4.3
1.9.4
3.2.2
- 1.5.2
+ 1.8.3
1.0.3TB
3.4.0
8.17.0
@@ -127,7 +127,7 @@
2.7.2
2.6.1
1.5.2
- 5.6.3
+ 5.7.2
2.6.0
1.3.0
1.2.7