Commit c7dd62485935114e13f6769f7ceed61dd4e01494

Authored by Volodymyr Babak
2 parents 9bce47cd 8c45bf97

Merge remote-tracking branch 'origin/develop/2.6-edge' into develop/3.3-edge

... ... @@ -115,11 +115,24 @@ public class AnnotationComponentDiscoveryService implements ComponentDiscoverySe
115 115 }
116 116
117 117 private void putComponentIntoMaps(ComponentType type, RuleNode ruleNodeAnnotation, ComponentDescriptor component) {
118   - if (ruleChainTypeContainsArray(RuleChainType.CORE, ruleNodeAnnotation.ruleChainTypes())) {
119   - coreComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
  118 + boolean ruleChainTypesMethodAvailable;
  119 + try {
  120 + ruleNodeAnnotation.getClass().getMethod("ruleChainTypes");
  121 + ruleChainTypesMethodAvailable = true;
  122 + } catch (NoSuchMethodException exception) {
  123 + log.warn("[{}] does not have ruleChainTypes. Probably extension class compiled before 3.3 release. " +
  124 + "Please update your extensions and compile using latest 3.3 release dependency", ruleNodeAnnotation.name());
  125 + ruleChainTypesMethodAvailable = false;
120 126 }
121   - if (ruleChainTypeContainsArray(RuleChainType.EDGE, ruleNodeAnnotation.ruleChainTypes())) {
122   - edgeComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
  127 + if (ruleChainTypesMethodAvailable) {
  128 + if (ruleChainTypeContainsArray(RuleChainType.CORE, ruleNodeAnnotation.ruleChainTypes())) {
  129 + coreComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
  130 + }
  131 + if (ruleChainTypeContainsArray(RuleChainType.EDGE, ruleNodeAnnotation.ruleChainTypes())) {
  132 + edgeComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
  133 + }
  134 + } else {
  135 + coreComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
123 136 }
124 137 }
125 138
... ...
... ... @@ -161,7 +161,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
161 161 public void deleteEdge(EdgeId edgeId) {
162 162 EdgeGrpcSession session = sessions.get(edgeId);
163 163 if (session != null && session.isConnected()) {
164   - log.debug("Closing and removing session for edge [{}]", edgeId);
  164 + log.info("Closing and removing session for edge [{}]", edgeId);
165 165 session.close();
166 166 sessions.remove(edgeId);
167 167 sessionNewEvents.remove(edgeId);
... ... @@ -179,11 +179,12 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
179 179 }
180 180
181 181 private void onEdgeConnect(EdgeId edgeId, EdgeGrpcSession edgeGrpcSession) {
182   - log.debug("[{}] onEdgeConnect [{}]", edgeId, edgeGrpcSession.getSessionId());
  182 + log.info("[{}] edge [{}] connected successfully.", edgeGrpcSession.getSessionId(), edgeId);
183 183 sessions.put(edgeId, edgeGrpcSession);
184 184 sessionNewEvents.put(edgeId, false);
185 185 save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, true);
186 186 save(edgeId, DefaultDeviceStateService.LAST_CONNECT_TIME, System.currentTimeMillis());
  187 + cancelScheduleEdgeEventsCheck(edgeId);
187 188 scheduleEdgeEventsCheck(edgeGrpcSession);
188 189 }
189 190
... ... @@ -214,7 +215,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
214 215 scheduleEdgeEventsCheck(session);
215 216 }, ctx.getEdgeEventStorageSettings().getNoRecordsSleepInterval(), TimeUnit.MILLISECONDS);
216 217 sessionEdgeEventChecks.put(edgeId, schedule);
217   - log.trace("[{}] Check edge event was scheduler for edge [{}]", tenantId, edgeId.getId());
  218 + log.trace("[{}] Check edge event scheduled for edge [{}]", tenantId, edgeId.getId());
218 219 } else {
219 220 log.debug("[{}] Session was removed and edge event check schedule must not be started [{}]",
220 221 tenantId, edgeId.getId());
... ... @@ -222,6 +223,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
222 223 }
223 224
224 225 private void cancelScheduleEdgeEventsCheck(EdgeId edgeId) {
  226 + log.trace("[{}] cancelling edge event check for edge", edgeId);
225 227 if (sessionEdgeEventChecks.containsKey(edgeId)) {
226 228 ScheduledFuture<?> sessionEdgeEventCheck = sessionEdgeEventChecks.get(edgeId);
227 229 if (sessionEdgeEventCheck != null && !sessionEdgeEventCheck.isCancelled() && !sessionEdgeEventCheck.isDone()) {
... ... @@ -232,7 +234,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
232 234 }
233 235
234 236 private void onEdgeDisconnect(EdgeId edgeId) {
235   - log.debug("[{}] onEdgeDisconnect", edgeId);
  237 + log.info("[{}] edge disconnected!", edgeId);
236 238 sessions.remove(edgeId);
237 239 sessionNewEvents.remove(edgeId);
238 240 save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, false);
... ...