Details
diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index 8766e57..c626725 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -95,6 +95,7 @@ coap:
# Cassandra driver configuration parameters
cassandra:
+ enabled: "${CASSANDRA_ENABLED:true}"
# Thingsboard cluster name
cluster_name: "${CASSANDRA_CLUSTER_NAME:Thingsboard Cluster}"
# Thingsboard keyspace name
@@ -189,11 +190,7 @@ updates:
# Enable/disable updates checking.
enabled: "${UPDATES_ENABLED:true}"
-cassandra:
- enabled: "${CASSANDRA_ENABLED:true}"
-
# SQL DAO Configuration
-
sql:
enabled: "${SQL_ENABLED:false}"
datasource:
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/ComponentDescriptorEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/ComponentDescriptorEntity.java
index d5cf08c..2ff09a7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/ComponentDescriptorEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/ComponentDescriptorEntity.java
@@ -23,43 +23,44 @@ import org.thingsboard.server.common.data.id.ComponentDescriptorId;
import org.thingsboard.server.common.data.plugin.ComponentDescriptor;
import org.thingsboard.server.common.data.plugin.ComponentScope;
import org.thingsboard.server.common.data.plugin.ComponentType;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
import java.util.UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
/**
* @author Andrew Shvayka
*/
-@Table(name = ModelConstants.COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME)
+@Table(name = COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME)
public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDescriptor> {
private static final long serialVersionUID = 1L;
@PartitionKey
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
- @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_TYPE_PROPERTY)
+ @Column(name = COMPONENT_DESCRIPTOR_TYPE_PROPERTY)
private ComponentType type;
- @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_SCOPE_PROPERTY)
+ @Column(name = COMPONENT_DESCRIPTOR_SCOPE_PROPERTY)
private ComponentScope scope;
- @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_NAME_PROPERTY)
+ @Column(name = COMPONENT_DESCRIPTOR_NAME_PROPERTY)
private String name;
- @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_CLASS_PROPERTY)
+ @Column(name = COMPONENT_DESCRIPTOR_CLASS_PROPERTY)
private String clazz;
- @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_CONFIGURATION_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
+ @Column(name = COMPONENT_DESCRIPTOR_CONFIGURATION_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
private JsonNode configurationDescriptor;
- @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_ACTIONS_PROPERTY)
+ @Column(name = COMPONENT_DESCRIPTOR_ACTIONS_PROPERTY)
private String actions;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
public ComponentDescriptorEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java
index ce3dbff..5213499 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java
@@ -20,7 +20,6 @@ import java.util.UUID;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
@@ -31,51 +30,53 @@ import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import com.fasterxml.jackson.databind.JsonNode;
-@Table(name = ModelConstants.CUSTOMER_COLUMN_FAMILY_NAME)
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
+@Table(name = CUSTOMER_COLUMN_FAMILY_NAME)
public final class CustomerEntity implements SearchTextEntity<Customer> {
@Transient
private static final long serialVersionUID = -7732527103760948490L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.CUSTOMER_TENANT_ID_PROPERTY)
+ @Column(name = CUSTOMER_TENANT_ID_PROPERTY)
private UUID tenantId;
- @Column(name = ModelConstants.CUSTOMER_TITLE_PROPERTY)
+ @Column(name = CUSTOMER_TITLE_PROPERTY)
private String title;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.COUNTRY_PROPERTY)
+ @Column(name = COUNTRY_PROPERTY)
private String country;
- @Column(name = ModelConstants.STATE_PROPERTY)
+ @Column(name = STATE_PROPERTY)
private String state;
- @Column(name = ModelConstants.CITY_PROPERTY)
+ @Column(name = CITY_PROPERTY)
private String city;
- @Column(name = ModelConstants.ADDRESS_PROPERTY)
+ @Column(name = ADDRESS_PROPERTY)
private String address;
- @Column(name = ModelConstants.ADDRESS2_PROPERTY)
+ @Column(name = ADDRESS2_PROPERTY)
private String address2;
- @Column(name = ModelConstants.ZIP_PROPERTY)
+ @Column(name = ZIP_PROPERTY)
private String zip;
- @Column(name = ModelConstants.PHONE_PROPERTY)
+ @Column(name = PHONE_PROPERTY)
private String phone;
- @Column(name = ModelConstants.EMAIL_PROPERTY)
+ @Column(name = EMAIL_PROPERTY)
private String email;
- @Column(name = ModelConstants.CUSTOMER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
+ @Column(name = CUSTOMER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
private JsonNode additionalInfo;
public CustomerEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java
index 911e970..ef9df97 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java
@@ -21,7 +21,6 @@ import org.thingsboard.server.common.data.Dashboard;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
@@ -32,31 +31,33 @@ import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import com.fasterxml.jackson.databind.JsonNode;
-@Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME)
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
+@Table(name = DASHBOARD_COLUMN_FAMILY_NAME)
public final class DashboardEntity implements SearchTextEntity<Dashboard> {
@Transient
private static final long serialVersionUID = 2998395951247446191L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.DASHBOARD_TENANT_ID_PROPERTY)
+ @Column(name = DASHBOARD_TENANT_ID_PROPERTY)
private UUID tenantId;
@PartitionKey(value = 2)
- @Column(name = ModelConstants.DASHBOARD_CUSTOMER_ID_PROPERTY)
+ @Column(name = DASHBOARD_CUSTOMER_ID_PROPERTY)
private UUID customerId;
- @Column(name = ModelConstants.DASHBOARD_TITLE_PROPERTY)
+ @Column(name = DASHBOARD_TITLE_PROPERTY)
private String title;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.DASHBOARD_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
+ @Column(name = DASHBOARD_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
private JsonNode configuration;
public DashboardEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java
index 2c5fe00..4a31859 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java
@@ -21,7 +21,6 @@ import org.thingsboard.server.common.data.DashboardInfo;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import com.datastax.driver.core.utils.UUIDs;
@@ -30,28 +29,30 @@ import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
-@Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME)
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
+@Table(name = DASHBOARD_COLUMN_FAMILY_NAME)
public class DashboardInfoEntity implements SearchTextEntity<DashboardInfo> {
@Transient
private static final long serialVersionUID = 2998395951247446191L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.DASHBOARD_TENANT_ID_PROPERTY)
+ @Column(name = DASHBOARD_TENANT_ID_PROPERTY)
private UUID tenantId;
@PartitionKey(value = 2)
- @Column(name = ModelConstants.DASHBOARD_CUSTOMER_ID_PROPERTY)
+ @Column(name = DASHBOARD_CUSTOMER_ID_PROPERTY)
private UUID customerId;
- @Column(name = ModelConstants.DASHBOARD_TITLE_PROPERTY)
+ @Column(name = DASHBOARD_TITLE_PROPERTY)
private String title;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
public DashboardInfoEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java
index 32864c6..3acfbad 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java
@@ -22,7 +22,6 @@ import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.security.DeviceCredentials;
import org.thingsboard.server.common.data.security.DeviceCredentialsType;
import org.thingsboard.server.dao.model.BaseEntity;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.type.DeviceCredentialsTypeCodec;
import com.datastax.driver.core.utils.UUIDs;
@@ -31,26 +30,28 @@ import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
-@Table(name = ModelConstants.DEVICE_CREDENTIALS_COLUMN_FAMILY_NAME)
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
+@Table(name = DEVICE_CREDENTIALS_COLUMN_FAMILY_NAME)
public final class DeviceCredentialsEntity implements BaseEntity<DeviceCredentials> {
@Transient
private static final long serialVersionUID = -2667310560260623272L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
- @Column(name = ModelConstants.DEVICE_CREDENTIALS_DEVICE_ID_PROPERTY)
+ @Column(name = DEVICE_CREDENTIALS_DEVICE_ID_PROPERTY)
private UUID deviceId;
- @Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_TYPE_PROPERTY, codec = DeviceCredentialsTypeCodec.class)
+ @Column(name = DEVICE_CREDENTIALS_CREDENTIALS_TYPE_PROPERTY, codec = DeviceCredentialsTypeCodec.class)
private DeviceCredentialsType credentialsType;
- @Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_ID_PROPERTY)
+ @Column(name = DEVICE_CREDENTIALS_CREDENTIALS_ID_PROPERTY)
private String credentialsId;
- @Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_VALUE_PROPERTY)
+ @Column(name = DEVICE_CREDENTIALS_CREDENTIALS_VALUE_PROPERTY)
private String credentialsValue;
public DeviceCredentialsEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java
index 70c9a36..8b21096 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java
@@ -25,37 +25,38 @@ import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
import java.util.UUID;
-@Table(name = ModelConstants.DEVICE_COLUMN_FAMILY_NAME)
+@Table(name = DEVICE_COLUMN_FAMILY_NAME)
public final class DeviceEntity implements SearchTextEntity<Device> {
@Transient
private static final long serialVersionUID = -1265181166886910152L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.DEVICE_TENANT_ID_PROPERTY)
+ @Column(name = DEVICE_TENANT_ID_PROPERTY)
private UUID tenantId;
@PartitionKey(value = 2)
- @Column(name = ModelConstants.DEVICE_CUSTOMER_ID_PROPERTY)
+ @Column(name = DEVICE_CUSTOMER_ID_PROPERTY)
private UUID customerId;
- @Column(name = ModelConstants.DEVICE_NAME_PROPERTY)
+ @Column(name = DEVICE_NAME_PROPERTY)
private String name;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.DEVICE_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
+ @Column(name = DEVICE_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
private JsonNode additionalInfo;
public DeviceEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/EventEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/EventEntity.java
index abfcfef..a2987b1 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/EventEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/EventEntity.java
@@ -24,10 +24,11 @@ import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.Event;
import org.thingsboard.server.common.data.id.*;
import org.thingsboard.server.dao.model.BaseEntity;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.type.EntityTypeCodec;
import org.thingsboard.server.dao.model.type.JsonCodec;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
import java.util.UUID;
/**
@@ -35,36 +36,36 @@ import java.util.UUID;
*/
@Data
@NoArgsConstructor
-@Table(name = ModelConstants.DEVICE_COLUMN_FAMILY_NAME)
+@Table(name = DEVICE_COLUMN_FAMILY_NAME)
public class EventEntity implements BaseEntity<Event> {
@Transient
private static final long serialVersionUID = -1265181166886910153L;
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey()
- @Column(name = ModelConstants.EVENT_TENANT_ID_PROPERTY)
+ @Column(name = EVENT_TENANT_ID_PROPERTY)
private UUID tenantId;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.EVENT_ENTITY_TYPE_PROPERTY, codec = EntityTypeCodec.class)
+ @Column(name = EVENT_ENTITY_TYPE_PROPERTY, codec = EntityTypeCodec.class)
private EntityType entityType;
@PartitionKey(value = 2)
- @Column(name = ModelConstants.EVENT_ENTITY_ID_PROPERTY)
+ @Column(name = EVENT_ENTITY_ID_PROPERTY)
private UUID entityId;
@ClusteringColumn()
- @Column(name = ModelConstants.EVENT_TYPE_PROPERTY)
+ @Column(name = EVENT_TYPE_PROPERTY)
private String eventType;
@ClusteringColumn(value = 1)
- @Column(name = ModelConstants.EVENT_UID_PROPERTY)
+ @Column(name = EVENT_UID_PROPERTY)
private String eventUId;
- @Column(name = ModelConstants.EVENT_BODY_PROPERTY, codec = JsonCodec.class)
+ @Column(name = EVENT_BODY_PROPERTY, codec = JsonCodec.class)
private JsonNode body;
public EventEntity(Event event) {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java
index caddacb..4a0dca2 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java
@@ -22,50 +22,51 @@ import org.thingsboard.server.common.data.id.PluginId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.plugin.ComponentLifecycleState;
import org.thingsboard.server.common.data.plugin.PluginMetaData;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.ComponentLifecycleStateCodec;
import org.thingsboard.server.dao.model.type.JsonCodec;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
import java.util.Objects;
import java.util.UUID;
-@Table(name = ModelConstants.PLUGIN_COLUMN_FAMILY_NAME)
+@Table(name = PLUGIN_COLUMN_FAMILY_NAME)
public class PluginMetaDataEntity implements SearchTextEntity<PluginMetaData> {
@Transient
private static final long serialVersionUID = -5231612734979707866L;
@PartitionKey
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
- @Column(name = ModelConstants.PLUGIN_API_TOKEN_PROPERTY)
+ @Column(name = PLUGIN_API_TOKEN_PROPERTY)
private String apiToken;
@ClusteringColumn
- @Column(name = ModelConstants.PLUGIN_TENANT_ID_PROPERTY)
+ @Column(name = PLUGIN_TENANT_ID_PROPERTY)
private UUID tenantId;
- @Column(name = ModelConstants.PLUGIN_NAME_PROPERTY)
+ @Column(name = PLUGIN_NAME_PROPERTY)
private String name;
- @Column(name = ModelConstants.PLUGIN_CLASS_PROPERTY)
+ @Column(name = PLUGIN_CLASS_PROPERTY)
private String clazz;
- @Column(name = ModelConstants.PLUGIN_ACCESS_PROPERTY)
+ @Column(name = PLUGIN_ACCESS_PROPERTY)
private boolean publicAccess;
- @Column(name = ModelConstants.PLUGIN_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
+ @Column(name = PLUGIN_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
private ComponentLifecycleState state;
- @Column(name = ModelConstants.PLUGIN_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
+ @Column(name = PLUGIN_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
private JsonNode configuration;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
+ @Column(name = ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
private JsonNode additionalInfo;
public PluginMetaDataEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java
index 29d32fd..dea7661 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java
@@ -26,43 +26,44 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.plugin.ComponentLifecycleState;
import org.thingsboard.server.common.data.rule.RuleMetaData;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.ComponentLifecycleStateCodec;
import org.thingsboard.server.dao.model.type.JsonCodec;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
import javax.persistence.Transient;
import java.util.Objects;
import java.util.UUID;
-@Table(name = ModelConstants.RULE_COLUMN_FAMILY_NAME)
+@Table(name = RULE_COLUMN_FAMILY_NAME)
public class RuleMetaDataEntity implements SearchTextEntity<RuleMetaData> {
@Transient
private static final long serialVersionUID = 4011728715100800304L;
@PartitionKey
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@ClusteringColumn
- @Column(name = ModelConstants.RULE_TENANT_ID_PROPERTY)
+ @Column(name = RULE_TENANT_ID_PROPERTY)
private UUID tenantId;
- @Column(name = ModelConstants.RULE_NAME_PROPERTY)
+ @Column(name = RULE_NAME_PROPERTY)
private String name;
- @Column(name = ModelConstants.RULE_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
+ @Column(name = RULE_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
private ComponentLifecycleState state;
- @Column(name = ModelConstants.RULE_WEIGHT_PROPERTY)
+ @Column(name = RULE_WEIGHT_PROPERTY)
private int weight;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.RULE_PLUGIN_TOKEN_PROPERTY)
+ @Column(name = RULE_PLUGIN_TOKEN_PROPERTY)
private String pluginToken;
- @Column(name = ModelConstants.RULE_FILTERS, codec = JsonCodec.class)
+ @Column(name = RULE_FILTERS, codec = JsonCodec.class)
private JsonNode filters;
- @Column(name = ModelConstants.RULE_PROCESSOR, codec = JsonCodec.class)
+ @Column(name = RULE_PROCESSOR, codec = JsonCodec.class)
private JsonNode processor;
- @Column(name = ModelConstants.RULE_ACTION, codec = JsonCodec.class)
+ @Column(name = RULE_ACTION, codec = JsonCodec.class)
private JsonNode action;
- @Column(name = ModelConstants.ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
+ @Column(name = ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
private JsonNode additionalInfo;
public RuleMetaDataEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java
index a6e3ae6..e97fee3 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java
@@ -19,7 +19,6 @@ import java.util.UUID;
import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
@@ -29,51 +28,52 @@ import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import com.fasterxml.jackson.databind.JsonNode;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
-@Table(name = ModelConstants.TENANT_COLUMN_FAMILY_NAME)
+@Table(name = TENANT_COLUMN_FAMILY_NAME)
public final class TenantEntity implements SearchTextEntity<Tenant> {
@Transient
private static final long serialVersionUID = -6198635547142409206L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
- @Column(name = ModelConstants.TENANT_TITLE_PROPERTY)
+ @Column(name = TENANT_TITLE_PROPERTY)
private String title;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.TENANT_REGION_PROPERTY)
+ @Column(name = TENANT_REGION_PROPERTY)
private String region;
- @Column(name = ModelConstants.COUNTRY_PROPERTY)
+ @Column(name = COUNTRY_PROPERTY)
private String country;
- @Column(name = ModelConstants.STATE_PROPERTY)
+ @Column(name = STATE_PROPERTY)
private String state;
- @Column(name = ModelConstants.CITY_PROPERTY)
+ @Column(name = CITY_PROPERTY)
private String city;
- @Column(name = ModelConstants.ADDRESS_PROPERTY)
+ @Column(name = ADDRESS_PROPERTY)
private String address;
- @Column(name = ModelConstants.ADDRESS2_PROPERTY)
+ @Column(name = ADDRESS2_PROPERTY)
private String address2;
- @Column(name = ModelConstants.ZIP_PROPERTY)
+ @Column(name = ZIP_PROPERTY)
private String zip;
- @Column(name = ModelConstants.PHONE_PROPERTY)
+ @Column(name = PHONE_PROPERTY)
private String phone;
- @Column(name = ModelConstants.EMAIL_PROPERTY)
+ @Column(name = EMAIL_PROPERTY)
private String email;
- @Column(name = ModelConstants.TENANT_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
+ @Column(name = TENANT_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
private JsonNode additionalInfo;
public TenantEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java
index d571d0f..8aab37d 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java
@@ -27,31 +27,31 @@ import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import org.thingsboard.server.dao.model.BaseEntity;
-import org.thingsboard.server.dao.model.ModelConstants;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
-@Table(name = ModelConstants.USER_CREDENTIALS_COLUMN_FAMILY_NAME)
+@Table(name = USER_CREDENTIALS_COLUMN_FAMILY_NAME)
public final class UserCredentialsEntity implements BaseEntity<UserCredentials> {
@Transient
private static final long serialVersionUID = 1348221414123438374L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
- @Column(name = ModelConstants.USER_CREDENTIALS_USER_ID_PROPERTY)
+ @Column(name = USER_CREDENTIALS_USER_ID_PROPERTY)
private UUID userId;
- @Column(name = ModelConstants.USER_CREDENTIALS_ENABLED_PROPERTY)
+ @Column(name = USER_CREDENTIALS_ENABLED_PROPERTY)
private boolean enabled;
- @Column(name = ModelConstants.USER_CREDENTIALS_PASSWORD_PROPERTY)
+ @Column(name = USER_CREDENTIALS_PASSWORD_PROPERTY)
private String password;
- @Column(name = ModelConstants.USER_CREDENTIALS_ACTIVATE_TOKEN_PROPERTY)
+ @Column(name = USER_CREDENTIALS_ACTIVATE_TOKEN_PROPERTY)
private String activateToken;
- @Column(name = ModelConstants.USER_CREDENTIALS_RESET_TOKEN_PROPERTY)
+ @Column(name = USER_CREDENTIALS_RESET_TOKEN_PROPERTY)
private String resetToken;
public UserCredentialsEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java
index 91b9f3c..29beadd 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java
@@ -22,7 +22,6 @@ import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.security.Authority;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.AuthorityCodec;
import org.thingsboard.server.dao.model.type.JsonCodec;
@@ -33,42 +32,43 @@ import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import com.fasterxml.jackson.databind.JsonNode;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
-@Table(name = ModelConstants.USER_COLUMN_FAMILY_NAME)
+@Table(name = USER_COLUMN_FAMILY_NAME)
public final class UserEntity implements SearchTextEntity<User> {
@Transient
private static final long serialVersionUID = -7740338274987723489L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.USER_TENANT_ID_PROPERTY)
+ @Column(name = USER_TENANT_ID_PROPERTY)
private UUID tenantId;
@PartitionKey(value = 2)
- @Column(name = ModelConstants.USER_CUSTOMER_ID_PROPERTY)
+ @Column(name = USER_CUSTOMER_ID_PROPERTY)
private UUID customerId;
@PartitionKey(value = 3)
- @Column(name = ModelConstants.USER_AUTHORITY_PROPERTY, codec = AuthorityCodec.class)
+ @Column(name = USER_AUTHORITY_PROPERTY, codec = AuthorityCodec.class)
private Authority authority;
- @Column(name = ModelConstants.USER_EMAIL_PROPERTY)
+ @Column(name = USER_EMAIL_PROPERTY)
private String email;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.USER_FIRST_NAME_PROPERTY)
+ @Column(name = USER_FIRST_NAME_PROPERTY)
private String firstName;
- @Column(name = ModelConstants.USER_LAST_NAME_PROPERTY)
+ @Column(name = USER_LAST_NAME_PROPERTY)
private String lastName;
- @Column(name = ModelConstants.USER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
+ @Column(name = USER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
private JsonNode additionalInfo;
public UserEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java
index 889f1d6..edec5bd 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java
@@ -24,36 +24,36 @@ import com.datastax.driver.mapping.annotations.Transient;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.WidgetsBundleId;
import org.thingsboard.server.common.data.widget.WidgetsBundle;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
import java.nio.ByteBuffer;
import java.util.UUID;
-@Table(name = ModelConstants.WIDGETS_BUNDLE_COLUMN_FAMILY_NAME)
+@Table(name = WIDGETS_BUNDLE_COLUMN_FAMILY_NAME)
public final class WidgetsBundleEntity implements SearchTextEntity<WidgetsBundle> {
@Transient
private static final long serialVersionUID = -8842195928585650849L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.WIDGETS_BUNDLE_TENANT_ID_PROPERTY)
+ @Column(name = WIDGETS_BUNDLE_TENANT_ID_PROPERTY)
private UUID tenantId;
- @Column(name = ModelConstants.WIDGETS_BUNDLE_ALIAS_PROPERTY)
+ @Column(name = WIDGETS_BUNDLE_ALIAS_PROPERTY)
private String alias;
- @Column(name = ModelConstants.WIDGETS_BUNDLE_TITLE_PROPERTY)
+ @Column(name = WIDGETS_BUNDLE_TITLE_PROPERTY)
private String title;
- @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
+ @Column(name = SEARCH_TEXT_PROPERTY)
private String searchText;
- @Column(name = ModelConstants.WIDGETS_BUNDLE_IMAGE_PROPERTY)
+ @Column(name = WIDGETS_BUNDLE_IMAGE_PROPERTY)
private ByteBuffer image;
public WidgetsBundleEntity() {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java
index 4fd60f3..47db143 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java
@@ -25,36 +25,36 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.WidgetTypeId;
import org.thingsboard.server.common.data.widget.WidgetType;
import org.thingsboard.server.dao.model.BaseEntity;
-import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.type.JsonCodec;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
import java.util.UUID;
-@Table(name = ModelConstants.WIDGET_TYPE_COLUMN_FAMILY_NAME)
+@Table(name = WIDGET_TYPE_COLUMN_FAMILY_NAME)
public final class WidgetTypeEntity implements BaseEntity<WidgetType> {
@Transient
private static final long serialVersionUID = 3591054897680176342L;
@PartitionKey(value = 0)
- @Column(name = ModelConstants.ID_PROPERTY)
+ @Column(name = ID_PROPERTY)
private UUID id;
@PartitionKey(value = 1)
- @Column(name = ModelConstants.WIDGET_TYPE_TENANT_ID_PROPERTY)
+ @Column(name = WIDGET_TYPE_TENANT_ID_PROPERTY)
private UUID tenantId;
@PartitionKey(value = 2)
- @Column(name = ModelConstants.WIDGET_TYPE_BUNDLE_ALIAS_PROPERTY)
+ @Column(name = WIDGET_TYPE_BUNDLE_ALIAS_PROPERTY)
private String bundleAlias;
- @Column(name = ModelConstants.WIDGET_TYPE_ALIAS_PROPERTY)
+ @Column(name = WIDGET_TYPE_ALIAS_PROPERTY)
private String alias;
- @Column(name = ModelConstants.WIDGET_TYPE_NAME_PROPERTY)
+ @Column(name = WIDGET_TYPE_NAME_PROPERTY)
private String name;
- @Column(name = ModelConstants.WIDGET_TYPE_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
+ @Column(name = WIDGET_TYPE_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
private JsonNode descriptor;
public WidgetTypeEntity() {
@@ -157,7 +157,7 @@ public final class WidgetTypeEntity implements BaseEntity<WidgetType> {
sb.append(", tenantId=").append(tenantId);
sb.append(", bundleAlias='").append(bundleAlias).append('\'');
sb.append(", alias='").append(alias).append('\'');
- sb.append(", name='").append(name).append('\'');
+ sb.append(", name ='").append(name).append('\'');
sb.append(", descriptor=").append(descriptor);
sb.append('}');
return sb.toString();
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 a92e607..408c4f3 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
@@ -33,7 +33,7 @@ import java.util.UUID;
@Slf4j
public abstract class JpaAbstractDao<E extends BaseEntity<D>, D> implements Dao<D> {
- protected abstract Class<E> getColumnFamilyClass();
+ protected abstract Class<E> getEntityClass();
protected abstract String getColumnFamilyName();
@@ -47,7 +47,7 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D> implements Dao<
public D save(D domain) {
E entity;
try {
- entity = getColumnFamilyClass().getConstructor(domain.getClass()).newInstance(domain);
+ entity = getEntityClass().getConstructor(domain.getClass()).newInstance(domain);
} catch (Exception e) {
log.error("Can't create entity for domain object {}", domain, e);
throw new IllegalArgumentException("Can't create entity for domain object {" + domain + "}", e);
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 8fb14d7..551f658 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
@@ -19,10 +19,14 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.User;
+import org.thingsboard.server.common.data.page.TextPageLink;
+import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.sql.UserEntity;
import org.thingsboard.server.dao.sql.JpaAbstractDao;
+import org.thingsboard.server.dao.user.UserDao;
+import java.util.List;
import java.util.UUID;
/**
@@ -30,13 +34,13 @@ import java.util.UUID;
*/
@Component
@ConditionalOnProperty(prefix="sql", value="enabled",havingValue = "true", matchIfMissing = false)
-public class JpaUserDao extends JpaAbstractDao<UserEntity, User> {
+public class JpaUserDao extends JpaAbstractDao<UserEntity, User> implements UserDao {
@Autowired
private UserRepository userRepository;
@Override
- protected Class<UserEntity> getColumnFamilyClass() {
+ protected Class<UserEntity> getEntityClass() {
return UserEntity.class;
}
@@ -49,4 +53,19 @@ public class JpaUserDao extends JpaAbstractDao<UserEntity, User> {
protected JpaRepository<UserEntity, UUID> getCrudRepository() {
return userRepository;
}
+
+ @Override
+ public User findByEmail(String email) {
+ return DaoUtil.getData(userRepository.findByEmail(email));
+ }
+
+ @Override
+ public List<User> findTenantAdmins(UUID tenantId, TextPageLink pageLink) {
+ return null;
+ }
+
+ @Override
+ public List<User> findCustomerUsers(UUID tenantId, UUID customerId, TextPageLink pageLink) {
+ return null;
+ }
}
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 51364c7..a3bcfa6 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
@@ -15,12 +15,18 @@
*/
package org.thingsboard.server.dao.sql.user;
+import org.thingsboard.server.common.data.User;
+import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.model.sql.UserEntity;
+import java.util.List;
import java.util.UUID;
/**
* @author Valerii Sosliuk
*/
public interface UserRepository extends JpaRepository<UserEntity, UUID> {
+
+ UserEntity findByEmail(String email);
+
}