Showing
20 changed files
with
737 additions
and
265 deletions
@@ -22,15 +22,21 @@ import javax.persistence.Id; | @@ -22,15 +22,21 @@ import javax.persistence.Id; | ||
22 | import javax.persistence.Table; | 22 | import javax.persistence.Table; |
23 | import javax.persistence.Transient; | 23 | import javax.persistence.Transient; |
24 | import com.fasterxml.jackson.databind.JsonNode; | 24 | import com.fasterxml.jackson.databind.JsonNode; |
25 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
26 | +import lombok.Data; | ||
27 | +import lombok.extern.slf4j.Slf4j; | ||
25 | import org.thingsboard.server.common.data.AdminSettings; | 28 | import org.thingsboard.server.common.data.AdminSettings; |
26 | import org.thingsboard.server.common.data.id.AdminSettingsId; | 29 | import org.thingsboard.server.common.data.id.AdminSettingsId; |
27 | import org.thingsboard.server.dao.model.BaseEntity; | 30 | import org.thingsboard.server.dao.model.BaseEntity; |
28 | 31 | ||
32 | +import java.io.IOException; | ||
29 | import java.util.UUID; | 33 | import java.util.UUID; |
30 | 34 | ||
31 | import static org.thingsboard.server.dao.model.ModelConstants.*; | 35 | import static org.thingsboard.server.dao.model.ModelConstants.*; |
32 | 36 | ||
33 | -//@Entity | 37 | +@Data |
38 | +@Slf4j | ||
39 | +@Entity | ||
34 | @Table(name = ADMIN_SETTINGS_COLUMN_FAMILY_NAME) | 40 | @Table(name = ADMIN_SETTINGS_COLUMN_FAMILY_NAME) |
35 | public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { | 41 | public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { |
36 | 42 | ||
@@ -45,7 +51,7 @@ public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { | @@ -45,7 +51,7 @@ public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { | ||
45 | private String key; | 51 | private String key; |
46 | 52 | ||
47 | @Column(name = ADMIN_SETTINGS_JSON_VALUE_PROPERTY) | 53 | @Column(name = ADMIN_SETTINGS_JSON_VALUE_PROPERTY) |
48 | - private JsonNode jsonValue; | 54 | + private String jsonValue; |
49 | 55 | ||
50 | public AdminSettingsEntity() { | 56 | public AdminSettingsEntity() { |
51 | super(); | 57 | super(); |
@@ -56,33 +62,21 @@ public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { | @@ -56,33 +62,21 @@ public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { | ||
56 | this.id = adminSettings.getId().getId(); | 62 | this.id = adminSettings.getId().getId(); |
57 | } | 63 | } |
58 | this.key = adminSettings.getKey(); | 64 | this.key = adminSettings.getKey(); |
59 | - this.jsonValue = adminSettings.getJsonValue(); | 65 | + if (jsonValue != null) { |
66 | + this.jsonValue = adminSettings.getJsonValue().toString(); | ||
67 | + } | ||
60 | } | 68 | } |
61 | - | 69 | + |
70 | + @Override | ||
62 | public UUID getId() { | 71 | public UUID getId() { |
63 | return id; | 72 | return id; |
64 | } | 73 | } |
65 | 74 | ||
75 | + @Override | ||
66 | public void setId(UUID id) { | 76 | public void setId(UUID id) { |
67 | this.id = id; | 77 | this.id = id; |
68 | } | 78 | } |
69 | 79 | ||
70 | - public String getKey() { | ||
71 | - return key; | ||
72 | - } | ||
73 | - | ||
74 | - public void setKey(String key) { | ||
75 | - this.key = key; | ||
76 | - } | ||
77 | - | ||
78 | - public JsonNode getJsonValue() { | ||
79 | - return jsonValue; | ||
80 | - } | ||
81 | - | ||
82 | - public void setJsonValue(JsonNode jsonValue) { | ||
83 | - this.jsonValue = jsonValue; | ||
84 | - } | ||
85 | - | ||
86 | @Override | 80 | @Override |
87 | public int hashCode() { | 81 | public int hashCode() { |
88 | final int prime = 31; | 82 | final int prime = 31; |
@@ -138,7 +132,16 @@ public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { | @@ -138,7 +132,16 @@ public final class AdminSettingsEntity implements BaseEntity<AdminSettings> { | ||
138 | AdminSettings adminSettings = new AdminSettings(new AdminSettingsId(id)); | 132 | AdminSettings adminSettings = new AdminSettings(new AdminSettingsId(id)); |
139 | adminSettings.setCreatedTime(UUIDs.unixTimestamp(id)); | 133 | adminSettings.setCreatedTime(UUIDs.unixTimestamp(id)); |
140 | adminSettings.setKey(key); | 134 | adminSettings.setKey(key); |
141 | - adminSettings.setJsonValue(jsonValue); | 135 | + if (jsonValue != null) { |
136 | + ObjectMapper mapper = new ObjectMapper(); | ||
137 | + JsonNode jsonNode = null; | ||
138 | + try { | ||
139 | + jsonNode = mapper.readTree(jsonValue); | ||
140 | + adminSettings.setJsonValue(jsonNode); | ||
141 | + } catch (IOException e) { | ||
142 | + log.error(e.getMessage(), e); | ||
143 | + } | ||
144 | + } | ||
142 | return adminSettings; | 145 | return adminSettings; |
143 | } | 146 | } |
144 | 147 |
@@ -21,6 +21,9 @@ import javax.persistence.Id; | @@ -21,6 +21,9 @@ import javax.persistence.Id; | ||
21 | import javax.persistence.Table; | 21 | import javax.persistence.Table; |
22 | import javax.persistence.Transient; | 22 | import javax.persistence.Transient; |
23 | import com.fasterxml.jackson.databind.JsonNode; | 23 | import com.fasterxml.jackson.databind.JsonNode; |
24 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
25 | +import lombok.Data; | ||
26 | +import lombok.extern.slf4j.Slf4j; | ||
24 | import org.thingsboard.server.common.data.id.ComponentDescriptorId; | 27 | import org.thingsboard.server.common.data.id.ComponentDescriptorId; |
25 | import org.thingsboard.server.common.data.plugin.ComponentDescriptor; | 28 | import org.thingsboard.server.common.data.plugin.ComponentDescriptor; |
26 | import org.thingsboard.server.common.data.plugin.ComponentScope; | 29 | import org.thingsboard.server.common.data.plugin.ComponentScope; |
@@ -28,12 +31,12 @@ import org.thingsboard.server.common.data.plugin.ComponentType; | @@ -28,12 +31,12 @@ import org.thingsboard.server.common.data.plugin.ComponentType; | ||
28 | import org.thingsboard.server.dao.model.ModelConstants; | 31 | import org.thingsboard.server.dao.model.ModelConstants; |
29 | import org.thingsboard.server.dao.model.SearchTextEntity; | 32 | import org.thingsboard.server.dao.model.SearchTextEntity; |
30 | 33 | ||
34 | +import java.io.IOException; | ||
31 | import java.util.UUID; | 35 | import java.util.UUID; |
32 | 36 | ||
33 | -/** | ||
34 | - * @author Andrew Shvayka | ||
35 | - */ | ||
36 | -//@Entity | 37 | +@Data |
38 | +@Slf4j | ||
39 | +@Entity | ||
37 | @Table(name = ModelConstants.COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME) | 40 | @Table(name = ModelConstants.COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME) |
38 | public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDescriptor> { | 41 | public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDescriptor> { |
39 | 42 | ||
@@ -57,7 +60,7 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | @@ -57,7 +60,7 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | ||
57 | private String clazz; | 60 | private String clazz; |
58 | 61 | ||
59 | @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_CONFIGURATION_DESCRIPTOR_PROPERTY) | 62 | @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_CONFIGURATION_DESCRIPTOR_PROPERTY) |
60 | - private JsonNode configurationDescriptor; | 63 | + private String configurationDescriptor; |
61 | 64 | ||
62 | @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_ACTIONS_PROPERTY) | 65 | @Column(name = ModelConstants.COMPONENT_DESCRIPTOR_ACTIONS_PROPERTY) |
63 | private String actions; | 66 | private String actions; |
@@ -77,7 +80,9 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | @@ -77,7 +80,9 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | ||
77 | this.scope = component.getScope(); | 80 | this.scope = component.getScope(); |
78 | this.name = component.getName(); | 81 | this.name = component.getName(); |
79 | this.clazz = component.getClazz(); | 82 | this.clazz = component.getClazz(); |
80 | - this.configurationDescriptor = component.getConfigurationDescriptor(); | 83 | + if (configurationDescriptor != null) { |
84 | + this.configurationDescriptor = component.getConfigurationDescriptor().toString(); | ||
85 | + } | ||
81 | this.searchText = component.getName(); | 86 | this.searchText = component.getName(); |
82 | } | 87 | } |
83 | 88 | ||
@@ -89,7 +94,16 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | @@ -89,7 +94,16 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | ||
89 | data.setName(this.getName()); | 94 | data.setName(this.getName()); |
90 | data.setClazz(this.getClazz()); | 95 | data.setClazz(this.getClazz()); |
91 | data.setActions(this.getActions()); | 96 | data.setActions(this.getActions()); |
92 | - data.setConfigurationDescriptor(this.getConfigurationDescriptor()); | 97 | + if (configurationDescriptor != null) { |
98 | + ObjectMapper mapper = new ObjectMapper(); | ||
99 | + JsonNode jsonNode = null; | ||
100 | + try { | ||
101 | + jsonNode = mapper.readTree(configurationDescriptor); | ||
102 | + data.setConfigurationDescriptor(jsonNode); | ||
103 | + } catch (IOException e) { | ||
104 | + log.error(e.getMessage(), e); | ||
105 | + } | ||
106 | + } | ||
93 | return data; | 107 | return data; |
94 | } | 108 | } |
95 | 109 | ||
@@ -103,54 +117,6 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | @@ -103,54 +117,6 @@ public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDesc | ||
103 | this.id = id; | 117 | this.id = id; |
104 | } | 118 | } |
105 | 119 | ||
106 | - public String getActions() { | ||
107 | - return actions; | ||
108 | - } | ||
109 | - | ||
110 | - public void setActions(String actions) { | ||
111 | - this.actions = actions; | ||
112 | - } | ||
113 | - | ||
114 | - public ComponentType getType() { | ||
115 | - return type; | ||
116 | - } | ||
117 | - | ||
118 | - public void setType(ComponentType type) { | ||
119 | - this.type = type; | ||
120 | - } | ||
121 | - | ||
122 | - public ComponentScope getScope() { | ||
123 | - return scope; | ||
124 | - } | ||
125 | - | ||
126 | - public void setScope(ComponentScope scope) { | ||
127 | - this.scope = scope; | ||
128 | - } | ||
129 | - | ||
130 | - public String getName() { | ||
131 | - return name; | ||
132 | - } | ||
133 | - | ||
134 | - public void setName(String name) { | ||
135 | - this.name = name; | ||
136 | - } | ||
137 | - | ||
138 | - public String getClazz() { | ||
139 | - return clazz; | ||
140 | - } | ||
141 | - | ||
142 | - public void setClazz(String clazz) { | ||
143 | - this.clazz = clazz; | ||
144 | - } | ||
145 | - | ||
146 | - public JsonNode getConfigurationDescriptor() { | ||
147 | - return configurationDescriptor; | ||
148 | - } | ||
149 | - | ||
150 | - public void setConfigurationDescriptor(JsonNode configurationDescriptor) { | ||
151 | - this.configurationDescriptor = configurationDescriptor; | ||
152 | - } | ||
153 | - | ||
154 | public String getSearchText() { | 120 | public String getSearchText() { |
155 | return searchText; | 121 | return searchText; |
156 | } | 122 | } |
@@ -22,15 +22,21 @@ import javax.persistence.Id; | @@ -22,15 +22,21 @@ import javax.persistence.Id; | ||
22 | import javax.persistence.Table; | 22 | import javax.persistence.Table; |
23 | import javax.persistence.Transient; | 23 | import javax.persistence.Transient; |
24 | import com.fasterxml.jackson.databind.JsonNode; | 24 | import com.fasterxml.jackson.databind.JsonNode; |
25 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
26 | +import lombok.Data; | ||
27 | +import lombok.extern.slf4j.Slf4j; | ||
25 | import org.thingsboard.server.common.data.Customer; | 28 | import org.thingsboard.server.common.data.Customer; |
26 | import org.thingsboard.server.common.data.id.CustomerId; | 29 | import org.thingsboard.server.common.data.id.CustomerId; |
27 | import org.thingsboard.server.common.data.id.TenantId; | 30 | import org.thingsboard.server.common.data.id.TenantId; |
28 | import org.thingsboard.server.dao.model.ModelConstants; | 31 | import org.thingsboard.server.dao.model.ModelConstants; |
29 | import org.thingsboard.server.dao.model.SearchTextEntity; | 32 | import org.thingsboard.server.dao.model.SearchTextEntity; |
30 | 33 | ||
34 | +import java.io.IOException; | ||
31 | import java.util.UUID; | 35 | import java.util.UUID; |
32 | 36 | ||
33 | -//@Entity | 37 | +@Data |
38 | +@Slf4j | ||
39 | +@Entity | ||
34 | @Table(name = ModelConstants.CUSTOMER_COLUMN_FAMILY_NAME) | 40 | @Table(name = ModelConstants.CUSTOMER_COLUMN_FAMILY_NAME) |
35 | public final class CustomerEntity implements SearchTextEntity<Customer> { | 41 | public final class CustomerEntity implements SearchTextEntity<Customer> { |
36 | 42 | ||
@@ -75,7 +81,7 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | @@ -75,7 +81,7 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | ||
75 | private String email; | 81 | private String email; |
76 | 82 | ||
77 | @Column(name = ModelConstants.CUSTOMER_ADDITIONAL_INFO_PROPERTY) | 83 | @Column(name = ModelConstants.CUSTOMER_ADDITIONAL_INFO_PROPERTY) |
78 | - private JsonNode additionalInfo; | 84 | + private String additionalInfo; |
79 | 85 | ||
80 | public CustomerEntity() { | 86 | public CustomerEntity() { |
81 | super(); | 87 | super(); |
@@ -95,105 +101,21 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | @@ -95,105 +101,21 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | ||
95 | this.zip = customer.getZip(); | 101 | this.zip = customer.getZip(); |
96 | this.phone = customer.getPhone(); | 102 | this.phone = customer.getPhone(); |
97 | this.email = customer.getEmail(); | 103 | this.email = customer.getEmail(); |
98 | - this.additionalInfo = customer.getAdditionalInfo(); | 104 | + if (additionalInfo != null) { |
105 | + this.additionalInfo = customer.getAdditionalInfo().toString(); | ||
106 | + } | ||
99 | } | 107 | } |
100 | - | 108 | + |
109 | + @Override | ||
101 | public UUID getId() { | 110 | public UUID getId() { |
102 | return id; | 111 | return id; |
103 | } | 112 | } |
104 | 113 | ||
114 | + @Override | ||
105 | public void setId(UUID id) { | 115 | public void setId(UUID id) { |
106 | this.id = id; | 116 | this.id = id; |
107 | } | 117 | } |
108 | 118 | ||
109 | - public UUID getTenantId() { | ||
110 | - return tenantId; | ||
111 | - } | ||
112 | - | ||
113 | - public void setTenantId(UUID tenantId) { | ||
114 | - this.tenantId = tenantId; | ||
115 | - } | ||
116 | - | ||
117 | - public String getTitle() { | ||
118 | - return title; | ||
119 | - } | ||
120 | - | ||
121 | - public void setTitle(String title) { | ||
122 | - this.title = title; | ||
123 | - } | ||
124 | - | ||
125 | - public String getCountry() { | ||
126 | - return country; | ||
127 | - } | ||
128 | - | ||
129 | - public void setCountry(String country) { | ||
130 | - this.country = country; | ||
131 | - } | ||
132 | - | ||
133 | - public String getState() { | ||
134 | - return state; | ||
135 | - } | ||
136 | - | ||
137 | - public void setState(String state) { | ||
138 | - this.state = state; | ||
139 | - } | ||
140 | - | ||
141 | - public String getCity() { | ||
142 | - return city; | ||
143 | - } | ||
144 | - | ||
145 | - public void setCity(String city) { | ||
146 | - this.city = city; | ||
147 | - } | ||
148 | - | ||
149 | - public String getAddress() { | ||
150 | - return address; | ||
151 | - } | ||
152 | - | ||
153 | - public void setAddress(String address) { | ||
154 | - this.address = address; | ||
155 | - } | ||
156 | - | ||
157 | - public String getAddress2() { | ||
158 | - return address2; | ||
159 | - } | ||
160 | - | ||
161 | - public void setAddress2(String address2) { | ||
162 | - this.address2 = address2; | ||
163 | - } | ||
164 | - | ||
165 | - public String getZip() { | ||
166 | - return zip; | ||
167 | - } | ||
168 | - | ||
169 | - public void setZip(String zip) { | ||
170 | - this.zip = zip; | ||
171 | - } | ||
172 | - | ||
173 | - public String getPhone() { | ||
174 | - return phone; | ||
175 | - } | ||
176 | - | ||
177 | - public void setPhone(String phone) { | ||
178 | - this.phone = phone; | ||
179 | - } | ||
180 | - | ||
181 | - public String getEmail() { | ||
182 | - return email; | ||
183 | - } | ||
184 | - | ||
185 | - public void setEmail(String email) { | ||
186 | - this.email = email; | ||
187 | - } | ||
188 | - | ||
189 | - public JsonNode getAdditionalInfo() { | ||
190 | - return additionalInfo; | ||
191 | - } | ||
192 | - | ||
193 | - public void setAdditionalInfo(JsonNode additionalInfo) { | ||
194 | - this.additionalInfo = additionalInfo; | ||
195 | - } | ||
196 | - | ||
197 | @Override | 119 | @Override |
198 | public String getSearchTextSource() { | 120 | public String getSearchTextSource() { |
199 | return title; | 121 | return title; |
@@ -204,10 +126,6 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | @@ -204,10 +126,6 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | ||
204 | this.searchText = searchText; | 126 | this.searchText = searchText; |
205 | } | 127 | } |
206 | 128 | ||
207 | - public String getSearchText() { | ||
208 | - return searchText; | ||
209 | - } | ||
210 | - | ||
211 | @Override | 129 | @Override |
212 | public int hashCode() { | 130 | public int hashCode() { |
213 | final int prime = 31; | 131 | final int prime = 31; |
@@ -344,8 +262,15 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | @@ -344,8 +262,15 @@ public final class CustomerEntity implements SearchTextEntity<Customer> { | ||
344 | customer.setZip(zip); | 262 | customer.setZip(zip); |
345 | customer.setPhone(phone); | 263 | customer.setPhone(phone); |
346 | customer.setEmail(email); | 264 | customer.setEmail(email); |
347 | - customer.setAdditionalInfo(additionalInfo); | 265 | + if (additionalInfo != null) { |
266 | + ObjectMapper mapper = new ObjectMapper(); | ||
267 | + try { | ||
268 | + JsonNode jsonNode = mapper.readTree(additionalInfo); | ||
269 | + customer.setAdditionalInfo(jsonNode); | ||
270 | + } catch (IOException e) { | ||
271 | + log.error(e.getMessage(), e); | ||
272 | + } | ||
273 | + } | ||
348 | return customer; | 274 | return customer; |
349 | } | 275 | } |
350 | - | ||
351 | } | 276 | } |
@@ -22,6 +22,9 @@ import javax.persistence.Id; | @@ -22,6 +22,9 @@ import javax.persistence.Id; | ||
22 | import javax.persistence.Table; | 22 | import javax.persistence.Table; |
23 | import javax.persistence.Transient; | 23 | import javax.persistence.Transient; |
24 | import com.fasterxml.jackson.databind.JsonNode; | 24 | import com.fasterxml.jackson.databind.JsonNode; |
25 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
26 | +import lombok.Data; | ||
27 | +import lombok.extern.slf4j.Slf4j; | ||
25 | import org.thingsboard.server.common.data.Dashboard; | 28 | import org.thingsboard.server.common.data.Dashboard; |
26 | import org.thingsboard.server.common.data.id.CustomerId; | 29 | import org.thingsboard.server.common.data.id.CustomerId; |
27 | import org.thingsboard.server.common.data.id.DashboardId; | 30 | import org.thingsboard.server.common.data.id.DashboardId; |
@@ -29,9 +32,12 @@ import org.thingsboard.server.common.data.id.TenantId; | @@ -29,9 +32,12 @@ import org.thingsboard.server.common.data.id.TenantId; | ||
29 | import org.thingsboard.server.dao.model.ModelConstants; | 32 | import org.thingsboard.server.dao.model.ModelConstants; |
30 | import org.thingsboard.server.dao.model.SearchTextEntity; | 33 | import org.thingsboard.server.dao.model.SearchTextEntity; |
31 | 34 | ||
35 | +import java.io.IOException; | ||
32 | import java.util.UUID; | 36 | import java.util.UUID; |
33 | 37 | ||
34 | -//@Entity | 38 | +@Data |
39 | +@Slf4j | ||
40 | +@Entity | ||
35 | @Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME) | 41 | @Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME) |
36 | public final class DashboardEntity implements SearchTextEntity<Dashboard> { | 42 | public final class DashboardEntity implements SearchTextEntity<Dashboard> { |
37 | 43 | ||
@@ -55,7 +61,7 @@ public final class DashboardEntity implements SearchTextEntity<Dashboard> { | @@ -55,7 +61,7 @@ public final class DashboardEntity implements SearchTextEntity<Dashboard> { | ||
55 | private String searchText; | 61 | private String searchText; |
56 | 62 | ||
57 | @Column(name = ModelConstants.DASHBOARD_CONFIGURATION_PROPERTY) | 63 | @Column(name = ModelConstants.DASHBOARD_CONFIGURATION_PROPERTY) |
58 | - private JsonNode configuration; | 64 | + private String configuration; |
59 | 65 | ||
60 | public DashboardEntity() { | 66 | public DashboardEntity() { |
61 | super(); | 67 | super(); |
@@ -72,47 +78,18 @@ public final class DashboardEntity implements SearchTextEntity<Dashboard> { | @@ -72,47 +78,18 @@ public final class DashboardEntity implements SearchTextEntity<Dashboard> { | ||
72 | this.customerId = dashboard.getCustomerId().getId(); | 78 | this.customerId = dashboard.getCustomerId().getId(); |
73 | } | 79 | } |
74 | this.title = dashboard.getTitle(); | 80 | this.title = dashboard.getTitle(); |
75 | - this.configuration = dashboard.getConfiguration(); | 81 | + if (configuration != null) { |
82 | + this.configuration = dashboard.getConfiguration().toString(); | ||
83 | + } | ||
76 | } | 84 | } |
77 | - | 85 | + |
86 | + @Override | ||
78 | public UUID getId() { | 87 | public UUID getId() { |
79 | return id; | 88 | return id; |
80 | } | 89 | } |
81 | 90 | ||
91 | + @Override | ||
82 | public void setId(UUID id) { | 92 | public void setId(UUID id) { |
83 | - this.id = id; | ||
84 | - } | ||
85 | - | ||
86 | - public UUID getTenantId() { | ||
87 | - return tenantId; | ||
88 | - } | ||
89 | - | ||
90 | - public void setTenantId(UUID tenantId) { | ||
91 | - this.tenantId = tenantId; | ||
92 | - } | ||
93 | - | ||
94 | - public UUID getCustomerId() { | ||
95 | - return customerId; | ||
96 | - } | ||
97 | - | ||
98 | - public void setCustomerId(UUID customerId) { | ||
99 | - this.customerId = customerId; | ||
100 | - } | ||
101 | - | ||
102 | - public String getTitle() { | ||
103 | - return title; | ||
104 | - } | ||
105 | - | ||
106 | - public void setTitle(String title) { | ||
107 | - this.title = title; | ||
108 | - } | ||
109 | - | ||
110 | - public JsonNode getConfiguration() { | ||
111 | - return configuration; | ||
112 | - } | ||
113 | - | ||
114 | - public void setConfiguration(JsonNode configuration) { | ||
115 | - this.configuration = configuration; | ||
116 | } | 93 | } |
117 | 94 | ||
118 | @Override | 95 | @Override |
@@ -214,8 +191,16 @@ public final class DashboardEntity implements SearchTextEntity<Dashboard> { | @@ -214,8 +191,16 @@ public final class DashboardEntity implements SearchTextEntity<Dashboard> { | ||
214 | dashboard.setCustomerId(new CustomerId(customerId)); | 191 | dashboard.setCustomerId(new CustomerId(customerId)); |
215 | } | 192 | } |
216 | dashboard.setTitle(title); | 193 | dashboard.setTitle(title); |
217 | - dashboard.setConfiguration(configuration); | 194 | + if (configuration != null) { |
195 | + ObjectMapper mapper = new ObjectMapper(); | ||
196 | + JsonNode jsonNode = null; | ||
197 | + try { | ||
198 | + jsonNode = mapper.readTree(configuration); | ||
199 | + dashboard.setConfiguration(jsonNode); | ||
200 | + } catch (IOException e) { | ||
201 | + log.error(e.getMessage(), e); | ||
202 | + } | ||
203 | + } | ||
218 | return dashboard; | 204 | return dashboard; |
219 | } | 205 | } |
220 | - | ||
221 | } | 206 | } |
@@ -21,6 +21,8 @@ import javax.persistence.Entity; | @@ -21,6 +21,8 @@ import javax.persistence.Entity; | ||
21 | import javax.persistence.Id; | 21 | import javax.persistence.Id; |
22 | import javax.persistence.Table; | 22 | import javax.persistence.Table; |
23 | import javax.persistence.Transient; | 23 | import javax.persistence.Transient; |
24 | + | ||
25 | +import lombok.Data; | ||
24 | import org.thingsboard.server.common.data.DashboardInfo; | 26 | import org.thingsboard.server.common.data.DashboardInfo; |
25 | import org.thingsboard.server.common.data.id.CustomerId; | 27 | import org.thingsboard.server.common.data.id.CustomerId; |
26 | import org.thingsboard.server.common.data.id.DashboardId; | 28 | import org.thingsboard.server.common.data.id.DashboardId; |
@@ -30,7 +32,8 @@ import org.thingsboard.server.dao.model.SearchTextEntity; | @@ -30,7 +32,8 @@ import org.thingsboard.server.dao.model.SearchTextEntity; | ||
30 | 32 | ||
31 | import java.util.UUID; | 33 | import java.util.UUID; |
32 | 34 | ||
33 | -//@Entity | 35 | +@Data |
36 | +@Entity | ||
34 | @Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME) | 37 | @Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME) |
35 | public class DashboardInfoEntity implements SearchTextEntity<DashboardInfo> { | 38 | public class DashboardInfoEntity implements SearchTextEntity<DashboardInfo> { |
36 | 39 | ||
@@ -70,38 +73,6 @@ public class DashboardInfoEntity implements SearchTextEntity<DashboardInfo> { | @@ -70,38 +73,6 @@ public class DashboardInfoEntity implements SearchTextEntity<DashboardInfo> { | ||
70 | this.title = dashboardInfo.getTitle(); | 73 | this.title = dashboardInfo.getTitle(); |
71 | } | 74 | } |
72 | 75 | ||
73 | - public UUID getId() { | ||
74 | - return id; | ||
75 | - } | ||
76 | - | ||
77 | - public void setId(UUID id) { | ||
78 | - this.id = id; | ||
79 | - } | ||
80 | - | ||
81 | - public UUID getTenantId() { | ||
82 | - return tenantId; | ||
83 | - } | ||
84 | - | ||
85 | - public void setTenantId(UUID tenantId) { | ||
86 | - this.tenantId = tenantId; | ||
87 | - } | ||
88 | - | ||
89 | - public UUID getCustomerId() { | ||
90 | - return customerId; | ||
91 | - } | ||
92 | - | ||
93 | - public void setCustomerId(UUID customerId) { | ||
94 | - this.customerId = customerId; | ||
95 | - } | ||
96 | - | ||
97 | - public String getTitle() { | ||
98 | - return title; | ||
99 | - } | ||
100 | - | ||
101 | - public void setTitle(String title) { | ||
102 | - this.title = title; | ||
103 | - } | ||
104 | - | ||
105 | @Override | 76 | @Override |
106 | public String getSearchTextSource() { | 77 | public String getSearchTextSource() { |
107 | return title; | 78 | return title; |
dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java
0 → 100644
1 | +package org.thingsboard.server.dao.sql.component; | ||
2 | + | ||
3 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
4 | +import org.springframework.data.jpa.repository.Query; | ||
5 | +import org.springframework.data.repository.CrudRepository; | ||
6 | +import org.springframework.stereotype.Component; | ||
7 | +import org.thingsboard.server.common.data.plugin.ComponentScope; | ||
8 | +import org.thingsboard.server.common.data.plugin.ComponentType; | ||
9 | +import org.thingsboard.server.dao.model.ToData; | ||
10 | +import org.thingsboard.server.dao.model.sql.ComponentDescriptorEntity; | ||
11 | + | ||
12 | +import java.util.Collection; | ||
13 | +import java.util.List; | ||
14 | +import java.util.UUID; | ||
15 | + | ||
16 | +/** | ||
17 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
18 | + */ | ||
19 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
20 | +public interface ComponentDescriptorRepository extends CrudRepository<ComponentDescriptorEntity, UUID> { | ||
21 | + | ||
22 | + ComponentDescriptorEntity findByClazz(String clazz); | ||
23 | + | ||
24 | + @Query(nativeQuery = true, value = "SELECT * FROM COMPONENT_DESCRIPTOR WHERE TYPE = ?2 " + | ||
25 | + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " + | ||
26 | + "ORDER BY ID LIMIT ?1") | ||
27 | + List<ComponentDescriptorEntity> findByTypeFirstPage(int limit, int type, String textSearch); | ||
28 | + | ||
29 | + @Query(nativeQuery = true, value = "SELECT * FROM COMPONENT_DESCRIPTOR WHERE TYPE = ?2 " + | ||
30 | + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " + | ||
31 | + "AND ID > ?4 ORDER BY ID LIMIT ?1") | ||
32 | + List<ComponentDescriptorEntity> findByTypeNextPage(int limit, int type, String textSearch, UUID idOffset); | ||
33 | + | ||
34 | + @Query(nativeQuery = true, value = "SELECT * FROM COMPONENT_DESCRIPTOR WHERE TYPE = ?2 " + | ||
35 | + "AND SCOPE = ?3 AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?4, '%')) " + | ||
36 | + "ORDER BY ID LIMIT ?1") | ||
37 | + List<ComponentDescriptorEntity> findByScopeAndTypeFirstPage(int limit, int type, int scope, String textSearch); | ||
38 | + | ||
39 | + @Query(nativeQuery = true, value = "SELECT * FROM COMPONENT_DESCRIPTOR WHERE TYPE = ?2 " + | ||
40 | + "AND SCOPE = ?3 AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?4, '%')) " + | ||
41 | + "AND ID > ?5 ORDER BY ID LIMIT ?1") | ||
42 | + List<ComponentDescriptorEntity> findByScopeAndTypeNextPage(int limit, int type, int scope, String textSearch, UUID idOffset); | ||
43 | + | ||
44 | + void deleteByClazz(String clazz); | ||
45 | +} |
dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java
0 → 100644
1 | +package org.thingsboard.server.dao.sql.component; | ||
2 | + | ||
3 | +import org.springframework.beans.factory.annotation.Autowired; | ||
4 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
5 | +import org.springframework.data.repository.CrudRepository; | ||
6 | +import org.springframework.stereotype.Component; | ||
7 | +import org.thingsboard.server.common.data.id.ComponentDescriptorId; | ||
8 | +import org.thingsboard.server.common.data.page.TextPageLink; | ||
9 | +import org.thingsboard.server.common.data.plugin.ComponentDescriptor; | ||
10 | +import org.thingsboard.server.common.data.plugin.ComponentScope; | ||
11 | +import org.thingsboard.server.common.data.plugin.ComponentType; | ||
12 | +import org.thingsboard.server.dao.DaoUtil; | ||
13 | +import org.thingsboard.server.dao.component.ComponentDescriptorDao; | ||
14 | +import org.thingsboard.server.dao.model.ModelConstants; | ||
15 | +import org.thingsboard.server.dao.model.sql.ComponentDescriptorEntity; | ||
16 | +import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; | ||
17 | + | ||
18 | +import java.util.List; | ||
19 | +import java.util.Optional; | ||
20 | +import java.util.UUID; | ||
21 | + | ||
22 | +/** | ||
23 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
24 | + */ | ||
25 | +@Component | ||
26 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
27 | +public class JpaBaseComponentDescriptorDao extends JpaAbstractSearchTextDao<ComponentDescriptorEntity, ComponentDescriptor> | ||
28 | + implements ComponentDescriptorDao { | ||
29 | + | ||
30 | + @Autowired | ||
31 | + private ComponentDescriptorRepository componentDescriptorRepository; | ||
32 | + | ||
33 | + @Override | ||
34 | + protected Class<ComponentDescriptorEntity> getEntityClass() { | ||
35 | + return ComponentDescriptorEntity.class; | ||
36 | + } | ||
37 | + | ||
38 | + @Override | ||
39 | + protected String getColumnFamilyName() { | ||
40 | + return ModelConstants.COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME; | ||
41 | + } | ||
42 | + | ||
43 | + @Override | ||
44 | + protected CrudRepository<ComponentDescriptorEntity, UUID> getCrudRepository() { | ||
45 | + return componentDescriptorRepository; | ||
46 | + } | ||
47 | + | ||
48 | + @Override | ||
49 | + public Optional<ComponentDescriptor> saveIfNotExist(ComponentDescriptor component) { | ||
50 | + boolean exists = componentDescriptorRepository.findOne(component.getId().getId()) != null; | ||
51 | + if (exists) { | ||
52 | + return Optional.empty(); | ||
53 | + } | ||
54 | + return Optional.of(save(component)); | ||
55 | + } | ||
56 | + | ||
57 | + @Override | ||
58 | + public ComponentDescriptor findById(ComponentDescriptorId componentId) { | ||
59 | + return findById(componentId.getId()); | ||
60 | + } | ||
61 | + | ||
62 | + @Override | ||
63 | + public ComponentDescriptor findByClazz(String clazz) { | ||
64 | + return DaoUtil.getData(componentDescriptorRepository.findByClazz(clazz)); | ||
65 | + } | ||
66 | + | ||
67 | + @Override | ||
68 | + public List<ComponentDescriptor> findByTypeAndPageLink(ComponentType type, TextPageLink pageLink) { | ||
69 | + if (pageLink.getIdOffset() == null) { | ||
70 | + return DaoUtil.convertDataList(componentDescriptorRepository.findByTypeFirstPage(pageLink.getLimit(), | ||
71 | + type.ordinal(), pageLink.getTextSearch())); | ||
72 | + } else { | ||
73 | + return DaoUtil.convertDataList(componentDescriptorRepository.findByTypeNextPage(pageLink.getLimit(), | ||
74 | + type.ordinal(), pageLink.getTextSearch(), pageLink.getIdOffset())); | ||
75 | + } | ||
76 | + } | ||
77 | + | ||
78 | + @Override | ||
79 | + public List<ComponentDescriptor> findByScopeAndTypeAndPageLink(ComponentScope scope, ComponentType type, TextPageLink pageLink) { | ||
80 | + if (pageLink.getIdOffset() == null) { | ||
81 | + return DaoUtil.convertDataList(componentDescriptorRepository.findByScopeAndTypeFirstPage(pageLink.getLimit(), | ||
82 | + type.ordinal(), scope.ordinal(), pageLink.getTextSearch())); | ||
83 | + } else { | ||
84 | + return DaoUtil.convertDataList(componentDescriptorRepository.findByScopeAndTypeNextPage(pageLink.getLimit(), | ||
85 | + type.ordinal(), scope.ordinal(), pageLink.getTextSearch(), pageLink.getIdOffset())); | ||
86 | + } | ||
87 | + } | ||
88 | + | ||
89 | + @Override | ||
90 | + public void deleteById(ComponentDescriptorId componentId) { | ||
91 | + removeById(componentId.getId()); | ||
92 | + } | ||
93 | + | ||
94 | + @Override | ||
95 | + public void deleteByClazz(String clazz) { | ||
96 | + componentDescriptorRepository.deleteByClazz(clazz); | ||
97 | + } | ||
98 | +} |
1 | +package org.thingsboard.server.dao.sql.customer; | ||
2 | + | ||
3 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
4 | +import org.springframework.data.jpa.repository.Query; | ||
5 | +import org.springframework.data.repository.CrudRepository; | ||
6 | +import org.thingsboard.server.common.data.Customer; | ||
7 | +import org.thingsboard.server.dao.model.sql.CustomerEntity; | ||
8 | + | ||
9 | +import java.util.List; | ||
10 | +import java.util.UUID; | ||
11 | + | ||
12 | +/** | ||
13 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
14 | + */ | ||
15 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
16 | +public interface CustomerRepository extends CrudRepository<CustomerEntity, UUID> { | ||
17 | + | ||
18 | + @Query(nativeQuery = true, value = "SELECT * FROM CUSTOMER WHERE TENANT_ID = ?2 " + | ||
19 | + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " + | ||
20 | + "ORDER BY ID LIMIT ?1") | ||
21 | + List<CustomerEntity> findByTenantIdFirstPage(int limit, UUID tenantId, String textSearch); | ||
22 | + | ||
23 | + @Query(nativeQuery = true, value = "SELECT * FROM CUSTOMER WHERE TENANT_ID = ?2 " + | ||
24 | + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " + | ||
25 | + "AND ID > ?4 ORDER BY ID LIMIT ?1") | ||
26 | + List<CustomerEntity> findByTenantIdNextPage(int limit, UUID tenantId, String textSearch, UUID idOffset); | ||
27 | + | ||
28 | + @Query(nativeQuery = true, value = "SELECT * FROM CUSTOMER WHERE TENANT_ID = ?1") | ||
29 | + List<CustomerEntity> findByTenantId(UUID tenantId); | ||
30 | +} |
1 | +package org.thingsboard.server.dao.sql.customer; | ||
2 | + | ||
3 | +import org.springframework.beans.factory.annotation.Autowired; | ||
4 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
5 | +import org.springframework.data.repository.CrudRepository; | ||
6 | +import org.springframework.stereotype.Component; | ||
7 | +import org.thingsboard.server.common.data.Customer; | ||
8 | +import org.thingsboard.server.common.data.page.TextPageLink; | ||
9 | +import org.thingsboard.server.dao.DaoUtil; | ||
10 | +import org.thingsboard.server.dao.customer.CustomerDao; | ||
11 | +import org.thingsboard.server.dao.model.ModelConstants; | ||
12 | +import org.thingsboard.server.dao.model.sql.CustomerEntity; | ||
13 | +import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; | ||
14 | + | ||
15 | +import java.util.List; | ||
16 | +import java.util.UUID; | ||
17 | + | ||
18 | +/** | ||
19 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
20 | + */ | ||
21 | +@Component | ||
22 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
23 | +public class JpaCustomerDao extends JpaAbstractSearchTextDao<CustomerEntity, Customer> implements CustomerDao{ | ||
24 | + | ||
25 | + @Autowired | ||
26 | + private CustomerRepository customerRepository; | ||
27 | + | ||
28 | + @Override | ||
29 | + protected Class<CustomerEntity> getEntityClass() { | ||
30 | + return CustomerEntity.class; | ||
31 | + } | ||
32 | + | ||
33 | + @Override | ||
34 | + protected String getColumnFamilyName() { | ||
35 | + return ModelConstants.CUSTOMER_COLUMN_FAMILY_NAME; | ||
36 | + } | ||
37 | + | ||
38 | + @Override | ||
39 | + protected CrudRepository<CustomerEntity, UUID> getCrudRepository() { | ||
40 | + return customerRepository; | ||
41 | + } | ||
42 | + | ||
43 | + @Override | ||
44 | + public List<Customer> findCustomersByTenantId(UUID tenantId, TextPageLink pageLink) { | ||
45 | + if (pageLink.getIdOffset() == null) { | ||
46 | + return DaoUtil.convertDataList(customerRepository.findByTenantIdFirstPage(pageLink.getLimit(), tenantId, pageLink.getTextSearch())); | ||
47 | + } else { | ||
48 | + return DaoUtil.convertDataList(customerRepository.findByTenantIdNextPage(pageLink.getLimit(), tenantId, | ||
49 | + pageLink.getTextSearch(), pageLink.getIdOffset())); | ||
50 | + } | ||
51 | + } | ||
52 | +} |
1 | +package org.thingsboard.server.dao.sql.dashboard; | ||
2 | + | ||
3 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
4 | +import org.springframework.data.jpa.repository.Query; | ||
5 | +import org.springframework.data.repository.CrudRepository; | ||
6 | +import org.thingsboard.server.dao.model.sql.DashboardInfoEntity; | ||
7 | + | ||
8 | +import java.util.List; | ||
9 | +import java.util.UUID; | ||
10 | + | ||
11 | +/** | ||
12 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
13 | + */ | ||
14 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
15 | +public interface DashboardInfoRepository extends CrudRepository<DashboardInfoEntity, UUID> { | ||
16 | + | ||
17 | + @Query(nativeQuery = true, value = "SELECT * FROM DASHBOARD WHERE TENANT_ID = ?2 " + | ||
18 | + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " + | ||
19 | + "ORDER BY ID LIMIT ?1") | ||
20 | + List<DashboardInfoEntity> findByTenantIdFirstPage(int limit, UUID tenantId, String textSearch); | ||
21 | + | ||
22 | + @Query(nativeQuery = true, value = "SELECT * FROM DASHBOARD WHERE TENANT_ID = ?2 " + | ||
23 | + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " + | ||
24 | + "AND ID > ?4 ORDER BY ID LIMIT ?1") | ||
25 | + List<DashboardInfoEntity> findByTenantIdNextPage(int limit, UUID tenantId, String textSearch, UUID idOffset); | ||
26 | + | ||
27 | + @Query(nativeQuery = true, value = "SELECT * FROM DASHBOARD WHERE TENANT_ID = ?2 " + | ||
28 | + "AND CUSTOMER_ID = ?3 AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?4, '%')) " + | ||
29 | + "ORDER BY ID LIMIT ?1") | ||
30 | + List<DashboardInfoEntity> findByTenantIdAndCustomerIdFirstPage(int limit, UUID tenantId, UUID customerId, String textSearch); | ||
31 | + | ||
32 | + @Query(nativeQuery = true, value = "SELECT * FROM DASHBOARD WHERE TENANT_ID = ?2 " + | ||
33 | + "AND CUSTOMER_ID = ?3 AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?4, '%')) " + | ||
34 | + "AND ID > ?5 ORDER BY ID LIMIT ?1") | ||
35 | + List<DashboardInfoEntity> findByTenantIdAndCustomerIdNextPage(int limit, UUID tenantId, UUID customerId, String textSearch, UUID idOffset); | ||
36 | +} |
1 | +package org.thingsboard.server.dao.sql.dashboard; | ||
2 | + | ||
3 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
4 | +import org.springframework.data.repository.CrudRepository; | ||
5 | +import org.thingsboard.server.dao.model.sql.DashboardEntity; | ||
6 | + | ||
7 | +import java.util.UUID; | ||
8 | + | ||
9 | +/** | ||
10 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
11 | + */ | ||
12 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
13 | +public interface DashboardRepository extends CrudRepository<DashboardEntity, UUID> { | ||
14 | +} |
1 | +package org.thingsboard.server.dao.sql.dashboard; | ||
2 | + | ||
3 | +import org.springframework.beans.factory.annotation.Autowired; | ||
4 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
5 | +import org.springframework.data.repository.CrudRepository; | ||
6 | +import org.springframework.stereotype.Component; | ||
7 | +import org.thingsboard.server.common.data.Dashboard; | ||
8 | +import org.thingsboard.server.dao.dashboard.DashboardDao; | ||
9 | +import org.thingsboard.server.dao.model.sql.DashboardEntity; | ||
10 | +import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; | ||
11 | + | ||
12 | +import java.util.UUID; | ||
13 | + | ||
14 | +import static org.thingsboard.server.dao.model.ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME; | ||
15 | + | ||
16 | +/** | ||
17 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
18 | + */ | ||
19 | +@Component | ||
20 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
21 | +public class JpaDashboardDao extends JpaAbstractSearchTextDao<DashboardEntity, Dashboard> implements DashboardDao { | ||
22 | + | ||
23 | + @Autowired | ||
24 | + DashboardRepository dashboardRepository; | ||
25 | + | ||
26 | + @Override | ||
27 | + protected Class<DashboardEntity> getEntityClass() { | ||
28 | + return DashboardEntity.class; | ||
29 | + } | ||
30 | + | ||
31 | + @Override | ||
32 | + protected String getColumnFamilyName() { | ||
33 | + return DASHBOARD_COLUMN_FAMILY_NAME; | ||
34 | + } | ||
35 | + | ||
36 | + @Override | ||
37 | + protected CrudRepository<DashboardEntity, UUID> getCrudRepository() { | ||
38 | + return dashboardRepository; | ||
39 | + } | ||
40 | +} |
1 | +package org.thingsboard.server.dao.sql.dashboard; | ||
2 | + | ||
3 | +import org.springframework.beans.factory.annotation.Autowired; | ||
4 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
5 | +import org.springframework.data.repository.CrudRepository; | ||
6 | +import org.springframework.stereotype.Component; | ||
7 | +import org.thingsboard.server.common.data.DashboardInfo; | ||
8 | +import org.thingsboard.server.common.data.page.TextPageLink; | ||
9 | +import org.thingsboard.server.dao.DaoUtil; | ||
10 | +import org.thingsboard.server.dao.dashboard.DashboardInfoDao; | ||
11 | +import org.thingsboard.server.dao.model.sql.DashboardInfoEntity; | ||
12 | +import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; | ||
13 | + | ||
14 | +import java.util.List; | ||
15 | +import java.util.UUID; | ||
16 | + | ||
17 | +import static org.thingsboard.server.dao.model.ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME; | ||
18 | + | ||
19 | +/** | ||
20 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
21 | + */ | ||
22 | +@Component | ||
23 | +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) | ||
24 | +public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao<DashboardInfoEntity, DashboardInfo> implements DashboardInfoDao { | ||
25 | + | ||
26 | + @Autowired | ||
27 | + private DashboardInfoRepository dashboardInfoRepository; | ||
28 | + | ||
29 | + @Override | ||
30 | + protected Class getEntityClass() { | ||
31 | + return DashboardInfoEntity.class; | ||
32 | + } | ||
33 | + | ||
34 | + @Override | ||
35 | + protected String getColumnFamilyName() { | ||
36 | + return DASHBOARD_COLUMN_FAMILY_NAME; | ||
37 | + } | ||
38 | + | ||
39 | + @Override | ||
40 | + protected CrudRepository getCrudRepository() { | ||
41 | + return dashboardInfoRepository; | ||
42 | + } | ||
43 | + | ||
44 | + @Override | ||
45 | + public List<DashboardInfo> findDashboardsByTenantId(UUID tenantId, TextPageLink pageLink) { | ||
46 | + if (pageLink.getIdOffset() == null) { | ||
47 | + return DaoUtil.convertDataList(dashboardInfoRepository.findByTenantIdFirstPage( | ||
48 | + pageLink.getLimit(), tenantId, pageLink.getTextSearch())); | ||
49 | + } else { | ||
50 | + return DaoUtil.convertDataList(dashboardInfoRepository.findByTenantIdNextPage( | ||
51 | + pageLink.getLimit(), tenantId, pageLink.getTextSearch(), pageLink.getIdOffset())); | ||
52 | + } | ||
53 | + } | ||
54 | + | ||
55 | + @Override | ||
56 | + public List<DashboardInfo> findDashboardsByTenantIdAndCustomerId(UUID tenantId, UUID customerId, TextPageLink pageLink) { | ||
57 | + if (pageLink.getIdOffset() == null) { | ||
58 | + return DaoUtil.convertDataList(dashboardInfoRepository.findByTenantIdAndCustomerIdFirstPage( | ||
59 | + pageLink.getLimit(), tenantId, customerId, pageLink.getTextSearch())); | ||
60 | + } else { | ||
61 | + return DaoUtil.convertDataList(dashboardInfoRepository.findByTenantIdAndCustomerIdNextPage( | ||
62 | + pageLink.getLimit(), tenantId, customerId, pageLink.getTextSearch(), pageLink.getIdOffset())); | ||
63 | + } | ||
64 | + } | ||
65 | +} |
1 | +package org.thingsboard.server.dao.sql.settings; | ||
2 | + | ||
3 | +import org.springframework.data.repository.CrudRepository; | ||
4 | +import org.thingsboard.server.dao.model.ToData; | ||
5 | +import org.thingsboard.server.dao.model.sql.AdminSettingsEntity; | ||
6 | + | ||
7 | +import java.util.UUID; | ||
8 | + | ||
9 | +/** | ||
10 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
11 | + */ | ||
12 | +public interface AdminSettingsRepository extends CrudRepository<AdminSettingsEntity, UUID> { | ||
13 | + | ||
14 | + AdminSettingsEntity findByKey(String key); | ||
15 | +} |
1 | +package org.thingsboard.server.dao.sql.settings; | ||
2 | + | ||
3 | +import org.springframework.beans.factory.annotation.Autowired; | ||
4 | +import org.springframework.data.repository.CrudRepository; | ||
5 | +import org.thingsboard.server.common.data.AdminSettings; | ||
6 | +import org.thingsboard.server.dao.DaoUtil; | ||
7 | +import org.thingsboard.server.dao.model.sql.AdminSettingsEntity; | ||
8 | +import org.thingsboard.server.dao.settings.AdminSettingsDao; | ||
9 | +import org.thingsboard.server.dao.sql.JpaAbstractDao; | ||
10 | + | ||
11 | +import java.util.UUID; | ||
12 | + | ||
13 | +import static org.thingsboard.server.dao.model.ModelConstants.ADMIN_SETTINGS_COLUMN_FAMILY_NAME; | ||
14 | + | ||
15 | +/** | ||
16 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
17 | + */ | ||
18 | +public class JpaAdminSettingsDao extends JpaAbstractDao<AdminSettingsEntity, AdminSettings> implements AdminSettingsDao{ | ||
19 | + | ||
20 | + @Autowired | ||
21 | + private AdminSettingsRepository adminSettingsRepository; | ||
22 | + | ||
23 | + @Override | ||
24 | + protected Class<AdminSettingsEntity> getEntityClass() { | ||
25 | + return AdminSettingsEntity.class; | ||
26 | + } | ||
27 | + | ||
28 | + @Override | ||
29 | + protected String getColumnFamilyName() { | ||
30 | + return ADMIN_SETTINGS_COLUMN_FAMILY_NAME; | ||
31 | + } | ||
32 | + | ||
33 | + @Override | ||
34 | + protected CrudRepository<AdminSettingsEntity, UUID> getCrudRepository() { | ||
35 | + return adminSettingsRepository; | ||
36 | + } | ||
37 | + | ||
38 | + @Override | ||
39 | + public AdminSettings findByKey(String key) { | ||
40 | + return DaoUtil.getData(adminSettingsRepository.findByKey(key)); | ||
41 | + } | ||
42 | +} |
dao/src/test/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDaoTest.java
0 → 100644
1 | +package org.thingsboard.server.dao.sql.component; | ||
2 | + | ||
3 | +import com.datastax.driver.core.utils.UUIDs; | ||
4 | +import org.junit.Test; | ||
5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
6 | +import org.thingsboard.server.common.data.Customer; | ||
7 | +import org.thingsboard.server.common.data.id.ComponentDescriptorId; | ||
8 | +import org.thingsboard.server.common.data.page.TextPageLink; | ||
9 | +import org.thingsboard.server.common.data.plugin.ComponentDescriptor; | ||
10 | +import org.thingsboard.server.common.data.plugin.ComponentScope; | ||
11 | +import org.thingsboard.server.common.data.plugin.ComponentType; | ||
12 | +import org.thingsboard.server.dao.AbstractJpaDaoTest; | ||
13 | +import org.thingsboard.server.dao.component.ComponentDescriptorDao; | ||
14 | + | ||
15 | +import java.util.List; | ||
16 | + | ||
17 | +import static org.junit.Assert.assertEquals; | ||
18 | + | ||
19 | +/** | ||
20 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
21 | + */ | ||
22 | +public class JpaBaseComponentDescriptorDaoTest extends AbstractJpaDaoTest { | ||
23 | + | ||
24 | + @Autowired | ||
25 | + private ComponentDescriptorDao componentDescriptorDao; | ||
26 | + | ||
27 | + @Test | ||
28 | + public void findByType() { | ||
29 | + for (int i = 0; i < 20; i++) { | ||
30 | + createComponentDescriptor(ComponentType.PLUGIN, ComponentScope.SYSTEM, i); | ||
31 | + createComponentDescriptor(ComponentType.ACTION, ComponentScope.TENANT, i + 20); | ||
32 | + } | ||
33 | + | ||
34 | + TextPageLink pageLink1 = new TextPageLink(15, "COMPONENT_"); | ||
35 | + List<ComponentDescriptor> components1 = componentDescriptorDao.findByTypeAndPageLink(ComponentType.PLUGIN, pageLink1); | ||
36 | + assertEquals(15, components1.size()); | ||
37 | + | ||
38 | + TextPageLink pageLink2 = new TextPageLink(15, "COMPONENT_", components1.get(14).getId().getId(), null); | ||
39 | + List<ComponentDescriptor> components2 = componentDescriptorDao.findByTypeAndPageLink(ComponentType.PLUGIN, pageLink2); | ||
40 | + assertEquals(5, components2.size()); | ||
41 | + } | ||
42 | + | ||
43 | + @Test | ||
44 | + public void findByTypeAndSocpe() { | ||
45 | + for (int i = 0; i < 20; i++) { | ||
46 | + createComponentDescriptor(ComponentType.PLUGIN, ComponentScope.SYSTEM, i); | ||
47 | + createComponentDescriptor(ComponentType.ACTION, ComponentScope.TENANT, i + 20); | ||
48 | + createComponentDescriptor(ComponentType.FILTER, ComponentScope.SYSTEM, i + 40); | ||
49 | + } | ||
50 | + | ||
51 | + TextPageLink pageLink1 = new TextPageLink(15, "COMPONENT_"); | ||
52 | + List<ComponentDescriptor> components1 = componentDescriptorDao.findByScopeAndTypeAndPageLink( | ||
53 | + ComponentScope.SYSTEM, ComponentType.FILTER, pageLink1); | ||
54 | + assertEquals(15, components1.size()); | ||
55 | + | ||
56 | + TextPageLink pageLink2 = new TextPageLink(15, "COMPONENT_", components1.get(14).getId().getId(), null); | ||
57 | + List<ComponentDescriptor> components2 = componentDescriptorDao.findByScopeAndTypeAndPageLink( | ||
58 | + ComponentScope.SYSTEM, ComponentType.FILTER, pageLink2); | ||
59 | + assertEquals(5, components2.size()); | ||
60 | + } | ||
61 | + | ||
62 | + private void createComponentDescriptor(ComponentType type, ComponentScope scope, int index) { | ||
63 | + ComponentDescriptor component = new ComponentDescriptor(); | ||
64 | + component.setId(new ComponentDescriptorId(UUIDs.timeBased())); | ||
65 | + component.setType(type); | ||
66 | + component.setScope(scope); | ||
67 | + component.setName("COMPONENT_" + index); | ||
68 | + componentDescriptorDao.save(component); | ||
69 | + } | ||
70 | + | ||
71 | +} |
1 | +package org.thingsboard.server.dao.sql.customer; | ||
2 | + | ||
3 | +import com.datastax.driver.core.utils.UUIDs; | ||
4 | +import org.junit.Test; | ||
5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
6 | +import org.thingsboard.server.common.data.Customer; | ||
7 | +import org.thingsboard.server.common.data.id.CustomerId; | ||
8 | +import org.thingsboard.server.common.data.id.TenantId; | ||
9 | +import org.thingsboard.server.common.data.page.TextPageLink; | ||
10 | +import org.thingsboard.server.dao.AbstractJpaDaoTest; | ||
11 | +import org.thingsboard.server.dao.customer.CustomerDao; | ||
12 | + | ||
13 | +import java.util.List; | ||
14 | +import java.util.UUID; | ||
15 | + | ||
16 | +import static org.junit.Assert.assertEquals; | ||
17 | + | ||
18 | +/** | ||
19 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
20 | + */ | ||
21 | +public class JpaCustomerDaoTest extends AbstractJpaDaoTest { | ||
22 | + | ||
23 | + @Autowired | ||
24 | + private CustomerDao customerDao; | ||
25 | + | ||
26 | + @Test | ||
27 | + public void testFindByTenantId() { | ||
28 | + UUID tenantId1 = UUIDs.timeBased(); | ||
29 | + UUID tenantId2 = UUIDs.timeBased(); | ||
30 | + | ||
31 | + for (int i = 0; i < 20; i++) { | ||
32 | + createCustomer(tenantId1, i); | ||
33 | + createCustomer(tenantId2, i * 2); | ||
34 | + } | ||
35 | + | ||
36 | + TextPageLink pageLink1 = new TextPageLink(15, "CUSTOMER"); | ||
37 | + List<Customer> customers1 = customerDao.findCustomersByTenantId(tenantId1, pageLink1); | ||
38 | + assertEquals(15, customers1.size()); | ||
39 | + | ||
40 | + TextPageLink pageLink2 = new TextPageLink(15, "CUSTOMER", customers1.get(14).getId().getId(), null); | ||
41 | + List<Customer> customers2 = customerDao.findCustomersByTenantId(tenantId1, pageLink2); | ||
42 | + assertEquals(5, customers2.size()); | ||
43 | + } | ||
44 | + | ||
45 | + private void createCustomer(UUID tenantId, int index) { | ||
46 | + Customer customer = new Customer(); | ||
47 | + customer.setId(new CustomerId(UUIDs.timeBased())); | ||
48 | + customer.setTenantId(new TenantId(tenantId)); | ||
49 | + customer.setTitle("CUSTOMER_" + index); | ||
50 | + customerDao.save(customer); | ||
51 | + } | ||
52 | +} |
1 | +package org.thingsboard.server.dao.sql.dashboard; | ||
2 | + | ||
3 | +import com.datastax.driver.core.utils.UUIDs; | ||
4 | +import org.junit.Test; | ||
5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
6 | +import org.thingsboard.server.common.data.DashboardInfo; | ||
7 | +import org.thingsboard.server.common.data.id.CustomerId; | ||
8 | +import org.thingsboard.server.common.data.id.DashboardId; | ||
9 | +import org.thingsboard.server.common.data.id.TenantId; | ||
10 | +import org.thingsboard.server.common.data.page.TextPageLink; | ||
11 | +import org.thingsboard.server.dao.AbstractJpaDaoTest; | ||
12 | +import org.thingsboard.server.dao.dashboard.DashboardInfoDao; | ||
13 | + | ||
14 | +import java.util.List; | ||
15 | +import java.util.UUID; | ||
16 | + | ||
17 | +/** | ||
18 | + * Created by Valerii Sosliuk on 5/6/2017. | ||
19 | + */ | ||
20 | +public class JpaDashboardInfoDaoTest extends AbstractJpaDaoTest { | ||
21 | + | ||
22 | + @Autowired | ||
23 | + private DashboardInfoDao dashboardInfoDao; | ||
24 | + | ||
25 | + @Test | ||
26 | + public void testFindDashboardsByTenantId() { | ||
27 | + UUID tenantId1 = UUIDs.timeBased(); | ||
28 | + UUID customerId1 = UUIDs.timeBased(); | ||
29 | + UUID tenantId2 = UUIDs.timeBased(); | ||
30 | + UUID customerId2 = UUIDs.timeBased(); | ||
31 | + | ||
32 | + for (int i = 0; i < 20; i++) { | ||
33 | + createDashboard(tenantId1, customerId1, i); | ||
34 | + createDashboard(tenantId2, customerId2, i * 2); | ||
35 | + } | ||
36 | + | ||
37 | + TextPageLink pageLink1 = new TextPageLink(15, "DASHBOARD"); | ||
38 | + List<DashboardInfo> dashboardInfos1 = dashboardInfoDao.findDashboardsByTenantId(tenantId1, pageLink1); | ||
39 | + assertEquals(15, dashboardInfos1.size()); | ||
40 | + | ||
41 | + TextPageLink pageLink2 = new TextPageLink(15, "DASHBOARD", dashboardInfos1.get(14).getId().getId(), null); | ||
42 | + List<DashboardInfo> dashboardInfos2 = dashboardInfoDao.findDashboardsByTenantId(tenantId1, pageLink2); | ||
43 | + assertEquals(5, dashboardInfos2.size()); | ||
44 | + } | ||
45 | + | ||
46 | + @Test | ||
47 | + public void testFindDashboardsByTenantAndCustomerId() { | ||
48 | + UUID tenantId1 = UUIDs.timeBased(); | ||
49 | + UUID customerId1 = UUIDs.timeBased(); | ||
50 | + UUID tenantId2 = UUIDs.timeBased(); | ||
51 | + UUID customerId2 = UUIDs.timeBased(); | ||
52 | + | ||
53 | + for (int i = 0; i < 20; i++) { | ||
54 | + createDashboard(tenantId1, customerId1, i); | ||
55 | + createDashboard(tenantId2, customerId2, i * 2); | ||
56 | + } | ||
57 | + | ||
58 | + TextPageLink pageLink1 = new TextPageLink(15, "DASHBOARD"); | ||
59 | + List<DashboardInfo> dashboardInfos1 = dashboardInfoDao.findDashboardsByTenantIdAndCustomerId(tenantId1, customerId1, pageLink1); | ||
60 | + assertEquals(15, dashboardInfos1.size()); | ||
61 | + | ||
62 | + TextPageLink pageLink2 = new TextPageLink(15, "DASHBOARD", dashboardInfos1.get(14).getId().getId(), null); | ||
63 | + List<DashboardInfo> dashboardInfos2 = dashboardInfoDao.findDashboardsByTenantIdAndCustomerId(tenantId1, customerId1, pageLink2); | ||
64 | + assertEquals(5, dashboardInfos2.size()); | ||
65 | + } | ||
66 | + | ||
67 | + private void assertEquals(int i, int size) { | ||
68 | + } | ||
69 | + | ||
70 | + private void createDashboard(UUID tenantId, UUID customerId, int index) { | ||
71 | + DashboardInfo dashboardInfo = new DashboardInfo(); | ||
72 | + dashboardInfo.setId(new DashboardId(UUIDs.timeBased())); | ||
73 | + dashboardInfo.setTenantId(new TenantId(tenantId)); | ||
74 | + dashboardInfo.setCustomerId(new CustomerId(customerId)); | ||
75 | + dashboardInfo.setTitle("DASHBOARD_" + index); | ||
76 | + dashboardInfoDao.save(dashboardInfo); | ||
77 | + } | ||
78 | +} |
1 | package org.thingsboard.server.dao.sql.device; | 1 | package org.thingsboard.server.dao.sql.device; |
2 | 2 | ||
3 | import com.datastax.driver.core.utils.UUIDs; | 3 | import com.datastax.driver.core.utils.UUIDs; |
4 | -import com.github.springtestdbunit.annotation.DatabaseOperation; | ||
5 | -import com.github.springtestdbunit.annotation.DatabaseSetup; | ||
6 | -import com.github.springtestdbunit.annotation.DatabaseTearDown; | ||
7 | -import com.google.common.util.concurrent.*; | 4 | +import com.google.common.util.concurrent.ListenableFuture; |
5 | +import com.google.common.util.concurrent.ListeningExecutorService; | ||
6 | +import com.google.common.util.concurrent.MoreExecutors; | ||
8 | import org.junit.Test; | 7 | import org.junit.Test; |
9 | import org.springframework.beans.factory.annotation.Autowired; | 8 | import org.springframework.beans.factory.annotation.Autowired; |
10 | -import org.springframework.transaction.annotation.Transactional; | ||
11 | import org.thingsboard.server.common.data.Device; | 9 | import org.thingsboard.server.common.data.Device; |
12 | import org.thingsboard.server.common.data.id.CustomerId; | 10 | import org.thingsboard.server.common.data.id.CustomerId; |
13 | import org.thingsboard.server.common.data.id.DeviceId; | 11 | import org.thingsboard.server.common.data.id.DeviceId; |
@@ -17,7 +15,6 @@ import org.thingsboard.server.dao.AbstractJpaDaoTest; | @@ -17,7 +15,6 @@ import org.thingsboard.server.dao.AbstractJpaDaoTest; | ||
17 | import org.thingsboard.server.dao.device.DeviceDao; | 15 | import org.thingsboard.server.dao.device.DeviceDao; |
18 | 16 | ||
19 | import java.util.ArrayList; | 17 | import java.util.ArrayList; |
20 | -import java.util.Arrays; | ||
21 | import java.util.List; | 18 | import java.util.List; |
22 | import java.util.UUID; | 19 | import java.util.UUID; |
23 | import java.util.concurrent.ExecutionException; | 20 | import java.util.concurrent.ExecutionException; |
@@ -29,15 +26,12 @@ import static org.junit.Assert.assertNotNull; | @@ -29,15 +26,12 @@ import static org.junit.Assert.assertNotNull; | ||
29 | /** | 26 | /** |
30 | * Created by Valerii Sosliuk on 5/6/2017. | 27 | * Created by Valerii Sosliuk on 5/6/2017. |
31 | */ | 28 | */ |
32 | -@Transactional | ||
33 | public class JpaDeviceDaoTest extends AbstractJpaDaoTest { | 29 | public class JpaDeviceDaoTest extends AbstractJpaDaoTest { |
34 | 30 | ||
35 | @Autowired | 31 | @Autowired |
36 | private DeviceDao deviceDao; | 32 | private DeviceDao deviceDao; |
37 | 33 | ||
38 | @Test | 34 | @Test |
39 | - @DatabaseSetup(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
40 | - @DatabaseTearDown(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
41 | public void testFindDevicesByTenantId() { | 35 | public void testFindDevicesByTenantId() { |
42 | UUID tenantId1 = UUIDs.timeBased(); | 36 | UUID tenantId1 = UUIDs.timeBased(); |
43 | UUID tenantId2 = UUIDs.timeBased(); | 37 | UUID tenantId2 = UUIDs.timeBased(); |
@@ -55,8 +49,6 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { | @@ -55,8 +49,6 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { | ||
55 | } | 49 | } |
56 | 50 | ||
57 | @Test | 51 | @Test |
58 | - @DatabaseSetup(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
59 | - @DatabaseTearDown(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
60 | public void testFindAsync() throws ExecutionException, InterruptedException { | 52 | public void testFindAsync() throws ExecutionException, InterruptedException { |
61 | UUID tenantId = UUIDs.timeBased(); | 53 | UUID tenantId = UUIDs.timeBased(); |
62 | UUID customerId = UUIDs.timeBased(); | 54 | UUID customerId = UUIDs.timeBased(); |
@@ -75,8 +67,6 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { | @@ -75,8 +67,6 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { | ||
75 | } | 67 | } |
76 | 68 | ||
77 | @Test | 69 | @Test |
78 | - @DatabaseSetup(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
79 | - @DatabaseTearDown(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
80 | public void testFindDevicesByTenantIdAndIdsAsync() throws ExecutionException, InterruptedException { | 70 | public void testFindDevicesByTenantIdAndIdsAsync() throws ExecutionException, InterruptedException { |
81 | UUID tenantId1 = UUIDs.timeBased(); | 71 | UUID tenantId1 = UUIDs.timeBased(); |
82 | UUID customerId1 = UUIDs.timeBased(); | 72 | UUID customerId1 = UUIDs.timeBased(); |
@@ -100,8 +90,6 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { | @@ -100,8 +90,6 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { | ||
100 | } | 90 | } |
101 | 91 | ||
102 | @Test | 92 | @Test |
103 | - @DatabaseSetup(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
104 | - @DatabaseTearDown(value = "classpath:dbunit/empty_dataset.xml",type = DatabaseOperation.DELETE_ALL) | ||
105 | public void testFindDevicesByTenantIdAndCustomerIdAndIdsAsync() throws ExecutionException, InterruptedException { | 93 | public void testFindDevicesByTenantIdAndCustomerIdAndIdsAsync() throws ExecutionException, InterruptedException { |
106 | UUID tenantId1 = UUIDs.timeBased(); | 94 | UUID tenantId1 = UUIDs.timeBased(); |
107 | UUID customerId1 = UUIDs.timeBased(); | 95 | UUID customerId1 = UUIDs.timeBased(); |
1 | cassandra.enabled=false | 1 | cassandra.enabled=false |
2 | 2 | ||
3 | sql.enabled=true | 3 | sql.enabled=true |
4 | -#sql.datasource.url=jdbc:h2:mem:thingsboard | ||
5 | -#sql.datasource.username=sa | ||
6 | -#sql.datasource.password= | ||
7 | -#spring.jpa.hibernate.ddl-auto=create-drop | ||
8 | 4 | ||
9 | spring.jpa.show-sql=false | 5 | spring.jpa.show-sql=false |
10 | spring.jpa.hibernate.ddl-auto=create-drop | 6 | spring.jpa.hibernate.ddl-auto=create-drop |