Fix compile errors and warnings.
This commit is contained in:
parent
43178107c3
commit
59a54211f9
@ -169,11 +169,11 @@ public class LwM2MModelsRepository {
|
|||||||
* PageNumber = 1, PageSize = List<LwM2mObject>.size()
|
* PageNumber = 1, PageSize = List<LwM2mObject>.size()
|
||||||
*/
|
*/
|
||||||
public PageData<LwM2mObject> findLwm2mListObjects(PageLink pageLink) {
|
public PageData<LwM2mObject> findLwm2mListObjects(PageLink pageLink) {
|
||||||
PageImpl page = new PageImpl(getLwm2mObjects(getObjectIdFromTextSearch(pageLink.getTextSearch()),
|
PageImpl<LwM2mObject> page = new PageImpl<>(getLwm2mObjects(getObjectIdFromTextSearch(pageLink.getTextSearch()),
|
||||||
pageLink.getTextSearch(),
|
pageLink.getTextSearch(),
|
||||||
pageLink.getSortOrder().getProperty(),
|
pageLink.getSortOrder().getProperty(),
|
||||||
pageLink.getSortOrder().getDirection().name()));
|
pageLink.getSortOrder().getDirection().name()));
|
||||||
PageData pageData = new PageData(page.getContent(), page.getTotalPages(), page.getTotalElements(), page.hasNext());
|
PageData<LwM2mObject> pageData = new PageData<>(page.getContent(), page.getTotalPages(), page.getTotalElements(), page.hasNext());
|
||||||
return pageData;
|
return pageData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.common.data.lwm2m;
|
package org.thingsboard.server.common.data.lwm2m;
|
||||||
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ -23,12 +22,8 @@ public class ServerSecurityConfig {
|
|||||||
String host;
|
String host;
|
||||||
Integer port;
|
Integer port;
|
||||||
String serverPublicKey;
|
String serverPublicKey;
|
||||||
@Builder.Default
|
|
||||||
boolean bootstrapServerIs = true;
|
boolean bootstrapServerIs = true;
|
||||||
@Builder.Default
|
|
||||||
Integer clientHoldOffTime = 1;
|
Integer clientHoldOffTime = 1;
|
||||||
@Builder.Default
|
|
||||||
Integer serverId = 111;
|
Integer serverId = 111;
|
||||||
@Builder.Default
|
|
||||||
Integer bootstrapServerAccountTimeout = 0;
|
Integer bootstrapServerAccountTimeout = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.eclipse.californium.core.network.Endpoint;
|
|||||||
import org.eclipse.californium.core.network.Exchange;
|
import org.eclipse.californium.core.network.Exchange;
|
||||||
import org.eclipse.californium.core.server.resources.CoapExchange;
|
import org.eclipse.californium.core.server.resources.CoapExchange;
|
||||||
import org.eclipse.californium.core.server.resources.Resource;
|
import org.eclipse.californium.core.server.resources.Resource;
|
||||||
|
import org.eclipse.californium.elements.EndpointContext;
|
||||||
import org.thingsboard.server.common.data.DataConstants;
|
import org.thingsboard.server.common.data.DataConstants;
|
||||||
import org.thingsboard.server.common.data.DeviceTransportType;
|
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||||
import org.thingsboard.server.common.data.security.DeviceTokenCredentials;
|
import org.thingsboard.server.common.data.security.DeviceTokenCredentials;
|
||||||
@ -264,12 +265,15 @@ public class CoapTransportResource extends CoapResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private TransportProtos.SessionInfoProto lookupAsyncSessionInfo(Request request) {
|
private TransportProtos.SessionInfoProto lookupAsyncSessionInfo(Request request) {
|
||||||
String token = request.getSource().getHostAddress() + ":" + request.getSourcePort() + ":" + request.getTokenString();
|
EndpointContext sourceContext = request.getSourceContext();
|
||||||
|
String token = sourceContext.getPeerAddress().getAddress().getHostAddress() + ":" + sourceContext.getPeerAddress().getPort() + ":" + request.getTokenString();
|
||||||
return tokenToSessionIdMap.remove(token);
|
return tokenToSessionIdMap.remove(token);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String registerAsyncCoapSession(CoapExchange exchange, Request request, TransportProtos.SessionInfoProto sessionInfo, UUID sessionId) {
|
private String registerAsyncCoapSession(CoapExchange exchange, Request request, TransportProtos.SessionInfoProto sessionInfo, UUID sessionId) {
|
||||||
String token = request.getSource().getHostAddress() + ":" + request.getSourcePort() + ":" + request.getTokenString();
|
EndpointContext sourceContext = request.getSourceContext();
|
||||||
|
String token = sourceContext.getPeerAddress().getAddress().getHostAddress() + ":" + sourceContext.getPeerAddress().getPort() + ":" + request.getTokenString();
|
||||||
tokenToSessionIdMap.putIfAbsent(token, sessionInfo);
|
tokenToSessionIdMap.putIfAbsent(token, sessionInfo);
|
||||||
CoapSessionListener attrListener = new CoapSessionListener(sessionId, exchange);
|
CoapSessionListener attrListener = new CoapSessionListener(sessionId, exchange);
|
||||||
transportService.registerAsyncSession(sessionInfo, attrListener);
|
transportService.registerAsyncSession(sessionInfo, attrListener);
|
||||||
|
|||||||
@ -107,7 +107,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<artifactId>mockito-all</artifactId>
|
<artifactId>mockito-core</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.transport.lwm2m.bootstrap.secure;
|
package org.thingsboard.server.transport.lwm2m.bootstrap.secure;
|
||||||
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.eclipse.leshan.core.SecurityMode;
|
import org.eclipse.leshan.core.SecurityMode;
|
||||||
import org.eclipse.leshan.core.request.BindingMode;
|
import org.eclipse.leshan.core.request.BindingMode;
|
||||||
@ -40,7 +39,6 @@ public class LwM2MBootstrapConfig {
|
|||||||
* notifIfDisabled: boolean,
|
* notifIfDisabled: boolean,
|
||||||
* binding: string
|
* binding: string
|
||||||
* */
|
* */
|
||||||
@Builder.Default
|
|
||||||
LwM2MBootstrapServers servers;
|
LwM2MBootstrapServers servers;
|
||||||
|
|
||||||
/** -bootstrapServer, lwm2mServer
|
/** -bootstrapServer, lwm2mServer
|
||||||
|
|||||||
@ -15,19 +15,13 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.transport.lwm2m.bootstrap.secure;
|
package org.thingsboard.server.transport.lwm2m.bootstrap.secure;
|
||||||
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class LwM2MBootstrapServers {
|
public class LwM2MBootstrapServers {
|
||||||
@Builder.Default
|
|
||||||
private Integer shortId = 123;
|
private Integer shortId = 123;
|
||||||
@Builder.Default
|
|
||||||
private Integer lifetime = 300;
|
private Integer lifetime = 300;
|
||||||
@Builder.Default
|
|
||||||
private Integer defaultMinPeriod = 1;
|
private Integer defaultMinPeriod = 1;
|
||||||
@Builder.Default
|
|
||||||
private boolean notifIfDisabled = true;
|
private boolean notifIfDisabled = true;
|
||||||
@Builder.Default
|
|
||||||
private String binding = "U";
|
private String binding = "U";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.transport.lwm2m.bootstrap.secure;
|
package org.thingsboard.server.transport.lwm2m.bootstrap.secure;
|
||||||
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.eclipse.leshan.core.SecurityMode;
|
import org.eclipse.leshan.core.SecurityMode;
|
||||||
@ -24,28 +23,18 @@ import org.eclipse.leshan.core.SecurityMode;
|
|||||||
@Data
|
@Data
|
||||||
public class LwM2MServerBootstrap {
|
public class LwM2MServerBootstrap {
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
String clientPublicKeyOrId = "";
|
String clientPublicKeyOrId = "";
|
||||||
@Builder.Default
|
|
||||||
String clientSecretKey = "";
|
String clientSecretKey = "";
|
||||||
@Builder.Default
|
|
||||||
String serverPublicKey = "";
|
String serverPublicKey = "";
|
||||||
@Builder.Default
|
|
||||||
Integer clientHoldOffTime = 1;
|
Integer clientHoldOffTime = 1;
|
||||||
@Builder.Default
|
|
||||||
Integer bootstrapServerAccountTimeout = 0;
|
Integer bootstrapServerAccountTimeout = 0;
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
String host = "0.0.0.0";
|
String host = "0.0.0.0";
|
||||||
@Builder.Default
|
|
||||||
Integer port = 0;
|
Integer port = 0;
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
String securityMode = SecurityMode.NO_SEC.name();
|
String securityMode = SecurityMode.NO_SEC.name();
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
Integer serverId = 123;
|
Integer serverId = 123;
|
||||||
@Builder.Default
|
|
||||||
boolean bootstrapServerIs = false;
|
boolean bootstrapServerIs = false;
|
||||||
|
|
||||||
public LwM2MServerBootstrap(){};
|
public LwM2MServerBootstrap(){};
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.eclipse.leshan.server.security.SecurityChecker;
|
|||||||
import org.eclipse.leshan.server.security.SecurityInfo;
|
import org.eclipse.leshan.server.security.SecurityInfo;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -49,10 +50,11 @@ public class LwM2mDefaultBootstrapSessionManager extends DefaultBootstrapSession
|
|||||||
this.securityChecker = securityChecker;
|
this.securityChecker = securityChecker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public BootstrapSession begin(String endpoint, Identity clientIdentity) {
|
public BootstrapSession begin(String endpoint, Identity clientIdentity) {
|
||||||
boolean authorized;
|
boolean authorized;
|
||||||
if (bsSecurityStore != null) {
|
if (bsSecurityStore != null) {
|
||||||
List<SecurityInfo> securityInfos = (clientIdentity.getPskIdentity() != null && !clientIdentity.getPskIdentity().isEmpty()) ? Arrays.asList(bsSecurityStore.getByIdentity(clientIdentity.getPskIdentity())) : bsSecurityStore.getAllByEndpoint(endpoint);
|
List<SecurityInfo> securityInfos = (clientIdentity.getPskIdentity() != null && !clientIdentity.getPskIdentity().isEmpty()) ? Collections.singletonList(bsSecurityStore.getByIdentity(clientIdentity.getPskIdentity())) : bsSecurityStore.getAllByEndpoint(endpoint);
|
||||||
log.info("Bootstrap session started securityInfos: [{}]", securityInfos);
|
log.info("Bootstrap session started securityInfos: [{}]", securityInfos);
|
||||||
authorized = securityChecker.checkSecurityInfos(endpoint, clientIdentity, securityInfos);
|
authorized = securityChecker.checkSecurityInfos(endpoint, clientIdentity, securityInfos);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
package org.thingsboard.server.transport.lwm2m.secure;
|
package org.thingsboard.server.transport.lwm2m.secure;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.eclipse.leshan.server.bootstrap.BootstrapConfig;
|
import org.eclipse.leshan.server.bootstrap.BootstrapConfig;
|
||||||
import org.eclipse.leshan.server.security.SecurityInfo;
|
import org.eclipse.leshan.server.security.SecurityInfo;
|
||||||
@ -29,7 +28,6 @@ import static org.thingsboard.server.transport.lwm2m.secure.LwM2MSecurityMode.DE
|
|||||||
public class ReadResultSecurityStore {
|
public class ReadResultSecurityStore {
|
||||||
private ValidateDeviceCredentialsResponseMsg msg;
|
private ValidateDeviceCredentialsResponseMsg msg;
|
||||||
private SecurityInfo securityInfo;
|
private SecurityInfo securityInfo;
|
||||||
@Builder.Default
|
|
||||||
private int securityMode = DEFAULT_MODE.code;
|
private int securityMode = DEFAULT_MODE.code;
|
||||||
|
|
||||||
/** bootstrap */
|
/** bootstrap */
|
||||||
|
|||||||
@ -312,6 +312,7 @@ public class LwM2MTransportHandler {
|
|||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public static <T> Optional<T> decode(byte[] byteArray) {
|
public static <T> Optional<T> decode(byte[] byteArray) {
|
||||||
try {
|
try {
|
||||||
FSTConfiguration config = FSTConfiguration.createDefaultConfiguration();
|
FSTConfiguration config = FSTConfiguration.createDefaultConfiguration();
|
||||||
|
|||||||
@ -232,6 +232,7 @@ public class LwM2MTransportRequest {
|
|||||||
* @param timeoutInMs -
|
* @param timeoutInMs -
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
private void sendRequest(LeshanServer lwServer, Registration registration, DownlinkRequest request, long timeoutInMs) {
|
private void sendRequest(LeshanServer lwServer, Registration registration, DownlinkRequest request, long timeoutInMs) {
|
||||||
LwM2MClient lwM2MClient = this.service.lwM2mInMemorySecurityStore.getLwM2MClientWithReg(registration, null);
|
LwM2MClient lwM2MClient = this.service.lwM2mInMemorySecurityStore.getLwM2MClientWithReg(registration, null);
|
||||||
lwServer.send(registration, request, timeoutInMs, (ResponseCallback<?>) response -> {
|
lwServer.send(registration, request, timeoutInMs, (ResponseCallback<?>) response -> {
|
||||||
|
|||||||
@ -15,11 +15,13 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.transport.lwm2m.server;
|
package org.thingsboard.server.transport.lwm2m.server;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.eclipse.leshan.core.model.ResourceModel;
|
import org.eclipse.leshan.core.model.ResourceModel;
|
||||||
import org.eclipse.leshan.core.node.LwM2mObject;
|
import org.eclipse.leshan.core.node.LwM2mObject;
|
||||||
@ -564,7 +566,7 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
|
|||||||
* @return true if path isPresent in postAttributeProfile
|
* @return true if path isPresent in postAttributeProfile
|
||||||
*/
|
*/
|
||||||
private boolean validatePathInAttrProfile(LwM2MClientProfile profile, String path) {
|
private boolean validatePathInAttrProfile(LwM2MClientProfile profile, String path) {
|
||||||
Set<String> attributesSet = new Gson().fromJson(profile.getPostAttributeProfile(), Set.class);
|
Set<String> attributesSet = new Gson().fromJson(profile.getPostAttributeProfile(), new TypeToken<>(){}.getType());
|
||||||
return attributesSet.stream().filter(p -> p.equals(path)).findFirst().isPresent();
|
return attributesSet.stream().filter(p -> p.equals(path)).findFirst().isPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -574,7 +576,7 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
|
|||||||
* @return true if path isPresent in postAttributeProfile
|
* @return true if path isPresent in postAttributeProfile
|
||||||
*/
|
*/
|
||||||
private boolean validatePathInTelemetryProfile(LwM2MClientProfile profile, String path) {
|
private boolean validatePathInTelemetryProfile(LwM2MClientProfile profile, String path) {
|
||||||
Set<String> telemetriesSet = new Gson().fromJson(profile.getPostTelemetryProfile(), Set.class);
|
Set<String> telemetriesSet = new Gson().fromJson(profile.getPostTelemetryProfile(), new TypeToken<>(){}.getType());
|
||||||
return telemetriesSet.stream().filter(p -> p.equals(path)).findFirst().isPresent();
|
return telemetriesSet.stream().filter(p -> p.equals(path)).findFirst().isPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,10 +594,10 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
|
|||||||
Set<String> clientInstances = this.getAllInstancesInClient(registration);
|
Set<String> clientInstances = this.getAllInstancesInClient(registration);
|
||||||
Set<String> result;
|
Set<String> result;
|
||||||
if (GET_TYPE_OPER_READ.equals(typeOper)) {
|
if (GET_TYPE_OPER_READ.equals(typeOper)) {
|
||||||
result = new ObjectMapper().readValue(lwM2MClientProfile.getPostAttributeProfile().getAsJsonArray().toString().getBytes(), Set.class);
|
result = new ObjectMapper().readValue(lwM2MClientProfile.getPostAttributeProfile().getAsJsonArray().toString().getBytes(), new TypeReference<>() {});
|
||||||
result.addAll(new ObjectMapper().readValue(lwM2MClientProfile.getPostTelemetryProfile().getAsJsonArray().toString().getBytes(), Set.class));
|
result.addAll(new ObjectMapper().readValue(lwM2MClientProfile.getPostTelemetryProfile().getAsJsonArray().toString().getBytes(), new TypeReference<>() {}));
|
||||||
} else {
|
} else {
|
||||||
result = new ObjectMapper().readValue(lwM2MClientProfile.getPostObserveProfile().getAsJsonArray().toString().getBytes(), Set.class);
|
result = new ObjectMapper().readValue(lwM2MClientProfile.getPostObserveProfile().getAsJsonArray().toString().getBytes(), new TypeReference<>() {});
|
||||||
}
|
}
|
||||||
Set<String> pathSent = ConcurrentHashMap.newKeySet();
|
Set<String> pathSent = ConcurrentHashMap.newKeySet();
|
||||||
result.forEach(p -> {
|
result.forEach(p -> {
|
||||||
@ -794,17 +796,17 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
|
|||||||
|
|
||||||
// #1
|
// #1
|
||||||
JsonArray attributeOld = lwM2MClientProfileOld.getPostAttributeProfile();
|
JsonArray attributeOld = lwM2MClientProfileOld.getPostAttributeProfile();
|
||||||
Set attributeSetOld = new Gson().fromJson(attributeOld, Set.class);
|
Set<String> attributeSetOld = new Gson().fromJson(attributeOld, new TypeToken<>(){}.getType());
|
||||||
JsonArray telemetryOld = lwM2MClientProfileOld.getPostTelemetryProfile();
|
JsonArray telemetryOld = lwM2MClientProfileOld.getPostTelemetryProfile();
|
||||||
Set telemetrySetOld = new Gson().fromJson(telemetryOld, Set.class);
|
Set<String> telemetrySetOld = new Gson().fromJson(telemetryOld, new TypeToken<>(){}.getType());
|
||||||
JsonArray observeOld = lwM2MClientProfileOld.getPostObserveProfile();
|
JsonArray observeOld = lwM2MClientProfileOld.getPostObserveProfile();
|
||||||
JsonObject keyNameOld = lwM2MClientProfileOld.getPostKeyNameProfile();
|
JsonObject keyNameOld = lwM2MClientProfileOld.getPostKeyNameProfile();
|
||||||
|
|
||||||
LwM2MClientProfile lwM2MClientProfileNew = lwM2mInMemorySecurityStore.getProfiles().get(deviceProfile.getUuidId());
|
LwM2MClientProfile lwM2MClientProfileNew = lwM2mInMemorySecurityStore.getProfiles().get(deviceProfile.getUuidId());
|
||||||
JsonArray attributeNew = lwM2MClientProfileNew.getPostAttributeProfile();
|
JsonArray attributeNew = lwM2MClientProfileNew.getPostAttributeProfile();
|
||||||
Set attributeSetNew = new Gson().fromJson(attributeNew, Set.class);
|
Set<String> attributeSetNew = new Gson().fromJson(attributeNew, new TypeToken<>(){}.getType());
|
||||||
JsonArray telemetryNew = lwM2MClientProfileNew.getPostTelemetryProfile();
|
JsonArray telemetryNew = lwM2MClientProfileNew.getPostTelemetryProfile();
|
||||||
Set telemetrySetNew = new Gson().fromJson(telemetryNew, Set.class);
|
Set<String> telemetrySetNew = new Gson().fromJson(telemetryNew, new TypeToken<>(){}.getType());
|
||||||
JsonArray observeNew = lwM2MClientProfileNew.getPostObserveProfile();
|
JsonArray observeNew = lwM2MClientProfileNew.getPostObserveProfile();
|
||||||
JsonObject keyNameNew = lwM2MClientProfileNew.getPostKeyNameProfile();
|
JsonObject keyNameNew = lwM2MClientProfileNew.getPostKeyNameProfile();
|
||||||
|
|
||||||
@ -812,20 +814,20 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
|
|||||||
ResultsAnalyzerParameters sentAttrToThingsboard = new ResultsAnalyzerParameters();
|
ResultsAnalyzerParameters sentAttrToThingsboard = new ResultsAnalyzerParameters();
|
||||||
// #3.1
|
// #3.1
|
||||||
if (!attributeOld.equals(attributeNew)) {
|
if (!attributeOld.equals(attributeNew)) {
|
||||||
ResultsAnalyzerParameters postAttributeAnalyzer = this.getAnalyzerParameters(new Gson().fromJson(attributeOld, Set.class), attributeSetNew);
|
ResultsAnalyzerParameters postAttributeAnalyzer = this.getAnalyzerParameters(new Gson().fromJson(attributeOld, new TypeToken<Set<String>>(){}.getType()), attributeSetNew);
|
||||||
sentAttrToThingsboard.getPathPostParametersAdd().addAll(postAttributeAnalyzer.getPathPostParametersAdd());
|
sentAttrToThingsboard.getPathPostParametersAdd().addAll(postAttributeAnalyzer.getPathPostParametersAdd());
|
||||||
sentAttrToThingsboard.getPathPostParametersDel().addAll(postAttributeAnalyzer.getPathPostParametersDel());
|
sentAttrToThingsboard.getPathPostParametersDel().addAll(postAttributeAnalyzer.getPathPostParametersDel());
|
||||||
}
|
}
|
||||||
// #3.2
|
// #3.2
|
||||||
if (!attributeOld.equals(attributeNew)) {
|
if (!attributeOld.equals(attributeNew)) {
|
||||||
ResultsAnalyzerParameters postTelemetryAnalyzer = this.getAnalyzerParameters(new Gson().fromJson(telemetryOld, Set.class), telemetrySetNew);
|
ResultsAnalyzerParameters postTelemetryAnalyzer = this.getAnalyzerParameters(new Gson().fromJson(telemetryOld, new TypeToken<Set<String>>(){}.getType()), telemetrySetNew);
|
||||||
sentAttrToThingsboard.getPathPostParametersAdd().addAll(postTelemetryAnalyzer.getPathPostParametersAdd());
|
sentAttrToThingsboard.getPathPostParametersAdd().addAll(postTelemetryAnalyzer.getPathPostParametersAdd());
|
||||||
sentAttrToThingsboard.getPathPostParametersDel().addAll(postTelemetryAnalyzer.getPathPostParametersDel());
|
sentAttrToThingsboard.getPathPostParametersDel().addAll(postTelemetryAnalyzer.getPathPostParametersDel());
|
||||||
}
|
}
|
||||||
// #3.3
|
// #3.3
|
||||||
if (!keyNameOld.equals(keyNameNew)) {
|
if (!keyNameOld.equals(keyNameNew)) {
|
||||||
ResultsAnalyzerParameters keyNameChange = this.getAnalyzerKeyName(new Gson().fromJson(keyNameOld.toString(), ConcurrentHashMap.class),
|
ResultsAnalyzerParameters keyNameChange = this.getAnalyzerKeyName(new Gson().fromJson(keyNameOld.toString(), new TypeToken<ConcurrentHashMap<String, String>>(){}.getType()),
|
||||||
new Gson().fromJson(keyNameNew.toString(), ConcurrentHashMap.class));
|
new Gson().fromJson(keyNameNew.toString(), new TypeToken<ConcurrentHashMap<String, String>>(){}.getType()));
|
||||||
sentAttrToThingsboard.getPathPostParametersAdd().addAll(keyNameChange.getPathPostParametersAdd());
|
sentAttrToThingsboard.getPathPostParametersAdd().addAll(keyNameChange.getPathPostParametersAdd());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -849,8 +851,8 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
|
|||||||
|
|
||||||
// #5.1
|
// #5.1
|
||||||
if (!observeOld.equals(observeNew)) {
|
if (!observeOld.equals(observeNew)) {
|
||||||
Set observeSetOld = new Gson().fromJson(observeOld, Set.class);
|
Set<String> observeSetOld = new Gson().fromJson(observeOld, new TypeToken<>(){}.getType());
|
||||||
Set observeSetNew = new Gson().fromJson(observeNew, Set.class);
|
Set<String> observeSetNew = new Gson().fromJson(observeNew, new TypeToken<>(){}.getType());
|
||||||
//#5.2 add
|
//#5.2 add
|
||||||
// path Attr/Telemetry includes newObserve
|
// path Attr/Telemetry includes newObserve
|
||||||
attributeSetOld.addAll(telemetrySetOld);
|
attributeSetOld.addAll(telemetrySetOld);
|
||||||
@ -1120,7 +1122,7 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
|
|||||||
private List<String> getNamesAttrFromProfileIsWritable(LwM2MClient lwM2MClient) {
|
private List<String> getNamesAttrFromProfileIsWritable(LwM2MClient lwM2MClient) {
|
||||||
LwM2MClientProfile profile = lwM2mInMemorySecurityStore.getProfile(lwM2MClient.getProfileUuid());
|
LwM2MClientProfile profile = lwM2mInMemorySecurityStore.getProfile(lwM2MClient.getProfileUuid());
|
||||||
Set attrSet = new Gson().fromJson(profile.getPostAttributeProfile(), Set.class);
|
Set attrSet = new Gson().fromJson(profile.getPostAttributeProfile(), Set.class);
|
||||||
ConcurrentMap<String, String> keyNamesMap = new Gson().fromJson(profile.getPostKeyNameProfile().toString(), ConcurrentHashMap.class);
|
ConcurrentMap<String, String> keyNamesMap = new Gson().fromJson(profile.getPostKeyNameProfile().toString(), new TypeToken<ConcurrentHashMap<String, String>>(){}.getType());
|
||||||
|
|
||||||
ConcurrentMap<String, String> keyNamesIsWritable = keyNamesMap.entrySet()
|
ConcurrentMap<String, String> keyNamesIsWritable = keyNamesMap.entrySet()
|
||||||
.stream()
|
.stream()
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
FROM thingsboard/openjdk8
|
FROM thingsboard/openjdk11
|
||||||
|
|
||||||
COPY start-tb-lwm2m-transport.sh ${pkg.name}.deb /tmp/
|
COPY start-tb-lwm2m-transport.sh ${pkg.name}.deb /tmp/
|
||||||
|
|
||||||
|
|||||||
@ -98,7 +98,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<artifactId>mockito-all</artifactId>
|
<artifactId>mockito-core</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@ -14,10 +14,9 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
export JAVA_OPTS="$JAVA_OPTS -Xloggc:@pkg.logFolder@/gc.log -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
|
export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=@pkg.logFolder@/gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
|
||||||
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10"
|
export JAVA_OPTS="$JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError"
|
||||||
export JAVA_OPTS="$JAVA_OPTS -XX:GCLogFileSize=10M -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
|
export JAVA_OPTS="$JAVA_OPTS -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
|
||||||
export JAVA_OPTS="$JAVA_OPTS -XX:CMSWaitDuration=10000 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSParallelInitialMarkEnabled"
|
export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:MaxTenuringThreshold=10"
|
||||||
export JAVA_OPTS="$JAVA_OPTS -XX:+CMSEdenChunksRecordAlways -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly"
|
|
||||||
export LOG_FILENAME=${pkg.name}.out
|
export LOG_FILENAME=${pkg.name}.out
|
||||||
export LOADER_PATH=${pkg.installFolder}/conf
|
export LOADER_PATH=${pkg.installFolder}/conf
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user