|
|
@ -25,6 +25,7 @@ import com.google.gson.JsonObject; |
|
|
import com.google.gson.JsonParser; |
|
|
import com.google.gson.JsonParser; |
|
|
import com.google.protobuf.InvalidProtocolBufferException; |
|
|
import com.google.protobuf.InvalidProtocolBufferException; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils; |
|
|
import org.thingsboard.rule.engine.api.RpcError; |
|
|
import org.thingsboard.rule.engine.api.RpcError; |
|
|
import org.thingsboard.rule.engine.api.msg.DeviceAttributesEventNotificationMsg; |
|
|
import org.thingsboard.rule.engine.api.msg.DeviceAttributesEventNotificationMsg; |
|
|
import org.thingsboard.rule.engine.api.msg.DeviceNameOrTypeUpdateMsg; |
|
|
import org.thingsboard.rule.engine.api.msg.DeviceNameOrTypeUpdateMsg; |
|
|
@ -287,13 +288,13 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { |
|
|
private ListenableFuture<List<List<AttributeKvEntry>>> getAttributesKvEntries(GetAttributeRequestMsg request) { |
|
|
private ListenableFuture<List<List<AttributeKvEntry>>> getAttributesKvEntries(GetAttributeRequestMsg request) { |
|
|
ListenableFuture<List<AttributeKvEntry>> clientAttributesFuture; |
|
|
ListenableFuture<List<AttributeKvEntry>> clientAttributesFuture; |
|
|
ListenableFuture<List<AttributeKvEntry>> sharedAttributesFuture; |
|
|
ListenableFuture<List<AttributeKvEntry>> sharedAttributesFuture; |
|
|
if (listIsEmpty(request.getClientAttributeNamesList()) && listIsEmpty(request.getSharedAttributeNamesList())) { |
|
|
if (CollectionUtils.isEmpty(request.getClientAttributeNamesList()) && CollectionUtils.isEmpty(request.getSharedAttributeNamesList())) { |
|
|
clientAttributesFuture = findAllAttributesByScope(CLIENT_SCOPE); |
|
|
clientAttributesFuture = findAllAttributesByScope(CLIENT_SCOPE); |
|
|
sharedAttributesFuture = findAllAttributesByScope(SHARED_SCOPE); |
|
|
sharedAttributesFuture = findAllAttributesByScope(SHARED_SCOPE); |
|
|
} else if (!listIsEmpty(request.getClientAttributeNamesList()) && !listIsEmpty(request.getSharedAttributeNamesList())) { |
|
|
} else if (!CollectionUtils.isEmpty(request.getClientAttributeNamesList()) && !CollectionUtils.isEmpty(request.getSharedAttributeNamesList())) { |
|
|
clientAttributesFuture = findAttributesByScope(toSet(request.getClientAttributeNamesList()), CLIENT_SCOPE); |
|
|
clientAttributesFuture = findAttributesByScope(toSet(request.getClientAttributeNamesList()), CLIENT_SCOPE); |
|
|
sharedAttributesFuture = findAttributesByScope(toSet(request.getSharedAttributeNamesList()), SHARED_SCOPE); |
|
|
sharedAttributesFuture = findAttributesByScope(toSet(request.getSharedAttributeNamesList()), SHARED_SCOPE); |
|
|
} else if (listIsEmpty(request.getClientAttributeNamesList()) && !listIsEmpty(request.getSharedAttributeNamesList())) { |
|
|
} else if (CollectionUtils.isEmpty(request.getClientAttributeNamesList()) && !CollectionUtils.isEmpty(request.getSharedAttributeNamesList())) { |
|
|
clientAttributesFuture = Futures.immediateFuture(Collections.emptyList()); |
|
|
clientAttributesFuture = Futures.immediateFuture(Collections.emptyList()); |
|
|
sharedAttributesFuture = findAttributesByScope(toSet(request.getSharedAttributeNamesList()), SHARED_SCOPE); |
|
|
sharedAttributesFuture = findAttributesByScope(toSet(request.getSharedAttributeNamesList()), SHARED_SCOPE); |
|
|
} else { |
|
|
} else { |
|
|
@ -315,10 +316,6 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { |
|
|
return new HashSet<>(strings); |
|
|
return new HashSet<>(strings); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private boolean listIsEmpty(List<String> strings) { |
|
|
|
|
|
return strings == null || strings.isEmpty(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void handlePostAttributesRequest(ActorContext context, SessionInfoProto sessionInfo, PostAttributeMsg postAttributes) { |
|
|
private void handlePostAttributesRequest(ActorContext context, SessionInfoProto sessionInfo, PostAttributeMsg postAttributes) { |
|
|
JsonObject json = getJsonObject(postAttributes.getKvList()); |
|
|
JsonObject json = getJsonObject(postAttributes.getKvList()); |
|
|
TbMsg tbMsg = new TbMsg(UUIDs.timeBased(), SessionMsgType.POST_ATTRIBUTES_REQUEST.name(), deviceId, defaultMetaData.copy(), |
|
|
TbMsg tbMsg = new TbMsg(UUIDs.timeBased(), SessionMsgType.POST_ATTRIBUTES_REQUEST.name(), deviceId, defaultMetaData.copy(), |
|
|
|