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,11 +115,24 @@ public class AnnotationComponentDiscoveryService implements ComponentDiscoverySe | ||
115 | } | 115 | } |
116 | 116 | ||
117 | private void putComponentIntoMaps(ComponentType type, RuleNode ruleNodeAnnotation, ComponentDescriptor component) { | 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,7 +161,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | ||
161 | public void deleteEdge(EdgeId edgeId) { | 161 | public void deleteEdge(EdgeId edgeId) { |
162 | EdgeGrpcSession session = sessions.get(edgeId); | 162 | EdgeGrpcSession session = sessions.get(edgeId); |
163 | if (session != null && session.isConnected()) { | 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 | session.close(); | 165 | session.close(); |
166 | sessions.remove(edgeId); | 166 | sessions.remove(edgeId); |
167 | sessionNewEvents.remove(edgeId); | 167 | sessionNewEvents.remove(edgeId); |
@@ -179,11 +179,12 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | @@ -179,11 +179,12 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | ||
179 | } | 179 | } |
180 | 180 | ||
181 | private void onEdgeConnect(EdgeId edgeId, EdgeGrpcSession edgeGrpcSession) { | 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 | sessions.put(edgeId, edgeGrpcSession); | 183 | sessions.put(edgeId, edgeGrpcSession); |
184 | sessionNewEvents.put(edgeId, false); | 184 | sessionNewEvents.put(edgeId, false); |
185 | save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, true); | 185 | save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, true); |
186 | save(edgeId, DefaultDeviceStateService.LAST_CONNECT_TIME, System.currentTimeMillis()); | 186 | save(edgeId, DefaultDeviceStateService.LAST_CONNECT_TIME, System.currentTimeMillis()); |
187 | + cancelScheduleEdgeEventsCheck(edgeId); | ||
187 | scheduleEdgeEventsCheck(edgeGrpcSession); | 188 | scheduleEdgeEventsCheck(edgeGrpcSession); |
188 | } | 189 | } |
189 | 190 | ||
@@ -214,7 +215,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | @@ -214,7 +215,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | ||
214 | scheduleEdgeEventsCheck(session); | 215 | scheduleEdgeEventsCheck(session); |
215 | }, ctx.getEdgeEventStorageSettings().getNoRecordsSleepInterval(), TimeUnit.MILLISECONDS); | 216 | }, ctx.getEdgeEventStorageSettings().getNoRecordsSleepInterval(), TimeUnit.MILLISECONDS); |
216 | sessionEdgeEventChecks.put(edgeId, schedule); | 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 | } else { | 219 | } else { |
219 | log.debug("[{}] Session was removed and edge event check schedule must not be started [{}]", | 220 | log.debug("[{}] Session was removed and edge event check schedule must not be started [{}]", |
220 | tenantId, edgeId.getId()); | 221 | tenantId, edgeId.getId()); |
@@ -222,6 +223,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | @@ -222,6 +223,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | ||
222 | } | 223 | } |
223 | 224 | ||
224 | private void cancelScheduleEdgeEventsCheck(EdgeId edgeId) { | 225 | private void cancelScheduleEdgeEventsCheck(EdgeId edgeId) { |
226 | + log.trace("[{}] cancelling edge event check for edge", edgeId); | ||
225 | if (sessionEdgeEventChecks.containsKey(edgeId)) { | 227 | if (sessionEdgeEventChecks.containsKey(edgeId)) { |
226 | ScheduledFuture<?> sessionEdgeEventCheck = sessionEdgeEventChecks.get(edgeId); | 228 | ScheduledFuture<?> sessionEdgeEventCheck = sessionEdgeEventChecks.get(edgeId); |
227 | if (sessionEdgeEventCheck != null && !sessionEdgeEventCheck.isCancelled() && !sessionEdgeEventCheck.isDone()) { | 229 | if (sessionEdgeEventCheck != null && !sessionEdgeEventCheck.isCancelled() && !sessionEdgeEventCheck.isDone()) { |
@@ -232,7 +234,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | @@ -232,7 +234,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i | ||
232 | } | 234 | } |
233 | 235 | ||
234 | private void onEdgeDisconnect(EdgeId edgeId) { | 236 | private void onEdgeDisconnect(EdgeId edgeId) { |
235 | - log.debug("[{}] onEdgeDisconnect", edgeId); | 237 | + log.info("[{}] edge disconnected!", edgeId); |
236 | sessions.remove(edgeId); | 238 | sessions.remove(edgeId); |
237 | sessionNewEvents.remove(edgeId); | 239 | sessionNewEvents.remove(edgeId); |
238 | save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, false); | 240 | save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, false); |