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 52
53 53 import java.util.List;
54 54 import java.util.UUID;
  55 +import java.util.concurrent.CountDownLatch;
  56 +import java.util.concurrent.TimeUnit;
55 57
56 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 154 * @return
153 155 */
154 156 public GetResourcesResponseMsg getResourceTenant (UUID tenantId, String resourceType) {
155   -
  157 + CountDownLatch latch = new CountDownLatch(1);
156 158 GetResourcesResponseMsg responseMsg =
157 159 this.getTransportService()
158 160 .getResources(GetResourcesRequestMsg.newBuilder()
... ... @@ -160,7 +162,41 @@ public class LwM2mTransportContextServer extends TransportContext {
160 162 .setTenantIdLSB(tenantId.getLeastSignificantBits())
161 163 .setTenantIdMSB(tenantId.getMostSignificantBits())
162 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 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 101 builder.setCoapConfig(getCoapConfig(serverPortNoSec, serverSecurePort));
102 102
103 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 106 // LwM2mModelProvider modelProvider = new VersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueCommon());
106 107 LwM2mModelProvider modelProvider = new LwM2mVersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueServer(), this.lwM2mClientContext);
107 108 builder.setObjectModelProvider(modelProvider);
... ...
... ... @@ -40,6 +40,8 @@ import org.springframework.stereotype.Service;
40 40 import org.thingsboard.common.util.JacksonUtil;
41 41 import org.thingsboard.server.common.data.Device;
42 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 45 import org.thingsboard.server.common.transport.TransportService;
44 46 import org.thingsboard.server.common.transport.adaptor.AdaptorException;
45 47 import org.thingsboard.server.common.transport.adaptor.JsonConverter;
... ... @@ -154,7 +156,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
154 156 try {
155 157 log.warn("[{}] [{{}] Client: create after Registration", registration.getEndpoint(), registration.getId());
156 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 163 LwM2mClient lwM2MClient = this.lwM2mClientContext.updateInSessionsLwM2MClient(registration);
159 164 if (lwM2MClient != null) {
160 165 SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration);
... ...
... ... @@ -75,8 +75,9 @@ public interface TransportService {
75 75
76 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 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 61 import org.thingsboard.server.gen.transport.TransportProtos;
62 62 import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceRequestMsg;
63 63 import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceResponseMsg;
64   -import org.thingsboard.server.gen.transport.TransportProtos.SessionInfoProto;
65 64 import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg;
66 65 import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg;
67 66 import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg;
... ... @@ -267,6 +266,16 @@ public class DefaultTransportService implements TransportService {
267 266 }
268 267
269 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 279 public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceTokenRequestMsg msg,
271 280 TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
272 281 log.trace("Processing msg: {}", msg);
... ... @@ -292,6 +301,7 @@ public class DefaultTransportService implements TransportService {
292 301 response -> callback.onSuccess(response.getValue().getValidateCredResponseMsg()), callback::onError, transportCallbackExecutor);
293 302 }
294 303
  304 + @Override
295 305 public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
296 306 log.trace("Processing msg: {}", msg);
297 307 TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build());
... ...