thingsboard-aplcache

Details

diff --git a/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java b/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java
index 3507f24..cb097fb 100644
--- a/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java
+++ b/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java
@@ -32,6 +32,7 @@ import org.thingsboard.server.actors.rpc.RpcManagerActor;
 import org.thingsboard.server.actors.rpc.RpcSessionCreateRequestMsg;
 import org.thingsboard.server.actors.session.SessionManagerActor;
 import org.thingsboard.server.actors.stats.StatsActor;
+import org.thingsboard.server.common.data.Device;
 import org.thingsboard.server.common.data.id.DeviceId;
 import org.thingsboard.server.common.data.id.EntityId;
 import org.thingsboard.server.common.data.id.TenantId;
@@ -48,6 +49,7 @@ import org.thingsboard.server.gen.cluster.ClusterAPIProtos;
 import org.thingsboard.server.service.cluster.discovery.DiscoveryService;
 import org.thingsboard.server.service.cluster.discovery.ServerInstance;
 import org.thingsboard.server.service.cluster.rpc.ClusterRpcService;
+import org.thingsboard.server.service.state.DeviceStateService;
 import scala.concurrent.Await;
 import scala.concurrent.Future;
 import scala.concurrent.duration.Duration;
@@ -81,6 +83,9 @@ public class DefaultActorService implements ActorService {
     @Autowired
     private DiscoveryService discoveryService;
 
+    @Autowired
+    private DeviceStateService deviceStateService;
+
     private ActorSystem system;
 
     private ActorRef appActor;
@@ -199,7 +204,7 @@ public class DefaultActorService implements ActorService {
     public void onReceivedMsg(ServerAddress source, ClusterAPIProtos.ClusterMessage msg) {
         ServerAddress serverAddress = new ServerAddress(source.getHost(), source.getPort());
         log.info("Received msg [{}] from [{}]", msg.getMessageType().name(), serverAddress);
-        if(log.isDebugEnabled()){
+        if (log.isDebugEnabled()) {
             log.info("MSG: ", msg);
         }
         switch (msg.getMessageType()) {
@@ -254,4 +259,8 @@ public class DefaultActorService implements ActorService {
         rpcManagerActor.tell(msg, ActorRef.noSender());
     }
 
+    @Override
+    public void onDeviceAdded(Device device) {
+        deviceStateService.onDeviceAdded(device);
+    }
 }
diff --git a/common/transport/src/main/java/org/thingsboard/server/common/transport/SessionMsgProcessor.java b/common/transport/src/main/java/org/thingsboard/server/common/transport/SessionMsgProcessor.java
index ea77366..4cff643 100644
--- a/common/transport/src/main/java/org/thingsboard/server/common/transport/SessionMsgProcessor.java
+++ b/common/transport/src/main/java/org/thingsboard/server/common/transport/SessionMsgProcessor.java
@@ -15,11 +15,13 @@
  */
 package org.thingsboard.server.common.transport;
 
-import org.thingsboard.server.common.data.security.DeviceCredentialsFilter;
+import org.thingsboard.server.common.data.Device;
 import org.thingsboard.server.common.msg.aware.SessionAwareMsg;
 
 public interface SessionMsgProcessor {
 
     void process(SessionAwareMsg msg);
 
+    void onDeviceAdded(Device device);
+
 }
diff --git a/transport/coap/src/test/java/org/thingsboard/server/transport/coap/CoapServerTest.java b/transport/coap/src/test/java/org/thingsboard/server/transport/coap/CoapServerTest.java
index 4815056..e2fd7cd 100644
--- a/transport/coap/src/test/java/org/thingsboard/server/transport/coap/CoapServerTest.java
+++ b/transport/coap/src/test/java/org/thingsboard/server/transport/coap/CoapServerTest.java
@@ -130,6 +130,13 @@ public class CoapServerTest {
                         }
                     }
                 }
+
+                @Override
+                public void onDeviceAdded(Device device) {
+
+                }
+
+
             };
         }
 
diff --git a/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java b/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java
index f666bb8..bf2aa0c 100644
--- a/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java
+++ b/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java
@@ -92,6 +92,7 @@ public class GatewaySessionCtx {
                 device.setType(deviceType);
                 device = deviceService.saveDevice(device);
                 relationService.saveRelationAsync(new EntityRelation(gateway.getId(), device.getId(), "Created"));
+                processor.onDeviceAdded(device);
             }
             GatewayDeviceSessionCtx ctx = new GatewayDeviceSessionCtx(this, device);
             devices.put(deviceName, ctx);