diff --git a/application/pom.xml b/application/pom.xml
index cd8313c220..1b89752925 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
thingsboard
application
diff --git a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java
index 597b70275b..ebab403149 100644
--- a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java
+++ b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java
@@ -216,8 +216,10 @@ public class ThingsboardInstallService {
dataUpdateService.updateData("3.3.2");
case "3.3.3":
log.info("Upgrading ThingsBoard from version 3.3.3 to 3.3.4 ...");
- log.info("Updating system data...");
databaseEntitiesUpgradeService.upgradeDatabase("3.3.3");
+ case "3.3.4":
+ log.info("Upgrading ThingsBoard from version 3.3.4 to 3.4.0 ...");
+ log.info("Updating system data...");
systemDataLoaderService.updateSystemWidgets();
break;
diff --git a/common/actor/pom.xml b/common/actor/pom.xml
index 9692a76b91..a06fa00b55 100644
--- a/common/actor/pom.xml
+++ b/common/actor/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/cache/pom.xml b/common/cache/pom.xml
index 351a23ea4c..47834cb6bb 100644
--- a/common/cache/pom.xml
+++ b/common/cache/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/cluster-api/pom.xml b/common/cluster-api/pom.xml
index 95f27310ce..b531f26597 100644
--- a/common/cluster-api/pom.xml
+++ b/common/cluster-api/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/coap-server/pom.xml b/common/coap-server/pom.xml
index a19101b51d..fad7c87420 100644
--- a/common/coap-server/pom.xml
+++ b/common/coap-server/pom.xml
@@ -22,7 +22,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/dao-api/pom.xml b/common/dao-api/pom.xml
index 77843ea3e2..931d7dc6d4 100644
--- a/common/dao-api/pom.xml
+++ b/common/dao-api/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/data/pom.xml b/common/data/pom.xml
index c9fa24de31..1f2a6b10b1 100644
--- a/common/data/pom.xml
+++ b/common/data/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/edge-api/pom.xml b/common/edge-api/pom.xml
index 78eb539049..0381a19de9 100644
--- a/common/edge-api/pom.xml
+++ b/common/edge-api/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/message/pom.xml b/common/message/pom.xml
index 0ec15a459c..3948f8e7b8 100644
--- a/common/message/pom.xml
+++ b/common/message/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/pom.xml b/common/pom.xml
index e3a246a13c..236fb50a19 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
thingsboard
common
diff --git a/common/queue/pom.xml b/common/queue/pom.xml
index c273323cb7..c7d01f429a 100644
--- a/common/queue/pom.xml
+++ b/common/queue/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/stats/pom.xml b/common/stats/pom.xml
index 5e3760dd36..7802793d64 100644
--- a/common/stats/pom.xml
+++ b/common/stats/pom.xml
@@ -22,7 +22,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/transport/coap/pom.xml b/common/transport/coap/pom.xml
index cde1ba8d20..98cf0b807a 100644
--- a/common/transport/coap/pom.xml
+++ b/common/transport/coap/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard.common
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
transport
org.thingsboard.common.transport
diff --git a/common/transport/http/pom.xml b/common/transport/http/pom.xml
index 8f92b3ff30..1096d58f2a 100644
--- a/common/transport/http/pom.xml
+++ b/common/transport/http/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard.common
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
transport
org.thingsboard.common.transport
diff --git a/common/transport/lwm2m/pom.xml b/common/transport/lwm2m/pom.xml
index 26fd7d4fb8..2fb1f533aa 100644
--- a/common/transport/lwm2m/pom.xml
+++ b/common/transport/lwm2m/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard.common
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
transport
org.thingsboard.common.transport
diff --git a/common/transport/mqtt/pom.xml b/common/transport/mqtt/pom.xml
index 69fe09a043..c029e7c9ac 100644
--- a/common/transport/mqtt/pom.xml
+++ b/common/transport/mqtt/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard.common
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
transport
org.thingsboard.common.transport
diff --git a/common/transport/pom.xml b/common/transport/pom.xml
index 93e8bd310c..a061c963f4 100644
--- a/common/transport/pom.xml
+++ b/common/transport/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/common/transport/snmp/pom.xml b/common/transport/snmp/pom.xml
index 6ea0d6f06d..ee1d8f2a0d 100644
--- a/common/transport/snmp/pom.xml
+++ b/common/transport/snmp/pom.xml
@@ -21,7 +21,7 @@
org.thingsboard.common
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
transport
diff --git a/common/transport/transport-api/pom.xml b/common/transport/transport-api/pom.xml
index 9195cfe132..8b3f9feb22 100644
--- a/common/transport/transport-api/pom.xml
+++ b/common/transport/transport-api/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard.common
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
transport
org.thingsboard.common.transport
diff --git a/common/util/pom.xml b/common/util/pom.xml
index f7c3602bca..3c20fb0b8f 100644
--- a/common/util/pom.xml
+++ b/common/util/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
common
org.thingsboard.common
diff --git a/dao/pom.xml b/dao/pom.xml
index fdff417fe6..f1a66e8e5c 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 3.3.4-SNAPSHOT
+ 3.4.0-SNAPSHOT
thingsboard
dao
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
index 7761fddf38..3c996ff6f5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
@@ -19,7 +19,7 @@ import com.datastax.oss.driver.api.core.uuid.Uuids;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.Dao;
@@ -41,7 +41,7 @@ public abstract class JpaAbstractDao, D>
protected abstract Class getEntityClass();
- protected abstract CrudRepository getCrudRepository();
+ protected abstract JpaRepository getRepository();
protected void setSearchText(E entity) {
}
@@ -63,52 +63,52 @@ public abstract class JpaAbstractDao, D>
entity.setUuid(uuid);
entity.setCreatedTime(Uuids.unixTimestamp(uuid));
}
- entity = getCrudRepository().save(entity);
+ entity = getRepository().save(entity);
return DaoUtil.getData(entity);
}
@Override
public D findById(TenantId tenantId, UUID key) {
log.debug("Get entity by key {}", key);
- Optional entity = getCrudRepository().findById(key);
+ Optional entity = getRepository().findById(key);
return DaoUtil.getData(entity);
}
@Override
public ListenableFuture findByIdAsync(TenantId tenantId, UUID key) {
log.debug("Get entity by key async {}", key);
- return service.submit(() -> DaoUtil.getData(getCrudRepository().findById(key)));
+ return service.submit(() -> DaoUtil.getData(getRepository().findById(key)));
}
@Override
public boolean existsById(TenantId tenantId, UUID key) {
log.debug("Exists by key {}", key);
- return getCrudRepository().existsById(key);
+ return getRepository().existsById(key);
}
@Override
public ListenableFuture existsByIdAsync(TenantId tenantId, UUID key) {
log.debug("Exists by key async {}", key);
- return service.submit(() -> getCrudRepository().existsById(key));
+ return service.submit(() -> getRepository().existsById(key));
}
@Override
@Transactional
public boolean removeById(TenantId tenantId, UUID id) {
- getCrudRepository().deleteById(id);
+ getRepository().deleteById(id);
log.debug("Remove request: {}", id);
- return !getCrudRepository().existsById(id);
+ return !getRepository().existsById(id);
}
@Transactional
public void removeAllByIds(Collection ids) {
- CrudRepository repository = getCrudRepository();
+ JpaRepository repository = getRepository();
ids.forEach(repository::deleteById);
}
@Override
public List find(TenantId tenantId) {
- List entities = Lists.newArrayList(getCrudRepository().findAll());
+ List entities = Lists.newArrayList(getRepository().findAll());
return DaoUtil.convertDataList(entities);
}
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java
index 77149604ef..beadcddf31 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java
@@ -17,13 +17,11 @@ package org.thingsboard.server.dao.sql.alarm;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.alarm.AlarmSeverity;
import org.thingsboard.server.common.data.alarm.AlarmStatus;
-import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.model.sql.AlarmEntity;
import org.thingsboard.server.dao.model.sql.AlarmInfoEntity;
@@ -34,7 +32,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/21/2017.
*/
-public interface AlarmRepository extends CrudRepository {
+public interface AlarmRepository extends JpaRepository {
@Query("SELECT a FROM AlarmEntity a WHERE a.originatorId = :originatorId AND a.type = :alarmType ORDER BY a.startTs DESC")
List findLatestByOriginatorAndType(@Param("originatorId") UUID originatorId,
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/EntityAlarmRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/EntityAlarmRepository.java
index e7e2951c0e..43d43a5f8e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/EntityAlarmRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/EntityAlarmRepository.java
@@ -15,7 +15,7 @@
*/
package org.thingsboard.server.dao.sql.alarm;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.dao.model.sql.EntityAlarmCompositeKey;
import org.thingsboard.server.dao.model.sql.EntityAlarmEntity;
@@ -23,7 +23,7 @@ import org.thingsboard.server.dao.model.sql.EntityAlarmEntity;
import java.util.List;
import java.util.UUID;
-public interface EntityAlarmRepository extends CrudRepository {
+public interface EntityAlarmRepository extends JpaRepository {
List findAllByAlarmId(UUID alarmId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
index 03f944a68a..cdf04f47c5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
@@ -19,7 +19,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.alarm.Alarm;
import org.thingsboard.server.common.data.alarm.AlarmInfo;
@@ -39,7 +39,6 @@ import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.alarm.AlarmDao;
import org.thingsboard.server.dao.model.sql.AlarmEntity;
import org.thingsboard.server.dao.model.sql.EntityAlarmEntity;
-import org.thingsboard.server.dao.relation.RelationDao;
import org.thingsboard.server.dao.sql.JpaAbstractDao;
import org.thingsboard.server.dao.sql.query.AlarmQueryRepository;
@@ -72,7 +71,7 @@ public class JpaAlarmDao extends JpaAbstractDao implements A
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return alarmRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java
index 39ab53f9ce..833fcc2de8 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java
@@ -17,12 +17,11 @@ package org.thingsboard.server.dao.sql.asset;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.AssetEntity;
import org.thingsboard.server.dao.model.sql.AssetInfoEntity;
-import org.thingsboard.server.dao.model.sql.RuleChainEntity;
import java.util.List;
import java.util.UUID;
@@ -30,7 +29,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/21/2017.
*/
-public interface AssetRepository extends PagingAndSortingRepository {
+public interface AssetRepository extends JpaRepository {
@Query("SELECT new org.thingsboard.server.dao.model.sql.AssetInfoEntity(a, c.title, c.additionalInfo) " +
"FROM AssetEntity a " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java
index 7efedbb6db..c9752c5390 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java
@@ -15,29 +15,22 @@
*/
package org.thingsboard.server.dao.sql.asset;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.MoreExecutors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.AssetInfo;
-import org.thingsboard.server.common.data.id.EdgeId;
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.common.data.relation.EntityRelation;
-import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.asset.AssetDao;
import org.thingsboard.server.dao.model.sql.AssetEntity;
import org.thingsboard.server.dao.model.sql.AssetInfoEntity;
-import org.thingsboard.server.dao.relation.RelationDao;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
import java.util.ArrayList;
@@ -65,7 +58,7 @@ public class JpaAssetDao extends JpaAbstractSearchTextDao im
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return assetRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java
index ffb49c0826..d2079d5061 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java
@@ -15,9 +15,9 @@
*/
package org.thingsboard.server.dao.sql.attributes;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.EntityType;
@@ -27,7 +27,7 @@ import org.thingsboard.server.dao.model.sql.AttributeKvEntity;
import java.util.List;
import java.util.UUID;
-public interface AttributeKvRepository extends CrudRepository {
+public interface AttributeKvRepository extends JpaRepository {
@Query("SELECT a FROM AttributeKvEntity a WHERE a.id.entityType = :entityType " +
"AND a.id.entityId = :entityId " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/audit/AuditLogRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/audit/AuditLogRepository.java
index 86d733d671..8971a900d1 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/audit/AuditLogRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/audit/AuditLogRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.audit;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.audit.ActionType;
@@ -27,7 +27,7 @@ import org.thingsboard.server.dao.model.sql.AuditLogEntity;
import java.util.List;
import java.util.UUID;
-public interface AuditLogRepository extends PagingAndSortingRepository {
+public interface AuditLogRepository extends JpaRepository {
@Query("SELECT a FROM AuditLogEntity a WHERE " +
"a.tenantId = :tenantId " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDao.java
index abfd43a12a..9c72bec397 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.audit;
import com.google.common.util.concurrent.ListenableFuture;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.audit.ActionType;
import org.thingsboard.server.common.data.audit.AuditLog;
@@ -47,7 +47,7 @@ public class JpaAuditLogDao extends JpaAbstractDao imp
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return auditLogRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java
index d760d4107a..1a549436d0 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.component;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.plugin.ComponentScope;
import org.thingsboard.server.common.data.plugin.ComponentType;
@@ -29,7 +29,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
-public interface ComponentDescriptorRepository extends PagingAndSortingRepository {
+public interface ComponentDescriptorRepository extends JpaRepository {
ComponentDescriptorEntity findByClazz(String clazz);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java
index 0d4195d2e0..c1102fe9ff 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.component;
import com.datastax.oss.driver.api.core.uuid.Uuids;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.id.ComponentDescriptorId;
@@ -55,7 +55,7 @@ public class JpaBaseComponentDescriptorDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return componentDescriptorRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java
index 223ae36d6c..61cd9afac7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.customer;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.CustomerEntity;
@@ -27,7 +27,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
-public interface CustomerRepository extends PagingAndSortingRepository {
+public interface CustomerRepository extends JpaRepository {
@Query("SELECT c FROM CustomerEntity c WHERE c.tenantId = :tenantId " +
"AND LOWER(c.searchText) LIKE LOWER(CONCAT('%', :textSearch, '%'))")
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java
index 50de7e0ae3..02311df61c 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.customer;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.id.TenantId;
@@ -46,7 +46,7 @@ public class JpaCustomerDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return customerRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java
index a1ef3c4f77..a9bd93b168 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.dashboard;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.DashboardInfoEntity;
@@ -27,7 +27,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
-public interface DashboardInfoRepository extends PagingAndSortingRepository {
+public interface DashboardInfoRepository extends JpaRepository {
DashboardInfoEntity findFirstByTenantIdAndTitle(UUID tenantId, String title);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java
index a316322853..36518887d4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java
@@ -15,7 +15,7 @@
*/
package org.thingsboard.server.dao.sql.dashboard;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sql.DashboardEntity;
import java.util.UUID;
@@ -23,7 +23,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
-public interface DashboardRepository extends CrudRepository {
+public interface DashboardRepository extends JpaRepository {
Long countByTenantId(UUID tenantId);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java
index 6a1d2555b6..98edcaa1fd 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.dashboard;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Dashboard;
import org.thingsboard.server.common.data.id.TenantId;
@@ -41,7 +41,7 @@ public class JpaDashboardDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return dashboardRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java
index 9a5ee268f3..d98312e7d5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.dashboard;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.DashboardInfo;
import org.thingsboard.server.common.data.page.PageData;
@@ -26,7 +26,6 @@ import org.thingsboard.server.common.data.page.SortOrder;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.dashboard.DashboardInfoDao;
import org.thingsboard.server.dao.model.sql.DashboardInfoEntity;
-import org.thingsboard.server.dao.relation.RelationDao;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
import java.util.ArrayList;
@@ -50,7 +49,7 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return dashboardInfoRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java
index 0b298ff3a4..e88b09a2bc 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.device;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.id.TenantId;
@@ -43,7 +43,7 @@ public class JpaDeviceCredentialsDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return deviceCredentialsRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java
index 0b629eb542..1d75690e50 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java
@@ -20,7 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
@@ -63,7 +63,7 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return deviceRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java
index c6997aecff..80513d77c6 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.device;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.DeviceProfile;
@@ -46,7 +46,7 @@ public class JpaDeviceProfileDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return deviceProfileRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeEventRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeEventRepository.java
index 936fe59806..ef610e8e92 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeEventRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeEventRepository.java
@@ -17,15 +17,15 @@ package org.thingsboard.server.dao.sql.edge;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.EdgeEventEntity;
import java.util.UUID;
-public interface EdgeEventRepository extends PagingAndSortingRepository, JpaSpecificationExecutor {
+public interface EdgeEventRepository extends JpaRepository, JpaSpecificationExecutor {
@Query("SELECT e FROM EdgeEventEntity e WHERE " +
"e.tenantId = :tenantId " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java
index b253ca837d..3952834e8b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java
@@ -17,17 +17,16 @@ package org.thingsboard.server.dao.sql.edge;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.EdgeEntity;
import org.thingsboard.server.dao.model.sql.EdgeInfoEntity;
-import org.thingsboard.server.dao.model.sql.RuleChainEntity;
import java.util.List;
import java.util.UUID;
-public interface EdgeRepository extends PagingAndSortingRepository {
+public interface EdgeRepository extends JpaRepository {
@Query("SELECT d FROM EdgeEntity d WHERE d.tenantId = :tenantId " +
"AND d.customerId = :customerId " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java
index 78b57613c7..b327ef4edf 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java
@@ -19,7 +19,7 @@ import com.datastax.oss.driver.api.core.uuid.Uuids;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.edge.EdgeEvent;
import org.thingsboard.server.common.data.id.EdgeEventId;
@@ -63,7 +63,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return edgeEventRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java
index 91f4a67040..4be9c08849 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java
@@ -18,7 +18,7 @@ package org.thingsboard.server.dao.sql.edge;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.EntityType;
@@ -53,7 +53,7 @@ public class JpaEdgeDao extends JpaAbstractSearchTextDao imple
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return edgeRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java
index 7c3d1c9eaf..7a88aa3c5b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java
@@ -17,10 +17,9 @@ package org.thingsboard.server.dao.sql.entityview;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
-import org.thingsboard.server.dao.model.sql.DeviceEntity;
import org.thingsboard.server.dao.model.sql.EntityViewEntity;
import org.thingsboard.server.dao.model.sql.EntityViewInfoEntity;
@@ -30,7 +29,7 @@ import java.util.UUID;
/**
* Created by Victor Basanets on 8/31/2017.
*/
-public interface EntityViewRepository extends PagingAndSortingRepository {
+public interface EntityViewRepository extends JpaRepository {
@Query("SELECT new org.thingsboard.server.dao.model.sql.EntityViewInfoEntity(e, c.title, c.additionalInfo) " +
"FROM EntityViewEntity e " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java
index b61de44cea..8c515f13c0 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java
@@ -18,7 +18,7 @@ package org.thingsboard.server.dao.sql.entityview;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.EntityType;
@@ -57,7 +57,7 @@ public class JpaEntityViewDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return entityViewRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java
index 41bd9ef9cf..e36b82f1e8 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.event;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.dao.model.sql.EventEntity;
@@ -29,7 +29,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/3/2017.
*/
-public interface EventRepository extends PagingAndSortingRepository {
+public interface EventRepository extends JpaRepository {
EventEntity findByTenantIdAndEntityTypeAndEntityIdAndEventTypeAndEventUid(UUID tenantId,
EntityType entityType,
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java
index 6f42857a96..2b409006d2 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java
@@ -22,7 +22,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Event;
import org.thingsboard.server.common.data.event.DebugEvent;
@@ -32,13 +32,11 @@ import org.thingsboard.server.common.data.event.LifeCycleEventFilter;
import org.thingsboard.server.common.data.event.StatisticsEventFilter;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.EventId;
-import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.event.EventDao;
-import org.thingsboard.server.dao.model.sql.AttributeKvEntity;
import org.thingsboard.server.dao.model.sql.EventEntity;
import org.thingsboard.server.dao.sql.JpaAbstractDao;
import org.thingsboard.server.dao.sql.ScheduledLogExecutorComponent;
@@ -50,7 +48,6 @@ import javax.annotation.PreDestroy;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
-import java.util.Optional;
import java.util.UUID;
import java.util.function.Function;
@@ -80,7 +77,7 @@ public class JpaBaseEventDao extends JpaAbstractDao implemen
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return eventRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationTemplateDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationTemplateDao.java
index efbbd0c7ae..344f8e97db 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationTemplateDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationTemplateDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.oauth2;
import lombok.RequiredArgsConstructor;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate;
import org.thingsboard.server.dao.DaoUtil;
@@ -40,7 +40,7 @@ public class JpaOAuth2ClientRegistrationTemplateDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return repository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2DomainDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2DomainDao.java
index 58cef17573..e191fc12f4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2DomainDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2DomainDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.oauth2;
import lombok.RequiredArgsConstructor;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.oauth2.OAuth2Domain;
import org.thingsboard.server.dao.DaoUtil;
@@ -39,7 +39,7 @@ public class JpaOAuth2DomainDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return repository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2MobileDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2MobileDao.java
index 4d6f695c67..94fc0a9a17 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2MobileDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2MobileDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.oauth2;
import lombok.RequiredArgsConstructor;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.oauth2.OAuth2Mobile;
import org.thingsboard.server.dao.DaoUtil;
@@ -39,7 +39,7 @@ public class JpaOAuth2MobileDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return repository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ParamsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ParamsDao.java
index 7c7209bffb..d18494a015 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ParamsDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ParamsDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.oauth2;
import lombok.RequiredArgsConstructor;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.oauth2.OAuth2Params;
import org.thingsboard.server.dao.model.sql.OAuth2ParamsEntity;
@@ -36,7 +36,7 @@ public class JpaOAuth2ParamsDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return repository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2RegistrationDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2RegistrationDao.java
index 158379202f..0a0021bf66 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2RegistrationDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2RegistrationDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.oauth2;
import lombok.RequiredArgsConstructor;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.oauth2.OAuth2Registration;
import org.thingsboard.server.common.data.oauth2.PlatformType;
@@ -41,7 +41,7 @@ public class JpaOAuth2RegistrationDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return repository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationTemplateRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationTemplateRepository.java
index 87e01de3e7..89abddc35f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationTemplateRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationTemplateRepository.java
@@ -15,12 +15,12 @@
*/
package org.thingsboard.server.dao.sql.oauth2;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sql.OAuth2ClientRegistrationTemplateEntity;
import java.util.UUID;
-public interface OAuth2ClientRegistrationTemplateRepository extends CrudRepository {
+public interface OAuth2ClientRegistrationTemplateRepository extends JpaRepository {
OAuth2ClientRegistrationTemplateEntity findByProviderId(String providerId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2DomainRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2DomainRepository.java
index 8ed6040056..f83d0cad94 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2DomainRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2DomainRepository.java
@@ -15,13 +15,13 @@
*/
package org.thingsboard.server.dao.sql.oauth2;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sql.OAuth2DomainEntity;
import java.util.List;
import java.util.UUID;
-public interface OAuth2DomainRepository extends CrudRepository {
+public interface OAuth2DomainRepository extends JpaRepository {
List findByOauth2ParamsId(UUID oauth2ParamsId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2MobileRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2MobileRepository.java
index 11f9ef8416..cb656a1f7e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2MobileRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2MobileRepository.java
@@ -15,13 +15,13 @@
*/
package org.thingsboard.server.dao.sql.oauth2;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sql.OAuth2MobileEntity;
import java.util.List;
import java.util.UUID;
-public interface OAuth2MobileRepository extends CrudRepository {
+public interface OAuth2MobileRepository extends JpaRepository {
List findByOauth2ParamsId(UUID oauth2ParamsId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ParamsRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ParamsRepository.java
index cd59c0d7e5..e3d14078a1 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ParamsRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ParamsRepository.java
@@ -15,10 +15,10 @@
*/
package org.thingsboard.server.dao.sql.oauth2;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sql.OAuth2ParamsEntity;
import java.util.UUID;
-public interface OAuth2ParamsRepository extends CrudRepository {
+public interface OAuth2ParamsRepository extends JpaRepository {
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2RegistrationRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2RegistrationRepository.java
index 19da1ac99e..72a114edaf 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2RegistrationRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2RegistrationRepository.java
@@ -15,8 +15,8 @@
*/
package org.thingsboard.server.dao.sql.oauth2;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.oauth2.SchemeType;
import org.thingsboard.server.dao.model.sql.OAuth2RegistrationEntity;
@@ -24,7 +24,7 @@ import org.thingsboard.server.dao.model.sql.OAuth2RegistrationEntity;
import java.util.List;
import java.util.UUID;
-public interface OAuth2RegistrationRepository extends CrudRepository {
+public interface OAuth2RegistrationRepository extends JpaRepository {
@Query("SELECT reg " +
"FROM OAuth2RegistrationEntity reg " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageDao.java
index e4504833a3..f6e6dbc5c4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.ota;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.OtaPackage;
import org.thingsboard.server.common.data.id.TenantId;
@@ -40,7 +40,7 @@ public class JpaOtaPackageDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return otaPackageRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageInfoDao.java
index 4ff37cf873..8ea805332e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageInfoDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageInfoDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.ota;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.OtaPackageInfo;
import org.thingsboard.server.common.data.ota.OtaPackageType;
@@ -47,7 +47,7 @@ public class JpaOtaPackageInfoDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return otaPackageInfoRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageInfoRepository.java
index d216d21bb4..7e770fa5b1 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageInfoRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageInfoRepository.java
@@ -17,15 +17,15 @@ package org.thingsboard.server.dao.sql.ota;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.ota.OtaPackageType;
import org.thingsboard.server.dao.model.sql.OtaPackageInfoEntity;
import java.util.UUID;
-public interface OtaPackageInfoRepository extends CrudRepository {
+public interface OtaPackageInfoRepository extends JpaRepository {
@Query("SELECT new OtaPackageInfoEntity(f.id, f.createdTime, f.tenantId, f.deviceProfileId, f.type, f.title, f.version, f.tag, f.url, f.fileName, f.contentType, f.checksumAlgorithm, f.checksum, f.dataSize, f.additionalInfo, CASE WHEN (f.data IS NOT NULL OR f.url IS NOT NULL) THEN true ELSE false END) FROM OtaPackageEntity f WHERE " +
"f.tenantId = :tenantId " +
"AND LOWER(f.searchText) LIKE LOWER(CONCAT('%', :searchText, '%'))")
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageRepository.java
index 36d9f04163..1500fa6435 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/ota/OtaPackageRepository.java
@@ -15,15 +15,14 @@
*/
package org.thingsboard.server.dao.sql.ota;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.OtaPackageEntity;
-import org.thingsboard.server.dao.model.sql.OtaPackageInfoEntity;
import java.util.UUID;
-public interface OtaPackageRepository extends CrudRepository {
+public interface OtaPackageRepository extends JpaRepository {
@Query(value = "SELECT COALESCE(SUM(ota.data_size), 0) FROM ota_package ota WHERE ota.tenant_id = :tenantId AND ota.data IS NOT NULL", nativeQuery = true)
Long sumDataSizeByTenantId(@Param("tenantId") UUID tenantId);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java
index 507112f8ca..bddd344672 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java
@@ -15,26 +15,21 @@
*/
package org.thingsboard.server.dao.sql.relation;
-import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
-import org.thingsboard.server.common.data.EntityType;
-import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.common.data.rule.RuleChainType;
import org.thingsboard.server.dao.model.sql.RelationCompositeKey;
import org.thingsboard.server.dao.model.sql.RelationEntity;
-import org.thingsboard.server.dao.model.sql.RuleChainEntity;
import java.util.List;
import java.util.UUID;
public interface RelationRepository
- extends CrudRepository, JpaSpecificationExecutor {
+ extends JpaRepository, JpaSpecificationExecutor {
List findAllByFromIdAndFromTypeAndRelationTypeGroup(UUID fromId,
String fromType,
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java
index 34a57899d0..dbf60af096 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.resource;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.ResourceType;
import org.thingsboard.server.common.data.TbResource;
@@ -48,7 +48,7 @@ public class JpaTbResourceDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return resourceRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java
index 3654302def..e2d68a6db4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.TbResourceInfo;
import org.thingsboard.server.common.data.id.TenantId;
@@ -44,7 +44,7 @@ public class JpaTbResourceInfoDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return resourceInfoRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java
index 640b1f95d4..ca4754340b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java
@@ -17,14 +17,14 @@ package org.thingsboard.server.dao.sql.resource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.TbResourceInfoEntity;
import java.util.UUID;
-public interface TbResourceInfoRepository extends CrudRepository {
+public interface TbResourceInfoRepository extends JpaRepository {
@Query("SELECT tr FROM TbResourceInfoEntity tr WHERE " +
"LOWER(tr.title) LIKE LOWER(CONCAT('%', :searchText, '%'))" +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java
index a17ba89cb1..165dc9ba26 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java
@@ -17,15 +17,15 @@ package org.thingsboard.server.dao.sql.resource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.TbResourceEntity;
import java.util.List;
import java.util.UUID;
-public interface TbResourceRepository extends CrudRepository {
+public interface TbResourceRepository extends JpaRepository {
TbResourceEntity findByTenantIdAndResourceTypeAndResourceKey(UUID tenantId, String resourceType, String resourceKey);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/JpaRpcDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/JpaRpcDao.java
index 3efb2a08c0..bd7188ba74 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/JpaRpcDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/JpaRpcDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.rpc;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.TenantId;
@@ -45,7 +45,7 @@ public class JpaRpcDao extends JpaAbstractDao implements RpcDao
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return rpcRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/RpcRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/RpcRepository.java
index 42a473f960..2c0685812d 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/RpcRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rpc/RpcRepository.java
@@ -17,15 +17,15 @@ package org.thingsboard.server.dao.sql.rpc;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.rpc.RpcStatus;
import org.thingsboard.server.dao.model.sql.RpcEntity;
import java.util.UUID;
-public interface RpcRepository extends CrudRepository {
+public interface RpcRepository extends JpaRepository {
Page findAllByTenantIdAndDeviceId(UUID tenantId, UUID deviceId, Pageable pageable);
Page findAllByTenantIdAndDeviceIdAndStatus(UUID tenantId, UUID deviceId, RpcStatus status, Pageable pageable);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleChainDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleChainDao.java
index 43c93eb507..3a7fc921e5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleChainDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleChainDao.java
@@ -17,13 +17,12 @@ package org.thingsboard.server.dao.sql.rule;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
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.rule.RuleChain;
-import org.thingsboard.server.common.data.rule.RuleChainOutputLabelsUsage;
import org.thingsboard.server.common.data.rule.RuleChainType;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.model.sql.RuleChainEntity;
@@ -31,7 +30,6 @@ import org.thingsboard.server.dao.rule.RuleChainDao;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
import java.util.Collection;
-import java.util.List;
import java.util.Objects;
import java.util.UUID;
@@ -48,7 +46,7 @@ public class JpaRuleChainDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return ruleChainRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java
index 67c986d3e9..a499e68da8 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.rule;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.rule.RuleNode;
@@ -42,7 +42,7 @@ public class JpaRuleNodeDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return ruleNodeRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeStateDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeStateDao.java
index c70c0abe62..9b8c7ff8e7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeStateDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeStateDao.java
@@ -17,10 +17,9 @@ package org.thingsboard.server.dao.sql.rule;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.rule.RuleNodeState;
@@ -44,7 +43,7 @@ public class JpaRuleNodeStateDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return ruleNodeStateRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleChainRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleChainRepository.java
index 05eda3bef7..fe9be8dcc7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleChainRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleChainRepository.java
@@ -17,20 +17,16 @@ package org.thingsboard.server.dao.sql.rule;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
-import org.thingsboard.server.common.data.EntityType;
-import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.common.data.rule.RuleChainType;
-import org.thingsboard.server.dao.model.sql.RelationEntity;
import org.thingsboard.server.dao.model.sql.RuleChainEntity;
import java.util.List;
import java.util.UUID;
-public interface RuleChainRepository extends PagingAndSortingRepository {
+public interface RuleChainRepository extends JpaRepository {
@Query("SELECT rc FROM RuleChainEntity rc WHERE rc.tenantId = :tenantId " +
"AND LOWER(rc.searchText) LIKE LOWER(CONCAT('%', :searchText, '%'))")
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java
index eb42e6f022..b11923a50f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java
@@ -15,15 +15,15 @@
*/
package org.thingsboard.server.dao.sql.rule;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.RuleNodeEntity;
import java.util.List;
import java.util.UUID;
-public interface RuleNodeRepository extends CrudRepository {
+public interface RuleNodeRepository extends JpaRepository {
@Query("SELECT r FROM RuleNodeEntity r WHERE r.ruleChainId in " +
"(select id from RuleChainEntity rc WHERE rc.tenantId = :tenantId) " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeStateRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeStateRepository.java
index 7da7641500..1fb243336b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeStateRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeStateRepository.java
@@ -17,16 +17,14 @@ package org.thingsboard.server.dao.sql.rule;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
-import org.thingsboard.server.common.data.EntityType;
-import org.thingsboard.server.dao.model.sql.EventEntity;
import org.thingsboard.server.dao.model.sql.RuleNodeStateEntity;
import java.util.UUID;
-public interface RuleNodeStateRepository extends PagingAndSortingRepository {
+public interface RuleNodeStateRepository extends JpaRepository {
@Query("SELECT e FROM RuleNodeStateEntity e WHERE e.ruleNodeId = :ruleNodeId")
Page findByRuleNodeId(@Param("ruleNodeId") UUID ruleNodeId, Pageable pageable);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/settings/AdminSettingsRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/settings/AdminSettingsRepository.java
index d2bb1ab062..58423645b1 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/settings/AdminSettingsRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/settings/AdminSettingsRepository.java
@@ -15,7 +15,7 @@
*/
package org.thingsboard.server.dao.sql.settings;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sql.AdminSettingsEntity;
import java.util.UUID;
@@ -23,7 +23,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
-public interface AdminSettingsRepository extends CrudRepository {
+public interface AdminSettingsRepository extends JpaRepository {
AdminSettingsEntity findByKey(String key);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java
index d1ca43be92..438274e3cc 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java
@@ -17,7 +17,7 @@ package org.thingsboard.server.dao.sql.settings;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.AdminSettings;
import org.thingsboard.server.common.data.id.TenantId;
@@ -41,7 +41,7 @@ public class JpaAdminSettingsDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return adminSettingsRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java
index 2a3ce2bcab..b985d45e8c 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.tenant;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.TenantInfo;
@@ -48,7 +48,7 @@ public class JpaTenantDao extends JpaAbstractSearchTextDao
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return tenantRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantProfileDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantProfileDao.java
index 8b17123866..3cad31f553 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantProfileDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantProfileDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.tenant;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.EntityInfo;
import org.thingsboard.server.common.data.TenantProfile;
@@ -43,7 +43,7 @@ public class JpaTenantProfileDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return tenantProfileRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantProfileRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantProfileRepository.java
index f08cb65983..5241148764 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantProfileRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantProfileRepository.java
@@ -17,15 +17,15 @@ package org.thingsboard.server.dao.sql.tenant;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.EntityInfo;
import org.thingsboard.server.dao.model.sql.TenantProfileEntity;
import java.util.UUID;
-public interface TenantProfileRepository extends PagingAndSortingRepository {
+public interface TenantProfileRepository extends JpaRepository {
@Query("SELECT new org.thingsboard.server.common.data.EntityInfo(t.id, 'TENANT_PROFILE', t.name) " +
"FROM TenantProfileEntity t " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java
index 8f0bb05021..833bc08fd4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.tenant;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.TenantEntity;
import org.thingsboard.server.dao.model.sql.TenantInfoEntity;
@@ -28,7 +28,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 4/30/2017.
*/
-public interface TenantRepository extends PagingAndSortingRepository {
+public interface TenantRepository extends JpaRepository {
@Query("SELECT new org.thingsboard.server.dao.model.sql.TenantInfoEntity(t, p.name) " +
"FROM TenantEntity t " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java
index cb190d8417..7b060e0b43 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java
@@ -15,9 +15,9 @@
*/
package org.thingsboard.server.dao.sql.usagerecord;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.dao.model.sql.ApiUsageStateEntity;
@@ -27,7 +27,7 @@ import java.util.UUID;
/**
* @author Valerii Sosliuk
*/
-public interface ApiUsageStateRepository extends CrudRepository {
+public interface ApiUsageStateRepository extends JpaRepository {
@Query("SELECT ur FROM ApiUsageStateEntity ur WHERE ur.tenantId = :tenantId " +
"AND ur.entityId = :tenantId AND ur.entityType = 'TENANT' ")
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java
index 13f8d605e8..7c6801042d 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java
@@ -15,7 +15,7 @@
*/
package org.thingsboard.server.dao.sql.usagerecord;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.ApiUsageState;
import org.thingsboard.server.common.data.id.EntityId;
@@ -45,7 +45,7 @@ public class JpaApiUsageStateDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return apiUsageStateRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDao.java
index 676745c1cb..69f83efc86 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.user;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.security.UserCredentials;
@@ -42,7 +42,7 @@ public class JpaUserCredentialsDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return userCredentialsRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java
index 95e6b1e3cd..6b2de9872a 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.user;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.id.TenantId;
@@ -48,7 +48,7 @@ public class JpaUserDao extends JpaAbstractSearchTextDao imple
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected JpaRepository getRepository() {
return userRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserCredentialsRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserCredentialsRepository.java
index 22f1a75e94..c55a2962c9 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserCredentialsRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserCredentialsRepository.java
@@ -15,7 +15,7 @@
*/
package org.thingsboard.server.dao.sql.user;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sql.UserCredentialsEntity;
import java.util.UUID;
@@ -23,7 +23,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 4/22/2017.
*/
-public interface UserCredentialsRepository extends CrudRepository {
+public interface UserCredentialsRepository extends JpaRepository {
UserCredentialsEntity findByUserId(UUID userId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java
index fa9bc3eebb..51f6138cc1 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.user;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.security.Authority;
import org.thingsboard.server.dao.model.sql.UserEntity;
@@ -28,7 +28,7 @@ import java.util.UUID;
/**
* @author Valerii Sosliuk
*/
-public interface UserRepository extends PagingAndSortingRepository {
+public interface UserRepository extends JpaRepository {
UserEntity findByEmail(String email);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java
index 44ca9dd511..bbaf2529a7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.widget;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.widget.WidgetType;
@@ -24,7 +24,6 @@ import org.thingsboard.server.common.data.widget.WidgetTypeDetails;
import org.thingsboard.server.common.data.widget.WidgetTypeInfo;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.model.sql.WidgetTypeDetailsEntity;
-import org.thingsboard.server.dao.model.sql.WidgetTypeEntity;
import org.thingsboard.server.dao.sql.JpaAbstractDao;
import org.thingsboard.server.dao.widget.WidgetTypeDao;
@@ -46,7 +45,7 @@ public class JpaWidgetTypeDao extends JpaAbstractDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return widgetTypeRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java
index 105f01cc5f..6b42561bce 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.dao.sql.widget;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
@@ -47,7 +47,7 @@ public class JpaWidgetsBundleDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected JpaRepository getRepository() {
return widgetsBundleRepository;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java
index 5ae64e6aa9..cc9ab0ac2e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java
@@ -15,8 +15,8 @@
*/
package org.thingsboard.server.dao.sql.widget;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.WidgetTypeDetailsEntity;
import org.thingsboard.server.dao.model.sql.WidgetTypeEntity;
@@ -25,7 +25,7 @@ import org.thingsboard.server.dao.model.sql.WidgetTypeInfoEntity;
import java.util.List;
import java.util.UUID;
-public interface WidgetTypeRepository extends CrudRepository {
+public interface WidgetTypeRepository extends JpaRepository {
@Query("SELECT wt FROM WidgetTypeEntity wt WHERE wt.id = :widgetTypeId")
WidgetTypeEntity findWidgetTypeById(@Param("widgetTypeId") UUID widgetTypeId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java
index 36a02743e3..0de8d0220b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java
@@ -17,8 +17,8 @@ package org.thingsboard.server.dao.sql.widget;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity;
@@ -27,7 +27,7 @@ import java.util.UUID;
/**
* Created by Valerii Sosliuk on 4/23/2017.
*/
-public interface WidgetsBundleRepository extends PagingAndSortingRepository {
+public interface WidgetsBundleRepository extends JpaRepository {
WidgetsBundleEntity findWidgetsBundleByTenantIdAndAlias(UUID tenantId, String alias);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/dictionary/TsKvDictionaryRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/dictionary/TsKvDictionaryRepository.java
index 45f7066ade..46ff911bf6 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/dictionary/TsKvDictionaryRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/dictionary/TsKvDictionaryRepository.java
@@ -15,7 +15,7 @@
*/
package org.thingsboard.server.dao.sqlts.dictionary;
-import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.thingsboard.server.dao.model.sqlts.dictionary.TsKvDictionary;
import org.thingsboard.server.dao.model.sqlts.dictionary.TsKvDictionaryCompositeKey;
import org.thingsboard.server.dao.util.SqlTsOrTsLatestAnyDao;
@@ -23,7 +23,7 @@ import org.thingsboard.server.dao.util.SqlTsOrTsLatestAnyDao;
import java.util.Optional;
@SqlTsOrTsLatestAnyDao
-public interface TsKvDictionaryRepository extends CrudRepository {
+public interface TsKvDictionaryRepository extends JpaRepository {
Optional findByKeyId(int keyId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/latest/TsKvLatestRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/latest/TsKvLatestRepository.java
index 12257f1b88..bf5009b53d 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/latest/TsKvLatestRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/latest/TsKvLatestRepository.java
@@ -15,8 +15,8 @@
*/
package org.thingsboard.server.dao.sqlts.latest;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.dao.model.sqlts.latest.TsKvLatestCompositeKey;
import org.thingsboard.server.dao.model.sqlts.latest.TsKvLatestEntity;
@@ -24,7 +24,7 @@ import org.thingsboard.server.dao.model.sqlts.latest.TsKvLatestEntity;
import java.util.List;
import java.util.UUID;
-public interface TsKvLatestRepository extends CrudRepository {
+public interface TsKvLatestRepository extends JpaRepository {
@Query(value = "SELECT DISTINCT ts_kv_dictionary.key AS strKey FROM ts_kv_latest " +
"INNER JOIN ts_kv_dictionary ON ts_kv_latest.key = ts_kv_dictionary.key_id " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TsKvTimescaleRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TsKvTimescaleRepository.java
index 0dff32b203..075cffcbc7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TsKvTimescaleRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TsKvTimescaleRepository.java
@@ -16,9 +16,9 @@
package org.thingsboard.server.dao.sqlts.timescale;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.dao.model.sqlts.timescale.ts.TimescaleTsKvCompositeKey;
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.UUID;
@TimescaleDBTsOrTsLatestDao
-public interface TsKvTimescaleRepository extends CrudRepository {
+public interface TsKvTimescaleRepository extends JpaRepository {
@Query("SELECT tskv FROM TimescaleTsKvEntity tskv WHERE tskv.entityId = :entityId " +
"AND tskv.key = :entityKey " +
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/ts/TsKvRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/ts/TsKvRepository.java
index 758667fedb..c603d9d92b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/ts/TsKvRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/ts/TsKvRepository.java
@@ -16,9 +16,9 @@
package org.thingsboard.server.dao.sqlts.ts;
import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.scheduling.annotation.Async;
import org.springframework.transaction.annotation.Transactional;
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
-public interface TsKvRepository extends CrudRepository {
+public interface TsKvRepository extends JpaRepository {
@Query("SELECT tskv FROM TsKvEntity tskv WHERE tskv.entityId = :entityId " +
"AND tskv.key = :entityKey AND tskv.ts >= :startTs AND tskv.ts < :endTs")
diff --git a/dao/src/test/java/org/thingsboard/server/dao/AbstractJpaDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/AbstractJpaDaoTest.java
index 7af91b3c85..5f7fc7caa0 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/AbstractJpaDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/AbstractJpaDaoTest.java
@@ -16,10 +16,10 @@
package org.thingsboard.server.dao;
import org.junit.runner.RunWith;
+import org.mockito.Answers;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
-import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
@@ -35,9 +35,9 @@ import org.thingsboard.server.dao.service.DaoSqlTest;
@TestExecutionListeners({
DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class})
-public abstract class AbstractJpaDaoTest extends AbstractTransactionalJUnit4SpringContextTests {
+public abstract class AbstractJpaDaoTest {
- @MockBean
+ @MockBean(answer = Answers.RETURNS_MOCKS)
StatsFactory statsFactory;
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
index e8cf4b3e72..fccbc705b2 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
@@ -21,12 +21,7 @@ import org.junit.runner.RunWith;
@RunWith(ClasspathSuite.class)
@ClassnameFilters({
- "org.thingsboard.server.dao.sql.tenant.*Test",
- "org.thingsboard.server.dao.sql.component.*Test",
- "org.thingsboard.server.dao.sql.customer.*Test",
- "org.thingsboard.server.dao.sql.dashboard.*Test",
- "org.thingsboard.server.dao.sql.query.*Test",
- "org.thingsboard.server.dao.sql.*THIS_MUST_BE_FIXED_Test",
+ "org.thingsboard.server.dao.sql.*Test"
})
public class JpaDaoTestSuite {
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDaoTest.java
index adffcc1bd6..aa99a88ac7 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDaoTest.java
@@ -16,6 +16,7 @@
package org.thingsboard.server.dao.sql.alarm;
import com.google.common.util.concurrent.ListenableFuture;
+import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.alarm.Alarm;
@@ -28,6 +29,8 @@ import org.thingsboard.server.dao.alarm.AlarmDao;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -35,6 +38,7 @@ import static org.junit.Assert.assertNotNull;
/**
* Created by Valerii Sosliuk on 5/21/2017.
*/
+@Slf4j
public class JpaAlarmDaoTest extends AbstractJpaDaoTest {
@Autowired
@@ -42,21 +46,23 @@ public class JpaAlarmDaoTest extends AbstractJpaDaoTest {
@Test
- public void testFindLatestByOriginatorAndType() throws ExecutionException, InterruptedException {
- System.out.println(System.currentTimeMillis());
+ public void testFindLatestByOriginatorAndType() throws ExecutionException, InterruptedException, TimeoutException {
+ log.info("Current system time in millis = {}", System.currentTimeMillis());
UUID tenantId = UUID.fromString("d4b68f40-3e96-11e7-a884-898080180d6b");
UUID originator1Id = UUID.fromString("d4b68f41-3e96-11e7-a884-898080180d6b");
UUID originator2Id = UUID.fromString("d4b68f42-3e96-11e7-a884-898080180d6b");
UUID alarm1Id = UUID.fromString("d4b68f43-3e96-11e7-a884-898080180d6b");
UUID alarm2Id = UUID.fromString("d4b68f44-3e96-11e7-a884-898080180d6b");
UUID alarm3Id = UUID.fromString("d4b68f45-3e96-11e7-a884-898080180d6b");
+ int alarmCountBeforeSave = alarmDao.find(TenantId.fromUUID(tenantId)).size();
saveAlarm(alarm1Id, tenantId, originator1Id, "TEST_ALARM");
saveAlarm(alarm2Id, tenantId, originator1Id, "TEST_ALARM");
saveAlarm(alarm3Id, tenantId, originator2Id, "TEST_ALARM");
- assertEquals(3, alarmDao.find(TenantId.fromUUID(tenantId)).size());
+ int alarmCountAfterSave = alarmDao.find(TenantId.fromUUID(tenantId)).size();
+ assertEquals(3, alarmCountAfterSave - alarmCountBeforeSave);
ListenableFuture future = alarmDao
.findLatestByOriginatorAndType(TenantId.fromUUID(tenantId), new DeviceId(originator1Id), "TEST_ALARM");
- Alarm alarm = future.get();
+ Alarm alarm = future.get(30, TimeUnit.SECONDS);
assertNotNull(alarm);
assertEquals(alarm2Id, alarm.getId().getId());
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/asset/JpaAssetDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/asset/JpaAssetDaoTest.java
index fda1b21335..727f329229 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/asset/JpaAssetDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/asset/JpaAssetDaoTest.java
@@ -17,6 +17,8 @@ package org.thingsboard.server.dao.sql.asset;
import com.datastax.oss.driver.api.core.uuid.Uuids;
import com.google.common.util.concurrent.ListenableFuture;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.EntitySubtype;
@@ -34,9 +36,11 @@ import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
-import static junit.framework.TestCase.assertFalse;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -45,23 +49,39 @@ import static org.junit.Assert.assertTrue;
*/
public class JpaAssetDaoTest extends AbstractJpaDaoTest {
+ UUID tenantId1;
+ UUID tenantId2;
+ UUID customerId1;
+ UUID customerId2;
+ List assets = new ArrayList<>();
@Autowired
private AssetDao assetDao;
- @Test
- public void testFindAssetsByTenantId() {
- UUID tenantId1 = Uuids.timeBased();
- UUID tenantId2 = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
+ @Before
+ public void setUp() {
+ tenantId1 = Uuids.timeBased();
+ tenantId2 = Uuids.timeBased();
+ customerId1 = Uuids.timeBased();
+ customerId2 = Uuids.timeBased();
for (int i = 0; i < 60; i++) {
UUID assetId = Uuids.timeBased();
UUID tenantId = i % 2 == 0 ? tenantId1 : tenantId2;
UUID customerId = i % 2 == 0 ? customerId1 : customerId2;
- saveAsset(assetId, tenantId, customerId, "ASSET_" + i, "TYPE_1");
+ assets.add(saveAsset(assetId, tenantId, customerId, "ASSET_" + i, "TYPE_1"));
}
- assertEquals(60, assetDao.find(TenantId.fromUUID(tenantId1)).size());
+ assertEquals(assets.size(), assetDao.find(TenantId.fromUUID(tenantId1)).size());
+ }
+ @After
+ public void tearDown() {
+ for (Asset asset : assets) {
+ assetDao.removeById(asset.getTenantId(), asset.getUuidId());
+ }
+ assets.clear();
+ }
+
+ @Test
+ public void testFindAssetsByTenantId() {
PageLink pageLink = new PageLink(20, 0, "ASSET_");
PageData assets1 = assetDao.findAssetsByTenantId(tenantId1, pageLink);
assertEquals(20, assets1.getData().size());
@@ -77,18 +97,7 @@ public class JpaAssetDaoTest extends AbstractJpaDaoTest {
@Test
public void testFindAssetsByTenantIdAndCustomerId() {
- UUID tenantId1 = Uuids.timeBased();
- UUID tenantId2 = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
- for (int i = 0; i < 60; i++) {
- UUID assetId = Uuids.timeBased();
- UUID tenantId = i % 2 == 0 ? tenantId1 : tenantId2;
- UUID customerId = i % 2 == 0 ? customerId1 : customerId2;
- saveAsset(assetId, tenantId, customerId, "ASSET_" + i, "TYPE_1");
- }
-
- PageLink pageLink = new PageLink(20, 0, "ASSET_");
+ PageLink pageLink = new PageLink(20, 0, "ASSET_");
PageData assets1 = assetDao.findAssetsByTenantIdAndCustomerId(tenantId1, customerId1, pageLink);
assertEquals(20, assets1.getData().size());
@@ -102,62 +111,46 @@ public class JpaAssetDaoTest extends AbstractJpaDaoTest {
}
@Test
- public void testFindAssetsByTenantIdAndIdsAsync() throws ExecutionException, InterruptedException {
- UUID tenantId = Uuids.timeBased();
- UUID customerId = Uuids.timeBased();
- List searchIds = new ArrayList<>();
- for (int i = 0; i < 30; i++) {
- UUID assetId = Uuids.timeBased();
- saveAsset(assetId, tenantId, customerId, "ASSET_" + i, "TYPE_1");
- if (i % 3 == 0) {
- searchIds.add(assetId);
- }
- }
+ public void testFindAssetsByTenantIdAndIdsAsync() throws ExecutionException, InterruptedException, TimeoutException {
+ List searchIds = getAssetsUuids(tenantId1);
ListenableFuture> assetsFuture = assetDao
- .findAssetsByTenantIdAndIdsAsync(tenantId, searchIds);
- List assets = assetsFuture.get();
+ .findAssetsByTenantIdAndIdsAsync(tenantId1, searchIds);
+ List assets = assetsFuture.get(30, TimeUnit.SECONDS);
assertNotNull(assets);
- assertEquals(10, assets.size());
+ assertEquals(searchIds.size(), assets.size());
}
@Test
- public void testFindAssetsByTenantIdCustomerIdAndIdsAsync() throws ExecutionException, InterruptedException {
- UUID tenantId = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
- List searchIds = new ArrayList<>();
- for (int i = 0; i < 30; i++) {
- UUID assetId = Uuids.timeBased();
- UUID customerId = i%2 == 0 ? customerId1 : customerId2;
- saveAsset(assetId, tenantId, customerId, "ASSET_" + i, "TYPE_1");
- if (i % 3 == 0) {
- searchIds.add(assetId);
- }
- }
+ public void testFindAssetsByTenantIdCustomerIdAndIdsAsync() throws ExecutionException, InterruptedException, TimeoutException {
+ List searchIds = getAssetsUuids(tenantId1);
ListenableFuture> assetsFuture = assetDao
- .findAssetsByTenantIdAndCustomerIdAndIdsAsync(tenantId, customerId1, searchIds);
- List assets = assetsFuture.get();
+ .findAssetsByTenantIdAndCustomerIdAndIdsAsync(tenantId1, customerId1, searchIds);
+ List assets = assetsFuture.get(30, TimeUnit.SECONDS);
assertNotNull(assets);
- assertEquals(5, assets.size());
+ assertEquals(searchIds.size(), assets.size());
+ }
+
+ private List getAssetsUuids(UUID tenantId) {
+ List result = new ArrayList<>();
+ for (Asset asset : assets) {
+ if (asset.getTenantId().getId().equals(tenantId)) {
+ result.add(asset.getUuidId());
+ }
+ }
+ return result;
}
@Test
public void testFindAssetsByTenantIdAndName() {
- UUID assetId1 = Uuids.timeBased();
- UUID assetId2 = Uuids.timeBased();
- UUID tenantId1 = Uuids.timeBased();
- UUID tenantId2 = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
+ UUID assetId = Uuids.timeBased();
String name = "TEST_ASSET";
- saveAsset(assetId1, tenantId1, customerId1, name, "TYPE_1");
- saveAsset(assetId2, tenantId2, customerId2, name, "TYPE_1");
+ assets.add(saveAsset(assetId, tenantId2, customerId2, name, "TYPE_1"));
Optional assetOpt1 = assetDao.findAssetsByTenantIdAndName(tenantId2, name);
assertTrue("Optional expected to be non-empty", assetOpt1.isPresent());
- assertEquals(assetId2, assetOpt1.get().getId().getId());
+ assertEquals(assetId, assetOpt1.get().getId().getId());
Optional assetOpt2 = assetDao.findAssetsByTenantIdAndName(tenantId2, "NON_EXISTENT_NAME");
assertFalse("Optional expected to be empty", assetOpt2.isPresent());
@@ -165,58 +158,61 @@ public class JpaAssetDaoTest extends AbstractJpaDaoTest {
@Test
public void testFindAssetsByTenantIdAndType() {
- // TODO: implement
+ String type = "TYPE_2";
+ assets.add(saveAsset(Uuids.timeBased(), tenantId2, customerId2, "TEST_ASSET", type));
+
+ List foundedAssetsByType = assetDao
+ .findAssetsByTenantIdAndType(tenantId2, type, new PageLink(3)).getData();
+ compareFoundedAssetByType(foundedAssetsByType, type);
}
@Test
public void testFindAssetsByTenantIdAndCustomerIdAndType() {
- // TODO: implement
+ String type = "TYPE_2";
+ assets.add(saveAsset(Uuids.timeBased(), tenantId2, customerId2, "TEST_ASSET", type));
+
+ List foundedAssetsByType = assetDao
+ .findAssetsByTenantIdAndCustomerIdAndType(tenantId2, customerId2, type, new PageLink(3)).getData();
+ compareFoundedAssetByType(foundedAssetsByType, type);
+ }
+
+ private void compareFoundedAssetByType(List foundedAssetsByType, String type) {
+ assertNotNull(foundedAssetsByType);
+ assertEquals(1, foundedAssetsByType.size());
+ assertEquals(type, foundedAssetsByType.get(0).getType());
}
@Test
- public void testFindTenantAssetTypesAsync() throws ExecutionException, InterruptedException {
- UUID assetId1 = Uuids.timeBased();
- UUID assetId2 = Uuids.timeBased();
- UUID tenantId1 = Uuids.timeBased();
- UUID tenantId2 = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
- saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_1", "TYPE_1");
- saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_2", "TYPE_1");
- saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_3", "TYPE_2");
- saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_4", "TYPE_3");
- saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_5", "TYPE_3");
- saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_6", "TYPE_3");
-
- saveAsset(Uuids.timeBased(), tenantId2, customerId2, "TEST_ASSET_7", "TYPE_4");
- saveAsset(Uuids.timeBased(), tenantId2, customerId2, "TEST_ASSET_8", "TYPE_1");
- saveAsset(Uuids.timeBased(), tenantId2, customerId2, "TEST_ASSET_9", "TYPE_1");
-
- List tenant1Types = assetDao.findTenantAssetTypesAsync(tenantId1).get();
+ public void testFindTenantAssetTypesAsync() throws ExecutionException, InterruptedException, TimeoutException {
+ // Assets with type "TYPE_1" added in setUp method
+ assets.add(saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_3", "TYPE_2"));
+ assets.add(saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_4", "TYPE_3"));
+ assets.add(saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_5", "TYPE_3"));
+ assets.add(saveAsset(Uuids.timeBased(), tenantId1, customerId1, "TEST_ASSET_6", "TYPE_3"));
+
+ assets.add(saveAsset(Uuids.timeBased(), tenantId2, customerId2, "TEST_ASSET_7", "TYPE_4"));
+
+ List tenant1Types = assetDao.findTenantAssetTypesAsync(tenantId1).get(30, TimeUnit.SECONDS);
assertNotNull(tenant1Types);
- List tenant2Types = assetDao.findTenantAssetTypesAsync(tenantId2).get();
+ List tenant2Types = assetDao.findTenantAssetTypesAsync(tenantId2).get(30, TimeUnit.SECONDS);
assertNotNull(tenant2Types);
- assertEquals(3, tenant1Types.size());
- assertTrue(tenant1Types.stream().anyMatch(t -> t.getType().equals("TYPE_1")));
- assertTrue(tenant1Types.stream().anyMatch(t -> t.getType().equals("TYPE_2")));
- assertTrue(tenant1Types.stream().anyMatch(t -> t.getType().equals("TYPE_3")));
- assertFalse(tenant1Types.stream().anyMatch(t -> t.getType().equals("TYPE_4")));
-
- assertEquals(2, tenant2Types.size());
- assertTrue(tenant2Types.stream().anyMatch(t -> t.getType().equals("TYPE_1")));
- assertTrue(tenant2Types.stream().anyMatch(t -> t.getType().equals("TYPE_4")));
- assertFalse(tenant2Types.stream().anyMatch(t -> t.getType().equals("TYPE_2")));
- assertFalse(tenant2Types.stream().anyMatch(t -> t.getType().equals("TYPE_3")));
+ List types = List.of("TYPE_1", "TYPE_2", "TYPE_3", "TYPE_4");
+ assertEquals(getDifferentTypesCount(types, tenant1Types), tenant1Types.size());
+ assertEquals(getDifferentTypesCount(types, tenant2Types), tenant2Types.size());
+ }
+
+ private long getDifferentTypesCount(List types, List foundedAssetsTypes) {
+ return foundedAssetsTypes.stream().filter(type -> types.contains(type.getType())).count();
}
- private void saveAsset(UUID id, UUID tenantId, UUID customerId, String name, String type) {
+ private Asset saveAsset(UUID id, UUID tenantId, UUID customerId, String name, String type) {
Asset asset = new Asset();
asset.setId(new AssetId(id));
asset.setTenantId(TenantId.fromUUID(tenantId));
asset.setCustomerId(new CustomerId(customerId));
asset.setName(name);
asset.setType(type);
- assetDao.save(TenantId.fromUUID(tenantId), asset);
+ return assetDao.save(TenantId.fromUUID(tenantId), asset);
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDaoTest.java
index c168a1e3db..510000b86e 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/audit/JpaAuditLogDaoTest.java
@@ -15,7 +15,144 @@
*/
package org.thingsboard.server.dao.sql.audit;
+import com.datastax.oss.driver.api.core.uuid.Uuids;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.thingsboard.server.common.data.audit.ActionType;
+import org.thingsboard.server.common.data.audit.AuditLog;
+import org.thingsboard.server.common.data.id.CustomerId;
+import org.thingsboard.server.common.data.id.DeviceId;
+import org.thingsboard.server.common.data.id.EntityId;
+import org.thingsboard.server.common.data.id.TenantId;
+import org.thingsboard.server.common.data.id.UserId;
+import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.AbstractJpaDaoTest;
+import org.thingsboard.server.dao.audit.AuditLogDao;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
public class JpaAuditLogDaoTest extends AbstractJpaDaoTest {
+ List auditLogList = new ArrayList<>();
+ UUID tenantId;
+ CustomerId customerId1;
+ CustomerId customerId2;
+ UserId userId1;
+ UserId userId2;
+ EntityId entityId1;
+ EntityId entityId2;
+ AuditLog neededFoundedAuditLog;
+ @Autowired
+ private AuditLogDao auditLogDao;
+
+ @Before
+ public void setUp() {
+ setUpIds();
+ for (int i = 0; i < 60; i++) {
+ ActionType actionType = i % 2 == 0 ? ActionType.ADDED : ActionType.DELETED;
+ CustomerId customerId = i % 4 == 0 ? customerId1 : customerId2;
+ UserId userId = i % 6 == 0 ? userId1 : userId2;
+ EntityId entityId = i % 10 == 0 ? entityId1 : entityId2;
+ auditLogList.add(createAuditLog(i, actionType, customerId, userId, entityId));
+ }
+ assertEquals(auditLogList.size(), auditLogDao.find(TenantId.fromUUID(tenantId)).size());
+ neededFoundedAuditLog = auditLogList.get(0);
+ assertNotNull(neededFoundedAuditLog);
+ }
+
+ private void setUpIds() {
+ tenantId = Uuids.timeBased();
+ customerId1 = new CustomerId(Uuids.timeBased());
+ customerId2 = new CustomerId(Uuids.timeBased());
+ userId1 = new UserId(Uuids.timeBased());
+ userId2 = new UserId(Uuids.timeBased());
+ entityId1 = new DeviceId(Uuids.timeBased());
+ entityId2 = new DeviceId(Uuids.timeBased());
+ }
+
+ @After
+ public void tearDown() {
+ for (AuditLog auditLog : auditLogList) {
+ auditLogDao.removeById(TenantId.fromUUID(tenantId), auditLog.getUuidId());
+ }
+ auditLogList.clear();
+ }
+
+ @Test
+ public void testFindById() {
+ AuditLog foundedAuditLogById = auditLogDao.findById(TenantId.fromUUID(tenantId), neededFoundedAuditLog.getUuidId());
+ checkFoundedAuditLog(foundedAuditLogById);
+ }
+
+ @Test
+ public void testFindByIdAsync() throws ExecutionException, InterruptedException, TimeoutException {
+ AuditLog foundedAuditLogById = auditLogDao
+ .findByIdAsync(TenantId.fromUUID(tenantId), neededFoundedAuditLog.getUuidId()).get(30, TimeUnit.SECONDS);
+ checkFoundedAuditLog(foundedAuditLogById);
+ }
+
+ private void checkFoundedAuditLog(AuditLog foundedAuditLogById) {
+ assertNotNull(foundedAuditLogById);
+ assertEquals(neededFoundedAuditLog, foundedAuditLogById);
+ }
+
+ @Test
+ public void testFindAuditLogsByTenantId() {
+ List foundedAuditLogs = auditLogDao.findAuditLogsByTenantId(tenantId,
+ List.of(ActionType.ADDED),
+ new TimePageLink(40)).getData();
+ checkFoundedAuditLogsList(foundedAuditLogs, 30);
+ }
+
+ @Test
+ public void testFindAuditLogsByTenantIdAndCustomerId() {
+ List foundedAuditLogs = auditLogDao.findAuditLogsByTenantIdAndCustomerId(tenantId,
+ customerId1,
+ List.of(ActionType.ADDED),
+ new TimePageLink(20)).getData();
+ checkFoundedAuditLogsList(foundedAuditLogs, 15);
+ }
+
+ @Test
+ public void testFindAuditLogsByTenantIdAndUserId() {
+ List foundedAuditLogs = auditLogDao.findAuditLogsByTenantIdAndUserId(tenantId,
+ userId1,
+ List.of(ActionType.ADDED),
+ new TimePageLink(20)).getData();
+ checkFoundedAuditLogsList(foundedAuditLogs, 10);
+ }
+
+ @Test
+ public void testFindAuditLogsByTenantIdAndEntityId() {
+ List foundedAuditLogs = auditLogDao.findAuditLogsByTenantIdAndEntityId(tenantId,
+ entityId1,
+ List.of(ActionType.ADDED),
+ new TimePageLink(10)).getData();
+ checkFoundedAuditLogsList(foundedAuditLogs, 6);
+ }
+
+ private void checkFoundedAuditLogsList(List foundedAuditLogs, int neededSizeForFoundedList) {
+ assertNotNull(foundedAuditLogs);
+ assertEquals(neededSizeForFoundedList, foundedAuditLogs.size());
+ }
+
+ private AuditLog createAuditLog(int number, ActionType actionType, CustomerId customerId, UserId userId, EntityId entityId) {
+ AuditLog auditLog = new AuditLog();
+ auditLog.setTenantId(TenantId.fromUUID(tenantId));
+ auditLog.setCustomerId(customerId);
+ auditLog.setUserId(userId);
+ auditLog.setEntityId(entityId);
+ auditLog.setUserName("AUDIT_LOG_" + number);
+ auditLog.setActionType(actionType);
+ return auditLogDao.save(TenantId.fromUUID(tenantId), auditLog);
+ }
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDaoTest.java
index 8e7225ec7f..85b3c89622 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDaoTest.java
@@ -16,6 +16,8 @@
package org.thingsboard.server.dao.sql.component;
import com.datastax.oss.driver.api.core.uuid.Uuids;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.id.ComponentDescriptorId;
@@ -37,34 +39,43 @@ import static org.junit.Assert.assertEquals;
*/
public class JpaBaseComponentDescriptorDaoTest extends AbstractJpaDaoTest {
+ final List componentTypes = List.of(ComponentType.FILTER, ComponentType.ACTION);
@Autowired
private ComponentDescriptorDao componentDescriptorDao;
- @Test
- public void findByType() {
+ @Before
+ public void setUp() {
for (int i = 0; i < 20; i++) {
createComponentDescriptor(ComponentType.FILTER, ComponentScope.SYSTEM, i);
createComponentDescriptor(ComponentType.ACTION, ComponentScope.TENANT, i + 20);
}
+ }
+ @After
+ public void tearDown() {
+ for (ComponentType componentType : componentTypes) {
+ List byTypeAndPageLink = componentDescriptorDao.findByTypeAndPageLink(AbstractServiceTest.SYSTEM_TENANT_ID,
+ componentType, new PageLink(20)).getData();
+ for (ComponentDescriptor descriptor : byTypeAndPageLink) {
+ componentDescriptorDao.deleteById(AbstractServiceTest.SYSTEM_TENANT_ID, descriptor.getId());
+ }
+ }
+ }
+
+ @Test
+ public void findByType() {
PageLink pageLink = new PageLink(15, 0, "COMPONENT_");
PageData components1 = componentDescriptorDao.findByTypeAndPageLink(AbstractServiceTest.SYSTEM_TENANT_ID, ComponentType.FILTER, pageLink);
assertEquals(15, components1.getData().size());
pageLink = pageLink.nextPageLink();
- PageData components2 = componentDescriptorDao.findByTypeAndPageLink(AbstractServiceTest.SYSTEM_TENANT_ID,ComponentType.FILTER, pageLink);
+ PageData components2 = componentDescriptorDao.findByTypeAndPageLink(AbstractServiceTest.SYSTEM_TENANT_ID, ComponentType.FILTER, pageLink);
assertEquals(5, components2.getData().size());
}
@Test
- public void findByTypeAndSocpe() {
- for (int i = 0; i < 20; i++) {
- createComponentDescriptor(ComponentType.ENRICHMENT, ComponentScope.SYSTEM, i);
- createComponentDescriptor(ComponentType.ACTION, ComponentScope.TENANT, i + 20);
- createComponentDescriptor(ComponentType.FILTER, ComponentScope.SYSTEM, i + 40);
- }
-
- PageLink pageLink = new PageLink(15, 0, "COMPONENT_");
+ public void findByTypeAndScope() {
+ PageLink pageLink = new PageLink(15, 0, "COMPONENT_");
PageData components1 = componentDescriptorDao.findByScopeAndTypeAndPageLink(AbstractServiceTest.SYSTEM_TENANT_ID,
ComponentScope.SYSTEM, ComponentType.FILTER, pageLink);
assertEquals(15, components1.getData().size());
@@ -81,7 +92,7 @@ public class JpaBaseComponentDescriptorDaoTest extends AbstractJpaDaoTest {
component.setType(type);
component.setScope(scope);
component.setName("COMPONENT_" + index);
- componentDescriptorDao.save(AbstractServiceTest.SYSTEM_TENANT_ID,component);
+ componentDescriptorDao.save(AbstractServiceTest.SYSTEM_TENANT_ID, component);
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDaoTest.java
index 206f734d6b..776a7d6135 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDaoTest.java
@@ -15,14 +15,18 @@
*/
package org.thingsboard.server.dao.sql.device;
-import com.github.springtestdbunit.annotation.DatabaseSetup;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.thingsboard.server.common.data.id.DeviceId;
+import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.security.DeviceCredentials;
+import org.thingsboard.server.common.data.security.DeviceCredentialsType;
import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.device.DeviceCredentialsDao;
-import org.thingsboard.server.dao.service.AbstractServiceTest;
+import java.util.List;
import java.util.UUID;
import static org.junit.Assert.assertEquals;
@@ -37,22 +41,44 @@ public class JpaDeviceCredentialsDaoTest extends AbstractJpaDaoTest {
@Autowired
DeviceCredentialsDao deviceCredentialsDao;
+ List deviceCredentialsList;
+ DeviceCredentials neededDeviceCredentials;
+
+ @Before
+ public void setUp() {
+ deviceCredentialsList = List.of(createAndSaveDeviceCredentials(), createAndSaveDeviceCredentials());
+ neededDeviceCredentials = deviceCredentialsList.get(0);
+ assertNotNull(neededDeviceCredentials);
+ }
+
+ DeviceCredentials createAndSaveDeviceCredentials() {
+ DeviceCredentials deviceCredentials = new DeviceCredentials();
+ deviceCredentials.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN);
+ deviceCredentials.setCredentialsId(UUID.randomUUID().toString());
+ deviceCredentials.setCredentialsValue("CHECK123");
+ deviceCredentials.setDeviceId(new DeviceId(UUID.randomUUID()));
+ return deviceCredentialsDao.save(TenantId.SYS_TENANT_ID, deviceCredentials);
+ }
+
+ @After
+ public void deleteDeviceCredentials() {
+ for (DeviceCredentials credentials : deviceCredentialsList) {
+ deviceCredentialsDao.removeById(TenantId.SYS_TENANT_ID, credentials.getUuidId());
+ }
+ }
+
@Test
- @DatabaseSetup("classpath:dbunit/device_credentials.xml")
public void testFindByDeviceId() {
- UUID deviceId = UUID.fromString("958e3a30-3215-11e7-93ae-92361f002671");
- DeviceCredentials deviceCredentials = deviceCredentialsDao.findByDeviceId(SYSTEM_TENANT_ID, deviceId);
- assertNotNull(deviceCredentials);
- assertEquals("958e3314-3215-11e7-93ae-92361f002671", deviceCredentials.getId().getId().toString());
- assertEquals("ID_1", deviceCredentials.getCredentialsId());
+ DeviceCredentials foundedDeviceCredentials = deviceCredentialsDao.findByDeviceId(SYSTEM_TENANT_ID, neededDeviceCredentials.getDeviceId().getId());
+ assertNotNull(foundedDeviceCredentials);
+ assertEquals(neededDeviceCredentials.getId(), foundedDeviceCredentials.getId());
+ assertEquals(neededDeviceCredentials.getCredentialsId(), foundedDeviceCredentials.getCredentialsId());
}
@Test
- @DatabaseSetup("classpath:dbunit/device_credentials.xml")
public void findByCredentialsId() {
- String credentialsId = "ID_2";
- DeviceCredentials deviceCredentials = deviceCredentialsDao.findByCredentialsId(SYSTEM_TENANT_ID, credentialsId);
- assertNotNull(deviceCredentials);
- assertEquals("958e3c74-3215-11e7-93ae-92361f002671", deviceCredentials.getId().getId().toString());
+ DeviceCredentials foundedDeviceCredentials = deviceCredentialsDao.findByCredentialsId(SYSTEM_TENANT_ID, neededDeviceCredentials.getCredentialsId());
+ assertNotNull(foundedDeviceCredentials);
+ assertEquals(neededDeviceCredentials.getId(), foundedDeviceCredentials.getId());
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java
index 7ce62c26c9..1c21e5bc33 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java
@@ -20,10 +20,14 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.common.util.ThingsBoardThreadFactory;
import org.thingsboard.server.common.data.Device;
+import org.thingsboard.server.common.data.DeviceProfile;
+import org.thingsboard.server.common.data.DeviceProfileType;
+import org.thingsboard.server.common.data.DeviceTransportType;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.TenantId;
@@ -31,12 +35,15 @@ import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.device.DeviceDao;
+import org.thingsboard.server.dao.device.DeviceProfileDao;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -46,13 +53,49 @@ import static org.junit.Assert.assertNotNull;
*/
public class JpaDeviceDaoTest extends AbstractJpaDaoTest {
+ public static final int COUNT_DEVICES = 40;
+ public static final String PREFIX_FOR_DEVICE_NAME = "SEARCH_TEXT_";
+ List deviceIds;
+ UUID tenantId1;
+ UUID tenantId2;
+ UUID customerId1;
+ UUID customerId2;
@Autowired
private DeviceDao deviceDao;
+ @Autowired
+ private DeviceProfileDao deviceProfileDao;
+
+ private DeviceProfile savedDeviceProfile;
+
ListeningExecutorService executor;
+ @Before
+ public void setUp() {
+ createDeviceProfile();
+
+ tenantId1 = Uuids.timeBased();
+ customerId1 = Uuids.timeBased();
+ tenantId2 = Uuids.timeBased();
+ customerId2 = Uuids.timeBased();
+
+ deviceIds = createDevices(tenantId1, tenantId2, customerId1, customerId2, COUNT_DEVICES);
+ }
+
+ private void createDeviceProfile() {
+ DeviceProfile deviceProfile = new DeviceProfile();
+ deviceProfile.setName("TEST");
+ deviceProfile.setTenantId(TenantId.SYS_TENANT_ID);
+ deviceProfile.setType(DeviceProfileType.DEFAULT);
+ deviceProfile.setTransportType(DeviceTransportType.DEFAULT);
+ deviceProfile.setDescription("Test");
+ savedDeviceProfile = deviceProfileDao.save(TenantId.SYS_TENANT_ID, deviceProfile);
+ }
+
@After
public void tearDown() throws Exception {
+ deviceDao.removeAllByIds(deviceIds);
+ deviceProfileDao.removeById(TenantId.SYS_TENANT_ID, savedDeviceProfile.getUuidId());
if (executor != null) {
executor.shutdownNow();
}
@@ -60,13 +103,7 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest {
@Test
public void testFindDevicesByTenantId() {
- UUID tenantId1 = Uuids.timeBased();
- UUID tenantId2 = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
- createDevices(tenantId1, tenantId2, customerId1, customerId2, 40);
-
- PageLink pageLink = new PageLink(15, 0, "SEARCH_TEXT");
+ PageLink pageLink = new PageLink(15, 0, PREFIX_FOR_DEVICE_NAME);
PageData devices1 = deviceDao.findDevicesByTenantId(tenantId1, pageLink);
assertEquals(15, devices1.getData().size());
@@ -77,11 +114,12 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest {
}
@Test
- public void testFindAsync() throws ExecutionException, InterruptedException {
+ public void testFindAsync() throws ExecutionException, InterruptedException, TimeoutException {
UUID tenantId = Uuids.timeBased();
UUID customerId = Uuids.timeBased();
- Device device = getDevice(tenantId, customerId);
- deviceDao.save(TenantId.fromUUID(tenantId), device);
+ // send to method getDevice() number = 40, because make random name is bad and name "SEARCH_TEXT_40" don't used
+ Device device = getDevice(tenantId, customerId, 40);
+ deviceIds.add(deviceDao.save(TenantId.fromUUID(tenantId), device).getUuidId());
UUID uuid = device.getId().getId();
Device entity = deviceDao.findById(TenantId.fromUUID(tenantId), uuid);
@@ -90,73 +128,44 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest {
executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10, ThingsBoardThreadFactory.forName(getClass().getSimpleName() + "-test-scope")));
ListenableFuture future = executor.submit(() -> deviceDao.findById(TenantId.fromUUID(tenantId), uuid));
- Device asyncDevice = future.get();
+ Device asyncDevice = future.get(30, TimeUnit.SECONDS);
assertNotNull("Async device expected to be not null", asyncDevice);
}
@Test
- public void testFindDevicesByTenantIdAndIdsAsync() throws ExecutionException, InterruptedException {
- UUID tenantId1 = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID tenantId2 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
-
- List deviceIds = new ArrayList<>();
-
- for(int i = 0; i < 5; i++) {
- UUID deviceId1 = Uuids.timeBased();
- UUID deviceId2 = Uuids.timeBased();
- deviceDao.save(TenantId.fromUUID(tenantId1), getDevice(tenantId1, customerId1, deviceId1));
- deviceDao.save(TenantId.fromUUID(tenantId2), getDevice(tenantId2, customerId2, deviceId2));
- deviceIds.add(deviceId1);
- deviceIds.add(deviceId2);
- }
-
+ public void testFindDevicesByTenantIdAndIdsAsync() throws ExecutionException, InterruptedException, TimeoutException {
ListenableFuture> devicesFuture = deviceDao.findDevicesByTenantIdAndIdsAsync(tenantId1, deviceIds);
- List devices = devicesFuture.get();
- assertEquals(5, devices.size());
+ List devices = devicesFuture.get(30, TimeUnit.SECONDS);
+ assertEquals(20, devices.size());
}
@Test
- public void testFindDevicesByTenantIdAndCustomerIdAndIdsAsync() throws ExecutionException, InterruptedException {
- UUID tenantId1 = Uuids.timeBased();
- UUID customerId1 = Uuids.timeBased();
- UUID tenantId2 = Uuids.timeBased();
- UUID customerId2 = Uuids.timeBased();
-
- List deviceIds = new ArrayList<>();
-
- for(int i = 0; i < 20; i++) {
- UUID deviceId1 = Uuids.timeBased();
- UUID deviceId2 = Uuids.timeBased();
- deviceDao.save(TenantId.fromUUID(tenantId1), getDevice(tenantId1, customerId1, deviceId1));
- deviceDao.save(TenantId.fromUUID(tenantId2), getDevice(tenantId2, customerId2, deviceId2));
- deviceIds.add(deviceId1);
- deviceIds.add(deviceId2);
- }
-
+ public void testFindDevicesByTenantIdAndCustomerIdAndIdsAsync() throws ExecutionException, InterruptedException, TimeoutException {
ListenableFuture> devicesFuture = deviceDao.findDevicesByTenantIdCustomerIdAndIdsAsync(tenantId1, customerId1, deviceIds);
- List devices = devicesFuture.get();
+ List devices = devicesFuture.get(30, TimeUnit.SECONDS);
assertEquals(20, devices.size());
}
- private void createDevices(UUID tenantId1, UUID tenantId2, UUID customerId1, UUID customerId2, int count) {
+ private List createDevices(UUID tenantId1, UUID tenantId2, UUID customerId1, UUID customerId2, int count) {
+ List savedDevicesUUID = new ArrayList<>();
for (int i = 0; i < count / 2; i++) {
- deviceDao.save(TenantId.fromUUID(tenantId1), getDevice(tenantId1, customerId1));
- deviceDao.save(TenantId.fromUUID(tenantId2), getDevice(tenantId2, customerId2));
+ savedDevicesUUID.add(deviceDao.save(TenantId.fromUUID(tenantId1), getDevice(tenantId1, customerId1, i)).getUuidId());
+ savedDevicesUUID.add(deviceDao.save(TenantId.fromUUID(tenantId2), getDevice(tenantId2, customerId2, i + count / 2)).getUuidId());
}
+ return savedDevicesUUID;
}
- private Device getDevice(UUID tenantId, UUID customerID) {
- return getDevice(tenantId, customerID, Uuids.timeBased());
+ private Device getDevice(UUID tenantId, UUID customerID, int number) {
+ return getDevice(tenantId, customerID, Uuids.timeBased(), number);
}
- private Device getDevice(UUID tenantId, UUID customerID, UUID deviceId) {
+ private Device getDevice(UUID tenantId, UUID customerID, UUID deviceId, int number) {
Device device = new Device();
device.setId(new DeviceId(deviceId));
device.setTenantId(TenantId.fromUUID(tenantId));
device.setCustomerId(new CustomerId(customerID));
- device.setName("SEARCH_TEXT");
+ device.setName(PREFIX_FOR_DEVICE_NAME + number);
+ device.setDeviceProfileId(savedDeviceProfile.getId());
return device;
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java
index 07f0a52338..eb5f004714 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java
@@ -18,10 +18,11 @@ package org.thingsboard.server.dao.sql.event;
import com.datastax.oss.driver.api.core.uuid.Uuids;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.springtestdbunit.annotation.DatabaseSetup;
import lombok.extern.slf4j.Slf4j;
+import org.junit.After;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.thingsboard.server.common.data.DataConstants;
import org.thingsboard.server.common.data.Event;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EntityId;
@@ -31,7 +32,6 @@ import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.event.EventDao;
-import org.thingsboard.server.dao.service.AbstractServiceTest;
import java.io.IOException;
import java.util.List;
@@ -52,30 +52,33 @@ import static org.thingsboard.server.common.data.DataConstants.STATS;
@Slf4j
public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
- public static final long HOUR_MILLISECONDS = (long) 3.6e+6;
@Autowired
private EventDao eventDao;
+ UUID tenantId = Uuids.timeBased();
+
+ @After
+ public void deleteEvents() {
+ List events = eventDao.find(TenantId.fromUUID(tenantId));
+ for (Event event : events) {
+ eventDao.removeById(TenantId.fromUUID(tenantId), event.getUuidId());
+ }
+ }
@Test
- @DatabaseSetup("classpath:dbunit/event.xml")
public void findEvent() {
- UUID tenantId = UUID.fromString("be41c7a0-31f5-11e7-9cfd-2786e6aa2046");
- UUID entityId = UUID.fromString("be41c7a1-31f5-11e7-9cfd-2786e6aa2046");
- String eventType = STATS;
- String eventUid = "be41c7a3-31f5-11e7-9cfd-2786e6aa2046";
- Event event = eventDao.findEvent(tenantId, new DeviceId(entityId), eventType, eventUid);
- eventDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).stream().forEach(System.out::println);
- assertNotNull("Event expected to be not null", event);
- assertEquals("be41c7a2-31f5-11e7-9cfd-2786e6aa2046", event.getId().getId().toString());
+ UUID entityId = Uuids.timeBased();
+ Event savedEvent = eventDao.save(TenantId.fromUUID(tenantId), getEvent(entityId, tenantId, entityId));
+ Event foundEvent = eventDao.findEvent(tenantId, new DeviceId(entityId), DataConstants.STATS, savedEvent.getUid());
+ assertNotNull("Event expected to be not null", foundEvent);
+ assertEquals(savedEvent.getId(), foundEvent.getId());
}
@Test
public void findEventsByEntityIdAndPageLink() throws Exception {
- UUID tenantId = Uuids.timeBased();
UUID entityId1 = Uuids.timeBased();
UUID entityId2 = Uuids.timeBased();
long startTime = System.currentTimeMillis();
- long endTime = createEventsTwoEntities(tenantId, entityId1, entityId2, startTime, 20);
+ long endTime = createEventsTwoEntities(tenantId, entityId1, entityId2, 20);
TimePageLink pageLink1 = new TimePageLink(30);
PageData events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), pageLink1);
@@ -105,11 +108,10 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
@Test
public void findEventsByEntityIdAndEventTypeAndPageLink() throws Exception {
- UUID tenantId = Uuids.timeBased();
UUID entityId1 = Uuids.timeBased();
UUID entityId2 = Uuids.timeBased();
long startTime = System.currentTimeMillis();
- long endTime = createEventsTwoEntitiesTwoTypes(tenantId, entityId1, entityId2, startTime, 20);
+ long endTime = createEventsTwoEntitiesTwoTypes(tenantId, entityId1, entityId2, 20);
TimePageLink pageLink1 = new TimePageLink(30);
PageData events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink1);
@@ -129,10 +131,10 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
pageLink4 = pageLink4.nextPageLink();
PageData events5 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink4);
- assertEquals(2, events5.getData().size());
+ assertEquals(1, events5.getData().size());
}
- private long createEventsTwoEntitiesTwoTypes(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) throws Exception {
+ private long createEventsTwoEntitiesTwoTypes(UUID tenantId, UUID entityId1, UUID entityId2, int count) throws Exception {
for (int i = 0; i < count / 2; i++) {
String type = i % 2 == 0 ? STATS : ALARM;
UUID eventId1 = Uuids.timeBased();
@@ -145,7 +147,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
return System.currentTimeMillis();
}
- private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) throws Exception {
+ private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, int count) throws Exception {
for (int i = 0; i < count / 2; i++) {
UUID eventId1 = Uuids.timeBased();
Event event1 = getEvent(eventId1, tenantId, entityId1);
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDaoTest.java
index 6105a6c16c..a93352176d 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserCredentialsDaoTest.java
@@ -15,13 +15,17 @@
*/
package org.thingsboard.server.dao.sql.user;
-import com.github.springtestdbunit.annotation.DatabaseSetup;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.thingsboard.server.common.data.id.TenantId;
+import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.security.UserCredentials;
import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.user.UserCredentialsDao;
+import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -34,41 +38,66 @@ import static org.thingsboard.server.dao.service.AbstractServiceTest.SYSTEM_TENA
*/
public class JpaUserCredentialsDaoTest extends AbstractJpaDaoTest {
+ public static final String ACTIVATE_TOKEN = "ACTIVATE_TOKEN_0";
+ public static final String RESET_TOKEN = "RESET_TOKEN_0";
+ public static final int COUNT_USER_CREDENTIALS = 2;
+ List userCredentialsList;
+ UserCredentials neededUserCredentials;
+
@Autowired
private UserCredentialsDao userCredentialsDao;
+ @Before
+ public void setUp() {
+ userCredentialsList = new ArrayList<>();
+ for (int i=0; i userCredentials = userCredentialsDao.find(SYSTEM_TENANT_ID);
- assertEquals(2, userCredentials.size());
+ assertEquals(COUNT_USER_CREDENTIALS + 1, userCredentials.size());
}
@Test
- @DatabaseSetup("classpath:dbunit/user_credentials.xml")
public void testFindByUserId() {
- UserCredentials userCredentials = userCredentialsDao.findByUserId(SYSTEM_TENANT_ID, UUID.fromString("787827e6-27d7-11e7-93ae-92361f002671"));
- assertNotNull(userCredentials);
- assertEquals("4b9e010c-27d5-11e7-93ae-92361f002671", userCredentials.getId().toString());
- assertEquals(true, userCredentials.isEnabled());
- assertEquals("password", userCredentials.getPassword());
- assertEquals("ACTIVATE_TOKEN_2", userCredentials.getActivateToken());
- assertEquals("RESET_TOKEN_2", userCredentials.getResetToken());
+ UserCredentials foundedUserCredentials = userCredentialsDao.findByUserId(SYSTEM_TENANT_ID, neededUserCredentials.getUserId().getId());
+ assertNotNull(foundedUserCredentials);
+ assertEquals(neededUserCredentials, foundedUserCredentials);
}
@Test
- @DatabaseSetup("classpath:dbunit/user_credentials.xml")
public void testFindByActivateToken() {
- UserCredentials userCredentials = userCredentialsDao.findByActivateToken(SYSTEM_TENANT_ID, "ACTIVATE_TOKEN_1");
- assertNotNull(userCredentials);
- assertEquals("3ed10af0-27d5-11e7-93ae-92361f002671", userCredentials.getId().toString());
+ UserCredentials foundedUserCredentials = userCredentialsDao.findByActivateToken(SYSTEM_TENANT_ID, ACTIVATE_TOKEN);
+ assertNotNull(foundedUserCredentials);
+ assertEquals(neededUserCredentials.getId(), foundedUserCredentials.getId());
}
@Test
- @DatabaseSetup("classpath:dbunit/user_credentials.xml")
public void testFindByResetToken() {
- UserCredentials userCredentials = userCredentialsDao.findByResetToken(SYSTEM_TENANT_ID, "RESET_TOKEN_2");
- assertNotNull(userCredentials);
- assertEquals("4b9e010c-27d5-11e7-93ae-92361f002671", userCredentials.getId().toString());
+ UserCredentials foundedUserCredentials = userCredentialsDao.findByResetToken(SYSTEM_TENANT_ID, RESET_TOKEN);
+ assertNotNull(foundedUserCredentials);
+ assertEquals(neededUserCredentials.getId(), foundedUserCredentials.getId());
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java
index ac3c1a579a..880087f101 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java
@@ -16,9 +16,11 @@
package org.thingsboard.server.dao.sql.user;
import com.datastax.oss.driver.api.core.uuid.Uuids;
+import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.springtestdbunit.annotation.DatabaseSetup;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.User;
@@ -32,7 +34,6 @@ import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.service.AbstractServiceTest;
import org.thingsboard.server.dao.user.UserDao;
-import java.io.IOException;
import java.util.List;
import java.util.UUID;
@@ -45,35 +46,54 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
*/
public class JpaUserDaoTest extends AbstractJpaDaoTest {
+ // it comes from the DefaultSystemDataLoaderService super class
+ final int COUNT_CREATED_USER = 1;
+ final int COUNT_SYSADMIN_USER = 90;
+ UUID tenantId;
+ UUID customerId;
@Autowired
private UserDao userDao;
+ @Before
+ public void setUp() {
+ tenantId = Uuids.timeBased();
+ customerId = Uuids.timeBased();
+ create30TenantAdminsAnd60CustomerUsers(tenantId, customerId);
+ }
+
+ @After
+ public void tearDown() {
+ delete30TenantAdminsAnd60CustomerUsers(tenantId, customerId);
+ }
+
@Test
- @DatabaseSetup("classpath:dbunit/user.xml")
public void testFindAll() {
List users = userDao.find(AbstractServiceTest.SYSTEM_TENANT_ID);
- assertEquals(users.size(), 5);
+ assertEquals(users.size(), COUNT_CREATED_USER + COUNT_SYSADMIN_USER);
}
@Test
- @DatabaseSetup("classpath:dbunit/user.xml")
- public void testFindByEmail() {
- User user = userDao.findByEmail(AbstractServiceTest.SYSTEM_TENANT_ID,"sysadm@thingsboard.org");
- assertNotNull("User is expected to be not null", user);
- assertEquals("9cb58ba0-27c1-11e7-93ae-92361f002671", user.getId().toString());
- assertEquals("c97ea14e-27c1-11e7-93ae-92361f002671", user.getTenantId().toString());
- assertEquals("cdf9c79e-27c1-11e7-93ae-92361f002671", user.getCustomerId().toString());
- assertEquals(Authority.SYS_ADMIN, user.getAuthority());
- assertEquals("John", user.getFirstName());
- assertEquals("Doe", user.getLastName());
+ public void testFindByEmail() throws JsonProcessingException {
+ User user = new User();
+ user.setId(new UserId(UUID.randomUUID()));
+ user.setTenantId(TenantId.fromUUID(UUID.randomUUID()));
+ user.setCustomerId(new CustomerId(UUID.randomUUID()));
+ user.setEmail("user@thingsboard.org");
+ user.setFirstName("Jackson");
+ user.setLastName("Roberts");
+ ObjectMapper mapper = new ObjectMapper();
+ String additionalInfo = "{\"key\":\"value-100\"}";
+ JsonNode jsonNode = mapper.readTree(additionalInfo);
+ user.setAdditionalInfo(jsonNode);
+ userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID, user);
+ assertEquals(1 + COUNT_SYSADMIN_USER + COUNT_CREATED_USER, userDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).size());
+ User savedUser = userDao.findByEmail(AbstractServiceTest.SYSTEM_TENANT_ID, "user@thingsboard.org");
+ assertNotNull(savedUser);
+ assertEquals(additionalInfo, savedUser.getAdditionalInfo().toString());
}
@Test
- @DatabaseSetup("classpath:dbunit/empty_dataset.xml")
public void testFindTenantAdmins() {
- UUID tenantId = Uuids.timeBased();
- UUID customerId = Uuids.timeBased();
- create30Adminsand60Users(tenantId, customerId);
PageLink pageLink = new PageLink(20);
PageData tenantAdmins1 = userDao.findTenantAdmins(tenantId, pageLink);
assertEquals(20, tenantAdmins1.getData().size());
@@ -88,11 +108,7 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
}
@Test
- @DatabaseSetup("classpath:dbunit/empty_dataset.xml")
public void testFindCustomerUsers() {
- UUID tenantId = Uuids.timeBased();
- UUID customerId = Uuids.timeBased();
- create30Adminsand60Users(tenantId, customerId);
PageLink pageLink = new PageLink(40);
PageData customerUsers1 = userDao.findCustomerUsers(tenantId, customerId, pageLink);
assertEquals(40, customerUsers1.getData().size());
@@ -106,28 +122,7 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
assertEquals(0, customerUsers3.getData().size());
}
- @Test
- @DatabaseSetup("classpath:dbunit/user.xml")
- public void testSave() throws IOException {
- User user = new User();
- user.setId(new UserId(UUID.fromString("cd481534-27cc-11e7-93ae-92361f002671")));
- user.setTenantId(TenantId.fromUUID(UUID.fromString("1edcb2c6-27cb-11e7-93ae-92361f002671")));
- user.setCustomerId(new CustomerId(UUID.fromString("51477cb4-27cb-11e7-93ae-92361f002671")));
- user.setEmail("user@thingsboard.org");
- user.setFirstName("Jackson");
- user.setLastName("Roberts");
- ObjectMapper mapper = new ObjectMapper();
- String additionalInfo = "{\"key\":\"value-100\"}";
- JsonNode jsonNode = mapper.readTree(additionalInfo);
- user.setAdditionalInfo(jsonNode);
- userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID,user);
- assertEquals(6, userDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).size());
- User savedUser = userDao.findByEmail(AbstractServiceTest.SYSTEM_TENANT_ID,"user@thingsboard.org");
- assertNotNull(savedUser);
- assertEquals(additionalInfo, savedUser.getAdditionalInfo().toString());
- }
-
- private void create30Adminsand60Users(UUID tenantId, UUID customerId) {
+ private void create30TenantAdminsAnd60CustomerUsers(UUID tenantId, UUID customerId) {
// Create 30 tenant admins and 60 customer users
for (int i = 0; i < 30; i++) {
saveUser(tenantId, NULL_UUID);
@@ -150,6 +145,14 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
String idString = id.toString();
String email = idString.substring(0, idString.indexOf('-')) + "@thingsboard.org";
user.setEmail(email);
- userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID,user);
+ userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID, user);
+ }
+
+ private void delete30TenantAdminsAnd60CustomerUsers(UUID tenantId, UUID customerId) {
+ List data = userDao.findCustomerUsers(tenantId, customerId, new PageLink(60)).getData();
+ data.addAll(userDao.findTenantAdmins(tenantId, new PageLink(30)).getData());
+ for (User user : data) {
+ userDao.removeById(user.getTenantId(), user.getUuidId());
+ }
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java
index 9442a2b4ea..1dcc8f0bbe 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java
@@ -15,40 +15,69 @@
*/
package org.thingsboard.server.dao.sql.widget;
-import com.github.springtestdbunit.annotation.DatabaseSetup;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.widget.WidgetType;
+import org.thingsboard.server.common.data.widget.WidgetTypeDetails;
import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.widget.WidgetTypeDao;
+import java.util.ArrayList;
import java.util.List;
-import java.util.UUID;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
/**
* Created by Valerii Sosliuk on 4/30/2017.
*/
public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest {
+ final String BUNDLE_ALIAS = "BUNDLE_ALIAS";
+ final int WIDGET_TYPE_COUNT = 3;
+ List widgetTypeList;
+
@Autowired
private WidgetTypeDao widgetTypeDao;
+ @Before
+ public void setUp() {
+ widgetTypeList = new ArrayList<>();
+ for (int i = 0; i < WIDGET_TYPE_COUNT; i++) {
+ widgetTypeList.add(createAndSaveWidgetType(i));
+ }
+ }
+
+ WidgetType createAndSaveWidgetType(int number) {
+ WidgetTypeDetails widgetType = new WidgetTypeDetails();
+ widgetType.setTenantId(TenantId.SYS_TENANT_ID);
+ widgetType.setName("WIDGET_TYPE_" + number);
+ widgetType.setAlias("ALIAS_" + number);
+ widgetType.setBundleAlias(BUNDLE_ALIAS);
+ return widgetTypeDao.save(TenantId.SYS_TENANT_ID, widgetType);
+ }
+
+ @After
+ public void deleteAllWidgetType() {
+ for (WidgetType widgetType : widgetTypeList) {
+ widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, widgetType.getUuidId());
+ }
+ }
+
@Test
- @DatabaseSetup(("classpath:dbunit/widget_type.xml"))
public void testFindByTenantIdAndBundleAlias() {
- UUID tenantId = UUID.fromString("2b7e4c90-2dfe-11e7-94aa-f7f6dbfb4833");
- List widgetTypes = widgetTypeDao.findWidgetTypesByTenantIdAndBundleAlias(tenantId, "BUNDLE_ALIAS_1");
- assertEquals(3, widgetTypes.size());
+ List widgetTypes = widgetTypeDao.findWidgetTypesByTenantIdAndBundleAlias(TenantId.SYS_TENANT_ID.getId(), BUNDLE_ALIAS);
+ assertEquals(WIDGET_TYPE_COUNT, widgetTypes.size());
}
@Test
- @DatabaseSetup(("classpath:dbunit/widget_type.xml"))
public void testFindByTenantIdAndBundleAliasAndAlias() {
- UUID tenantId = UUID.fromString("2b7e4c90-2dfe-11e7-94aa-f7f6dbfb4833");
- WidgetType widgetType = widgetTypeDao.findByTenantIdBundleAliasAndAlias(tenantId, "BUNDLE_ALIAS_1", "ALIAS3");
- UUID id = UUID.fromString("2b7e4c93-2dfe-11e7-94aa-f7f6dbfb4833");
- assertEquals(id, widgetType.getId().getId());
+ WidgetType result = widgetTypeList.get(0);
+ assertNotNull(result);
+ WidgetType widgetType = widgetTypeDao.findByTenantIdBundleAliasAndAlias(TenantId.SYS_TENANT_ID.getId(), BUNDLE_ALIAS, "ALIAS_0");
+ assertEquals(result.getId(), widgetType.getId());
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java
index 1d9d18edd1..8b138b11b6 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java
@@ -16,9 +16,7 @@
package org.thingsboard.server.dao.sql.widget;
import com.datastax.oss.driver.api.core.uuid.Uuids;
-import com.github.springtestdbunit.annotation.DatabaseOperation;
-import com.github.springtestdbunit.annotation.DatabaseSetup;
-import com.github.springtestdbunit.annotation.DatabaseTearDown;
+import org.junit.After;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.id.TenantId;
@@ -27,72 +25,79 @@ import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.widget.WidgetsBundle;
import org.thingsboard.server.dao.AbstractJpaDaoTest;
-import org.thingsboard.server.dao.service.AbstractServiceTest;
import org.thingsboard.server.dao.widget.WidgetsBundleDao;
import java.util.List;
import java.util.UUID;
import static org.junit.Assert.assertEquals;
-import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
/**
* Created by Valerii Sosliuk on 4/23/2017.
*/
public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest {
+ List widgetsBundles;
@Autowired
private WidgetsBundleDao widgetsBundleDao;
+ @After
+ public void tearDown() {
+ for (WidgetsBundle widgetsBundle : widgetsBundles) {
+ widgetsBundleDao.removeById(widgetsBundle.getTenantId(), widgetsBundle.getUuidId());
+ }
+
+ }
+
@Test
- @DatabaseSetup(value = "classpath:dbunit/widgets_bundle.xml",type= DatabaseOperation.CLEAN_INSERT)
- @DatabaseTearDown(value = "classpath:dbunit/widgets_bundle.xml", type= DatabaseOperation.DELETE_ALL)
public void testFindAll() {
- assertEquals(7, widgetsBundleDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).size());
+ createSystemWidgetBundles(7, "WB_");
+ widgetsBundles = widgetsBundleDao.find(TenantId.SYS_TENANT_ID);
+ assertEquals(7, widgetsBundles.size());
}
@Test
- @DatabaseSetup(value = "classpath:dbunit/widgets_bundle.xml",type= DatabaseOperation.CLEAN_INSERT)
- @DatabaseTearDown(value = "classpath:dbunit/widgets_bundle.xml", type= DatabaseOperation.DELETE_ALL)
public void testFindWidgetsBundleByTenantIdAndAlias() {
+ createSystemWidgetBundles(1, "WB_");
WidgetsBundle widgetsBundle = widgetsBundleDao.findWidgetsBundleByTenantIdAndAlias(
- UUID.fromString("250aca8e-2825-11e7-93ae-92361f002671"), "WB3");
- assertEquals("44e6af4e-2825-11e7-93ae-92361f002671", widgetsBundle.getId().toString());
+ TenantId.SYS_TENANT_ID.getId(), "WB_" + 0);
+ widgetsBundles = List.of(widgetsBundle);
+ assertEquals("WB_" + 0, widgetsBundle.getAlias());
}
@Test
- @DatabaseSetup(value = "classpath:dbunit/widgets_bundle.xml", type= DatabaseOperation.DELETE_ALL)
public void testFindSystemWidgetsBundles() {
createSystemWidgetBundles(30, "WB_");
- assertEquals(30, widgetsBundleDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).size());
+ widgetsBundles = widgetsBundleDao.find(TenantId.SYS_TENANT_ID);
+ assertEquals(30, widgetsBundles.size());
// Get first page
PageLink pageLink = new PageLink(10, 0, "WB");
- PageData widgetsBundles1 = widgetsBundleDao.findSystemWidgetsBundles(AbstractServiceTest.SYSTEM_TENANT_ID, pageLink);
+ PageData