diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 8766e5711e..c62672595c 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 d5cf08cf52..2ff09a7a77 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 { 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 ce3dbff0af..52134993d6 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 { @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 911e9708d0..ef9df9765d 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 { @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 2c5fe00580..4a318592ea 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 { @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 32864c64a2..3acfbad0fb 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 { @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 70c9a36efe..8b210963ba 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 { @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 abfcfeffb0..a2987b1651 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 { @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 caddacb340..4a0dca261c 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 { @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 29d32fdb30..dea7661769 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 { @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 a6e3ae6efb..e97fee3cbf 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 { @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 d571d0fd22..8aab37dd3b 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 { @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 91b9f3cd57..29beadd592 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 { @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/WidgetTypeEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java index 4fd60f3889..47db143eba 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 { @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 { 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/model/nosql/WidgetsBundleEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java index 889f1d6c3d..edec5bd3dc 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 { @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/sql/JpaAbstractDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java index a92e607472..408c4f334f 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, D> implements Dao { - protected abstract Class getColumnFamilyClass(); + protected abstract Class getEntityClass(); protected abstract String getColumnFamilyName(); @@ -47,7 +47,7 @@ public abstract class JpaAbstractDao, 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 8fb14d7cff..551f658af1 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 { +public class JpaUserDao extends JpaAbstractDao implements UserDao { @Autowired private UserRepository userRepository; @Override - protected Class getColumnFamilyClass() { + protected Class getEntityClass() { return UserEntity.class; } @@ -49,4 +53,19 @@ public class JpaUserDao extends JpaAbstractDao { protected JpaRepository getCrudRepository() { return userRepository; } + + @Override + public User findByEmail(String email) { + return DaoUtil.getData(userRepository.findByEmail(email)); + } + + @Override + public List findTenantAdmins(UUID tenantId, TextPageLink pageLink) { + return null; + } + + @Override + public List 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 51364c798b..a3bcfa6d1d 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 findByEmail(String email); + }