Showing
6 changed files
with
56 additions
and
49 deletions
@@ -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 | } |