Commit c7dd62485935114e13f6769f7ceed61dd4e01494
Merge remote-tracking branch 'origin/develop/2.6-edge' into develop/3.3-edge
Showing
2 changed files
with
23 additions
and
8 deletions
... | ... | @@ -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); | ... | ... |