Commit 37891ec6c6f4313fb74f46fc8e83371e56367f65

Authored by Andrii Shvaika
1 parent ab10dd44

Minor refactoring

@@ -24,7 +24,7 @@ import org.thingsboard.server.common.data.DataConstants; @@ -24,7 +24,7 @@ import org.thingsboard.server.common.data.DataConstants;
24 import org.thingsboard.server.common.data.Device; 24 import org.thingsboard.server.common.data.Device;
25 import org.thingsboard.server.common.data.DeviceProfile; 25 import org.thingsboard.server.common.data.DeviceProfile;
26 import org.thingsboard.server.common.data.FirmwareInfo; 26 import org.thingsboard.server.common.data.FirmwareInfo;
27 -import org.thingsboard.server.common.data.firmware.FirmwareKeyUtil; 27 +import org.thingsboard.server.common.data.firmware.FirmwareUtil;
28 import org.thingsboard.server.common.data.firmware.FirmwareType; 28 import org.thingsboard.server.common.data.firmware.FirmwareType;
29 import org.thingsboard.server.common.data.id.DeviceId; 29 import org.thingsboard.server.common.data.id.DeviceId;
30 import org.thingsboard.server.common.data.id.FirmwareId; 30 import org.thingsboard.server.common.data.id.FirmwareId;
@@ -66,9 +66,9 @@ import static org.thingsboard.server.common.data.firmware.FirmwareKey.STATE; @@ -66,9 +66,9 @@ import static org.thingsboard.server.common.data.firmware.FirmwareKey.STATE;
66 import static org.thingsboard.server.common.data.firmware.FirmwareKey.TITLE; 66 import static org.thingsboard.server.common.data.firmware.FirmwareKey.TITLE;
67 import static org.thingsboard.server.common.data.firmware.FirmwareKey.TS; 67 import static org.thingsboard.server.common.data.firmware.FirmwareKey.TS;
68 import static org.thingsboard.server.common.data.firmware.FirmwareKey.VERSION; 68 import static org.thingsboard.server.common.data.firmware.FirmwareKey.VERSION;
69 -import static org.thingsboard.server.common.data.firmware.FirmwareKeyUtil.getAttributeKey;  
70 -import static org.thingsboard.server.common.data.firmware.FirmwareKeyUtil.getTargetTelemetryKey;  
71 -import static org.thingsboard.server.common.data.firmware.FirmwareKeyUtil.getTelemetryKey; 69 +import static org.thingsboard.server.common.data.firmware.FirmwareUtil.getAttributeKey;
  70 +import static org.thingsboard.server.common.data.firmware.FirmwareUtil.getTargetTelemetryKey;
  71 +import static org.thingsboard.server.common.data.firmware.FirmwareUtil.getTelemetryKey;
