Commit d8ea6ac37d568bb31be72fa4115e15e1691d2789

Authored by nickAS21
1 parent 447bf05b

Lwm2m: back: add tenantId and repositoryTenant - test3

@@ -52,6 +52,8 @@ import org.thingsboard.server.transport.lwm2m.server.adaptors.LwM2MJsonAdaptor; @@ -52,6 +52,8 @@ import org.thingsboard.server.transport.lwm2m.server.adaptors.LwM2MJsonAdaptor;
52 52
53 import java.util.List; 53 import java.util.List;
54 import java.util.UUID; 54 import java.util.UUID;
  55 +import java.util.concurrent.CountDownLatch;
  56 +import java.util.concurrent.TimeUnit;
55 57
56 import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportHandler.LOG_LW2M_TELEMETRY; 58 import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportHandler.LOG_LW2M_TELEMETRY;
57 59
@@ -152,7 +154,7 @@ public class LwM2mTransportContextServer extends TransportContext { @@ -152,7 +154,7 @@ public class LwM2mTransportContextServer extends TransportContext {
152 * @return 154 * @return
153 */ 155 */
154 public GetResourcesResponseMsg getResourceTenant (UUID tenantId, String resourceType) { 156 public GetResourcesResponseMsg getResourceTenant (UUID tenantId, String resourceType) {
155 - 157 + CountDownLatch latch = new CountDownLatch(1);
156 GetResourcesResponseMsg responseMsg = 158 GetResourcesResponseMsg responseMsg =
157 this.getTransportService() 159 this.getTransportService()
158 .getResources(GetResourcesRequestMsg.newBuilder() 160 .getResources(GetResourcesRequestMsg.newBuilder()
@@ -160,7 +162,41 @@ public class LwM2mTransportContextServer extends TransportContext { @@ -160,7 +162,41 @@ public class LwM2mTransportContextServer extends TransportContext {
160 .setTenantIdLSB(tenantId.getLeastSignificantBits()) 162 .setTenantIdLSB(tenantId.getLeastSignificantBits())
161 .setTenantIdMSB(tenantId.getMostSignificantBits()) 163 .setTenantIdMSB(tenantId.getMostSignificantBits())
162 .build()); 164 .build());
  165 + latch.countDown();
  166 + try {
  167 + latch.await(this.getLwM2MTransportConfigServer().getTimeout(), TimeUnit.MILLISECONDS);
  168 + } catch (InterruptedException e) {
  169 + log.error("Failed to await credentials!", e);
  170 + }
  171 +
163 return responseMsg; 172 return responseMsg;
164 } 173 }
165 174
  175 + public GetResourcesResponseMsg getResourceTenantProcess (UUID tenantId, String resourceType) {
  176 + CountDownLatch latch = new CountDownLatch(2);
  177 + final GetResourcesResponseMsg[] responseMsg = {null};
  178 + this.getTransportService().process(GetResourcesRequestMsg.newBuilder()
  179 + .setResourceType(resourceType)
  180 + .setTenantIdLSB(tenantId.getLeastSignificantBits())
  181 + .setTenantIdMSB(tenantId.getMostSignificantBits())
  182 + .build(),
  183 + new TransportServiceCallback<>() {
  184 + @Override
  185 + public void onSuccess(GetResourcesResponseMsg msg) { responseMsg[0] = msg;
  186 + latch.countDown();
  187 + }
  188 +
  189 + @Override
  190 + public void onError(Throwable e) {
  191 + log.trace("[{}] [{}] Failed to process credentials ", tenantId, e);
  192 + latch.countDown();
  193 + }
  194 + });
  195 + try {
  196 + latch.await(this.getLwM2MTransportConfigServer().getTimeout(), TimeUnit.MILLISECONDS);
  197 + } catch (InterruptedException e) {
  198 + log.error("Failed to await credentials!", e);
  199 + }
  200 + return responseMsg[0];
  201 + }
166 } 202 }
@@ -101,7 +101,8 @@ public class LwM2mTransportServerConfiguration { @@ -101,7 +101,8 @@ public class LwM2mTransportServerConfiguration {
101 builder.setCoapConfig(getCoapConfig(serverPortNoSec, serverSecurePort)); 101 builder.setCoapConfig(getCoapConfig(serverPortNoSec, serverSecurePort));
102 102
103 /** Define model provider (Create Models )*/ 103 /** Define model provider (Create Models )*/
104 - TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name()); 104 + TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenantProcess(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
  105 +// TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
105 // LwM2mModelProvider modelProvider = new VersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueCommon()); 106 // LwM2mModelProvider modelProvider = new VersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueCommon());
106 LwM2mModelProvider modelProvider = new LwM2mVersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueServer(), this.lwM2mClientContext); 107 LwM2mModelProvider modelProvider = new LwM2mVersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueServer(), this.lwM2mClientContext);
107 builder.setObjectModelProvider(modelProvider); 108 builder.setObjectModelProvider(modelProvider);
@@ -40,6 +40,8 @@ import org.springframework.stereotype.Service; @@ -40,6 +40,8 @@ import org.springframework.stereotype.Service;
40 import org.thingsboard.common.util.JacksonUtil; 40 import org.thingsboard.common.util.JacksonUtil;
41 import org.thingsboard.server.common.data.Device; 41 import org.thingsboard.server.common.data.Device;
42 import org.thingsboard.server.common.data.DeviceProfile; 42 import org.thingsboard.server.common.data.DeviceProfile;
  43 +import org.thingsboard.server.common.data.id.TenantId;
  44 +import org.thingsboard.server.common.data.transport.resource.ResourceType;
43 import org.thingsboard.server.common.transport.TransportService; 45 import org.thingsboard.server.common.transport.TransportService;
44 import org.thingsboard.server.common.transport.adaptor.AdaptorException; 46 import org.thingsboard.server.common.transport.adaptor.AdaptorException;
45 import org.thingsboard.server.common.transport.adaptor.JsonConverter; 47 import org.thingsboard.server.common.transport.adaptor.JsonConverter;
@@ -154,7 +156,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService { @@ -154,7 +156,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
154 try { 156 try {
155 log.warn("[{}] [{{}] Client: create after Registration", registration.getEndpoint(), registration.getId()); 157 log.warn("[{}] [{{}] Client: create after Registration", registration.getEndpoint(), registration.getId());
156 ((LwM2mVersionedModelProvider)leshanServer.getModelProvider()).setRepository(this.lwM2mTransportContextServer.getLwM2MTransportConfigServer().getModelsValueCommon()); 158 ((LwM2mVersionedModelProvider)leshanServer.getModelProvider()).setRepository(this.lwM2mTransportContextServer.getLwM2MTransportConfigServer().getModelsValueCommon());
157 -// (((VersionedModelProvider) (leshanServer)).modelProvider).repository; 159 + TransportProtos.GetResourcesResponseMsg responseMsg= this.lwM2mTransportContextServer.getResourceTenantProcess(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
  160 +// TransportProtos.GetResourcesResponseMsg responseMsg= this.lwM2mTransportContextServer.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
  161 +
  162 + // (((VersionedModelProvider) (leshanServer)).modelProvider).repository;
158 LwM2mClient lwM2MClient = this.lwM2mClientContext.updateInSessionsLwM2MClient(registration); 163 LwM2mClient lwM2MClient = this.lwM2mClientContext.updateInSessionsLwM2MClient(registration);
159 if (lwM2MClient != null) { 164 if (lwM2MClient != null) {
160 SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration); 165 SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration);
@@ -75,8 +75,9 @@ public interface TransportService { @@ -75,8 +75,9 @@ public interface TransportService {
75 75
76 void onProfileUpdate(DeviceProfile deviceProfile); 76 void onProfileUpdate(DeviceProfile deviceProfile);
77 77
78 - void process(LwM2MRequestMsg msg,  
79 - TransportServiceCallback<LwM2MResponseMsg> callback); 78 + void process(LwM2MRequestMsg msg, TransportServiceCallback<LwM2MResponseMsg> callback);
  79 +
  80 + void process(GetResourcesRequestMsg msg, TransportServiceCallback<GetResourcesResponseMsg> callback);
80 81
81 void process(SessionInfoProto sessionInfo, SessionEventMsg msg, TransportServiceCallback<Void> callback); 82 void process(SessionInfoProto sessionInfo, SessionEventMsg msg, TransportServiceCallback<Void> callback);
82 83
@@ -61,7 +61,6 @@ import org.thingsboard.server.common.transport.util.JsonUtils; @@ -61,7 +61,6 @@ import org.thingsboard.server.common.transport.util.JsonUtils;
61 import org.thingsboard.server.gen.transport.TransportProtos; 61 import org.thingsboard.server.gen.transport.TransportProtos;
62 import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceRequestMsg; 62 import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceRequestMsg;
63 import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceResponseMsg; 63 import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceResponseMsg;
64 -import org.thingsboard.server.gen.transport.TransportProtos.SessionInfoProto;  
65 import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; 64 import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg;
66 import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; 65 import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg;
67 import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; 66 import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg;
@@ -267,6 +266,16 @@ public class DefaultTransportService implements TransportService { @@ -267,6 +266,16 @@ public class DefaultTransportService implements TransportService {
267 } 266 }
268 267
269 @Override 268 @Override
  269 + public void process(TransportProtos.GetResourcesRequestMsg msg, TransportServiceCallback<TransportProtos.GetResourcesResponseMsg> callback) {
  270 + log.trace("Processing msg: {}", msg);
  271 + TbProtoQueueMsg<TransportProtos.TransportApiRequestMsg> protoMsg =
  272 + new TbProtoQueueMsg<>(UUID.randomUUID(), TransportProtos.TransportApiRequestMsg.newBuilder().setResourcesRequestMsg(msg).build());
  273 + AsyncCallbackTemplate.withCallback(transportApiRequestTemplate.send(protoMsg),
  274 + response -> callback.onSuccess(response.getValue().getResourcesResponseMsg()), callback::onError, transportCallbackExecutor);
  275 + }
  276 +
  277 +
  278 + @Override
270 public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceTokenRequestMsg msg, 279 public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceTokenRequestMsg msg,
271 TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) { 280 TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
272 log.trace("Processing msg: {}", msg); 281 log.trace("Processing msg: {}", msg);
@@ -292,6 +301,7 @@ public class DefaultTransportService implements TransportService { @@ -292,6 +301,7 @@ public class DefaultTransportService implements TransportService {
292 response -> callback.onSuccess(response.getValue().getValidateCredResponseMsg()), callback::onError, transportCallbackExecutor); 301 response -> callback.onSuccess(response.getValue().getValidateCredResponseMsg()), callback::onError, transportCallbackExecutor);
293 } 302 }
294 303
  304 + @Override
295 public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) { 305 public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
296 log.trace("Processing msg: {}", msg); 306 log.trace("Processing msg: {}", msg);
297 TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build()); 307 TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build());