72 import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE; 72 import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE;
73 import static org.thingsboard.server.common.data.firmware.FirmwareType.SOFTWARE; 73 import static org.thingsboard.server.common.data.firmware.FirmwareType.SOFTWARE;
74 74
@@ -217,30 +217,10 @@ public class DefaultFirmwareStateService implements FirmwareStateService { @@ -217,30 +217,10 @@ public class DefaultFirmwareStateService implements FirmwareStateService {
217 if (device == null) { 217 if (device == null) {
218 log.warn("[{}] [{}] Device was removed during firmware update msg was queued!", tenantId, deviceId); 218 log.warn("[{}] [{}] Device was removed during firmware update msg was queued!", tenantId, deviceId);
219 } else { 219 } else {
220 - FirmwareId currentFirmwareId;  
221 -  
222 - switch (firmwareType) {  
223 - case FIRMWARE:  
224 - currentFirmwareId = device.getFirmwareId();  
225 - break;  
226 - case SOFTWARE:  
227 - currentFirmwareId = device.getSoftwareId();  
228 - break;  
229 - default:  
230 - log.warn("Unsupported firmware type: [{}]", firmwareType);  
231 - return false;  
232 - }  
233 - 220 + FirmwareId currentFirmwareId = FirmwareUtil.getFirmwareId(device, firmwareType);
234 if (currentFirmwareId == null) { 221 if (currentFirmwareId == null) {
235 DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(tenantId, device.getDeviceProfileId()); 222 DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(tenantId, device.getDeviceProfileId());
236 - switch (firmwareType) {  
237 - case FIRMWARE:  
238 - currentFirmwareId = deviceProfile.getFirmwareId();  
239 - break;  
240 - case SOFTWARE:  
241 - currentFirmwareId = deviceProfile.getSoftwareId();  
242 - break;  
243 - } 223 + currentFirmwareId = FirmwareUtil.getFirmwareId(deviceProfile, firmwareType);
244 } 224 }
245 225
246 if (targetFirmwareId.equals(currentFirmwareId)) { 226 if (targetFirmwareId.equals(currentFirmwareId)) {
@@ -333,13 +313,13 @@ public class DefaultFirmwareStateService implements FirmwareStateService { @@ -333,13 +313,13 @@ public class DefaultFirmwareStateService implements FirmwareStateService {
333 } 313 }
334 314
335 private void remove(Device device, FirmwareType firmwareType) { 315 private void remove(Device device, FirmwareType firmwareType) {
336 - telemetryService.deleteAndNotify(device.getTenantId(), device.getId(), DataConstants.SHARED_SCOPE, FirmwareKeyUtil.getAttributeKeys(firmwareType), 316 + telemetryService.deleteAndNotify(device.getTenantId(), device.getId(), DataConstants.SHARED_SCOPE, FirmwareUtil.getAttributeKeys(firmwareType),
337 new FutureCallback<>() { 317 new FutureCallback<>() {
338 @Override 318 @Override
339 public void onSuccess(@Nullable Void tmp) { 319 public void onSuccess(@Nullable Void tmp) {
340 log.trace("[{}] Success remove target firmware attributes!", device.getId()); 320 log.trace("[{}] Success remove target firmware attributes!", device.getId());
341 Set<AttributeKey> keysToNotify = new HashSet<>(); 321 Set<AttributeKey> keysToNotify = new HashSet<>();
342 - FirmwareKeyUtil.ALL_FW_ATTRIBUTE_KEYS.forEach(key -> keysToNotify.add(new AttributeKey(DataConstants.SHARED_SCOPE, key))); 322 + FirmwareUtil.ALL_FW_ATTRIBUTE_KEYS.forEach(key -> keysToNotify.add(new AttributeKey(DataConstants.SHARED_SCOPE, key)));
343 tbClusterService.pushMsgToCore(DeviceAttributesEventNotificationMsg.onDelete(device.getTenantId(), device.getId(), keysToNotify), null); 323 tbClusterService.pushMsgToCore(DeviceAttributesEventNotificationMsg.onDelete(device.getTenantId(), device.getId(), keysToNotify), null);
344 } 324 }
345 325
@@ -41,6 +41,7 @@ import org.thingsboard.server.common.data.device.credentials.BasicMqttCredential @@ -41,6 +41,7 @@ import org.thingsboard.server.common.data.device.credentials.BasicMqttCredential
41 import org.thingsboard.server.common.data.device.credentials.ProvisionDeviceCredentialsData; 41 import org.thingsboard.server.common.data.device.credentials.ProvisionDeviceCredentialsData;
42 import org.thingsboard.server.common.data.device.profile.ProvisionDeviceProfileCredentials; 42 import org.thingsboard.server.common.data.device.profile.ProvisionDeviceProfileCredentials;
43 import org.thingsboard.server.common.data.firmware.FirmwareType; 43 import org.thingsboard.server.common.data.firmware.FirmwareType;
  44 +import org.thingsboard.server.common.data.firmware.FirmwareUtil;
44 import org.thingsboard.server.common.data.id.CustomerId; 45 import org.thingsboard.server.common.data.id.CustomerId;
45 import org.thingsboard.server.common.data.id.DeviceId; 46 import org.thingsboard.server.common.data.id.DeviceId;
46 import org.thingsboard.server.common.data.id.DeviceProfileId; 47 import org.thingsboard.server.common.data.id.DeviceProfileId;
@@ -463,26 +464,10 @@ public class DefaultTransportApiService implements TransportApiService { @@ -463,26 +464,10 @@ public class DefaultTransportApiService implements TransportApiService {
463 return getEmptyTransportApiResponseFuture(); 464 return getEmptyTransportApiResponseFuture();
464 } 465 }
465 466
466 - FirmwareId firmwareId = null;  
467 - switch (firmwareType) {  
468 - case FIRMWARE:  
469 - firmwareId = device.getFirmwareId();  
470 - break;  
471 - case SOFTWARE:  
472 - firmwareId = device.getSoftwareId();  
473 - break;  
474 - }  
475 - 467 + FirmwareId firmwareId = FirmwareUtil.getFirmwareId(device, firmwareType);
476 if (firmwareId == null) { 468 if (firmwareId == null) {
477 DeviceProfile deviceProfile = deviceProfileCache.find(device.getDeviceProfileId()); 469 DeviceProfile deviceProfile = deviceProfileCache.find(device.getDeviceProfileId());
478 - switch (firmwareType) {  
479 - case FIRMWARE:  
480 - firmwareId = deviceProfile.getFirmwareId();  
481 - break;  
482 - case SOFTWARE:  
483 - firmwareId = deviceProfile.getSoftwareId();  
484 - break;  
485 - } 470 + firmwareId = FirmwareUtil.getFirmwareId(deviceProfile, firmwareType);
486 } 471 }
487 472
488 TransportProtos.GetFirmwareResponseMsg.Builder builder = TransportProtos.GetFirmwareResponseMsg.newBuilder(); 473 TransportProtos.GetFirmwareResponseMsg.Builder builder = TransportProtos.GetFirmwareResponseMsg.newBuilder();
@@ -32,7 +32,7 @@ import java.io.IOException; @@ -32,7 +32,7 @@ import java.io.IOException;
32 32
33 @EqualsAndHashCode(callSuper = true) 33 @EqualsAndHashCode(callSuper = true)
34 @Slf4j 34 @Slf4j
35 -public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implements HasName, HasTenantId, HasCustomerId { 35 +public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implements HasName, HasTenantId, HasCustomerId, HasFirmware {
36 36
37 private static final long serialVersionUID = 2807343040519543363L; 37 private static final long serialVersionUID = 2807343040519543363L;
38 38
@@ -36,7 +36,7 @@ import static org.thingsboard.server.common.data.SearchTextBasedWithAdditionalIn @@ -36,7 +36,7 @@ import static org.thingsboard.server.common.data.SearchTextBasedWithAdditionalIn
36 @Data 36 @Data
37 @EqualsAndHashCode(callSuper = true) 37 @EqualsAndHashCode(callSuper = true)
38 @Slf4j 38 @Slf4j
39 -public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements HasName, HasTenantId { 39 +public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements HasName, HasTenantId, HasFirmware {
40 40
41 private TenantId tenantId; 41 private TenantId tenantId;
42 @NoXss 42 @NoXss
  1 +/**
  2 + * Copyright © 2016-2021 The Thingsboard Authors
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +package org.thingsboard.server.common.data;
  17 +
  18 +import org.thingsboard.server.common.data.id.FirmwareId;
  19 +
  20 +public interface HasFirmware {
  21 +
  22 + FirmwareId getFirmwareId();
  23 +
  24 + FirmwareId getSoftwareId();
  25 +}
common/data/src/main/java/org/thingsboard/server/common/data/firmware/FirmwareUtil.java renamed from common/data/src/main/java/org/thingsboard/server/common/data/firmware/FirmwareKeyUtil.java
@@ -15,6 +15,10 @@ @@ -15,6 +15,10 @@
15 */ 15 */
16 package org.thingsboard.server.common.data.firmware; 16 package org.thingsboard.server.common.data.firmware;
17 17
  18 +import lombok.extern.slf4j.Slf4j;
  19 +import org.thingsboard.server.common.data.HasFirmware;
  20 +import org.thingsboard.server.common.data.id.FirmwareId;
  21 +
18 import java.util.ArrayList; 22 import java.util.ArrayList;
19 import java.util.Collections; 23 import java.util.Collections;
20 import java.util.List; 24 import java.util.List;
@@ -22,7 +26,8 @@ import java.util.List; @@ -22,7 +26,8 @@ import java.util.List;
22 import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE; 26 import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE;
23 import static org.thingsboard.server.common.data.firmware.FirmwareType.SOFTWARE; 27 import static org.thingsboard.server.common.data.firmware.FirmwareType.SOFTWARE;
24 28
25 -public class FirmwareKeyUtil { 29 +@Slf4j
  30 +public class FirmwareUtil {
26 31
27 public static final List<String> ALL_FW_ATTRIBUTE_KEYS; 32 public static final List<String> ALL_FW_ATTRIBUTE_KEYS;
28 33
@@ -71,4 +76,16 @@ public class FirmwareKeyUtil { @@ -71,4 +76,16 @@ public class FirmwareKeyUtil {
71 public static String getTelemetryKey(FirmwareType type, FirmwareKey key) { 76 public static String getTelemetryKey(FirmwareType type, FirmwareKey key) {
72 return type.getKeyPrefix() + "_" + key.getValue(); 77 return type.getKeyPrefix() + "_" + key.getValue();
73 } 78 }
  79 +
  80 + public static FirmwareId getFirmwareId(HasFirmware entity, FirmwareType firmwareType) {
  81 + switch (firmwareType) {
  82 + case FIRMWARE:
  83 + return entity.getFirmwareId();
  84 + case SOFTWARE:
  85 + return entity.getSoftwareId();
  86 + default:
  87 + log.warn("Unsupported firmware type: [{}]", firmwareType);
  88 + return null;
  89 + }
  90 + }
74 } 91 }