Fixed load previous extension files. Improve edge session loggin
This commit is contained in:
parent
d749e98de2
commit
8c45bf972e
@ -115,11 +115,24 @@ public class AnnotationComponentDiscoveryService implements ComponentDiscoverySe
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void putComponentIntoMaps(ComponentType type, RuleNode ruleNodeAnnotation, ComponentDescriptor component) {
|
private void putComponentIntoMaps(ComponentType type, RuleNode ruleNodeAnnotation, ComponentDescriptor component) {
|
||||||
if (ruleChainTypeContainsArray(RuleChainType.CORE, ruleNodeAnnotation.ruleChainTypes())) {
|
boolean ruleChainTypesMethodAvailable;
|
||||||
coreComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
|
try {
|
||||||
|
ruleNodeAnnotation.getClass().getMethod("ruleChainTypes");
|
||||||
|
ruleChainTypesMethodAvailable = true;
|
||||||
|
} catch (NoSuchMethodException exception) {
|
||||||
|
log.warn("[{}] does not have ruleChainTypes. Probably extension class compiled before 3.3 release. " +
|
||||||
|
"Please update your extensions and compile using latest 3.3 release dependency", ruleNodeAnnotation.name());
|
||||||
|
ruleChainTypesMethodAvailable = false;
|
||||||
}
|
}
|
||||||
if (ruleChainTypeContainsArray(RuleChainType.EDGE, ruleNodeAnnotation.ruleChainTypes())) {
|
if (ruleChainTypesMethodAvailable) {
|
||||||
edgeComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
|
if (ruleChainTypeContainsArray(RuleChainType.CORE, ruleNodeAnnotation.ruleChainTypes())) {
|
||||||
|
coreComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
|
||||||
|
}
|
||||||
|
if (ruleChainTypeContainsArray(RuleChainType.EDGE, ruleNodeAnnotation.ruleChainTypes())) {
|
||||||
|
edgeComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
coreComponentsMap.computeIfAbsent(type, k -> new ArrayList<>()).add(component);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -161,7 +161,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
|
|||||||
public void deleteEdge(EdgeId edgeId) {
|
public void deleteEdge(EdgeId edgeId) {
|
||||||
EdgeGrpcSession session = sessions.get(edgeId);
|
EdgeGrpcSession session = sessions.get(edgeId);
|
||||||
if (session != null && session.isConnected()) {
|
if (session != null && session.isConnected()) {
|
||||||
log.debug("Closing and removing session for edge [{}]", edgeId);
|
log.info("Closing and removing session for edge [{}]", edgeId);
|
||||||
session.close();
|
session.close();
|
||||||
sessions.remove(edgeId);
|
sessions.remove(edgeId);
|
||||||
sessionNewEvents.remove(edgeId);
|
sessionNewEvents.remove(edgeId);
|
||||||
@ -179,11 +179,12 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void onEdgeConnect(EdgeId edgeId, EdgeGrpcSession edgeGrpcSession) {
|
private void onEdgeConnect(EdgeId edgeId, EdgeGrpcSession edgeGrpcSession) {
|
||||||
log.debug("[{}] onEdgeConnect [{}]", edgeId, edgeGrpcSession.getSessionId());
|
log.info("[{}] edge [{}] connected successfully.", edgeGrpcSession.getSessionId(), edgeId);
|
||||||
sessions.put(edgeId, edgeGrpcSession);
|
sessions.put(edgeId, edgeGrpcSession);
|
||||||
sessionNewEvents.put(edgeId, false);
|
sessionNewEvents.put(edgeId, false);
|
||||||
save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, true);
|
save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, true);
|
||||||
save(edgeId, DefaultDeviceStateService.LAST_CONNECT_TIME, System.currentTimeMillis());
|
save(edgeId, DefaultDeviceStateService.LAST_CONNECT_TIME, System.currentTimeMillis());
|
||||||
|
cancelScheduleEdgeEventsCheck(edgeId);
|
||||||
scheduleEdgeEventsCheck(edgeGrpcSession);
|
scheduleEdgeEventsCheck(edgeGrpcSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,7 +215,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
|
|||||||
scheduleEdgeEventsCheck(session);
|
scheduleEdgeEventsCheck(session);
|
||||||
}, ctx.getEdgeEventStorageSettings().getNoRecordsSleepInterval(), TimeUnit.MILLISECONDS);
|
}, ctx.getEdgeEventStorageSettings().getNoRecordsSleepInterval(), TimeUnit.MILLISECONDS);
|
||||||
sessionEdgeEventChecks.put(edgeId, schedule);
|
sessionEdgeEventChecks.put(edgeId, schedule);
|
||||||
log.trace("[{}] Check edge event was scheduler for edge [{}]", tenantId, edgeId.getId());
|
log.trace("[{}] Check edge event scheduled for edge [{}]", tenantId, edgeId.getId());
|
||||||
} else {
|
} else {
|
||||||
log.debug("[{}] Session was removed and edge event check schedule must not be started [{}]",
|
log.debug("[{}] Session was removed and edge event check schedule must not be started [{}]",
|
||||||
tenantId, edgeId.getId());
|
tenantId, edgeId.getId());
|
||||||
@ -222,6 +223,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void cancelScheduleEdgeEventsCheck(EdgeId edgeId) {
|
private void cancelScheduleEdgeEventsCheck(EdgeId edgeId) {
|
||||||
|
log.trace("[{}] cancelling edge event check for edge", edgeId);
|
||||||
if (sessionEdgeEventChecks.containsKey(edgeId)) {
|
if (sessionEdgeEventChecks.containsKey(edgeId)) {
|
||||||
ScheduledFuture<?> sessionEdgeEventCheck = sessionEdgeEventChecks.get(edgeId);
|
ScheduledFuture<?> sessionEdgeEventCheck = sessionEdgeEventChecks.get(edgeId);
|
||||||
if (sessionEdgeEventCheck != null && !sessionEdgeEventCheck.isCancelled() && !sessionEdgeEventCheck.isDone()) {
|
if (sessionEdgeEventCheck != null && !sessionEdgeEventCheck.isCancelled() && !sessionEdgeEventCheck.isDone()) {
|
||||||
@ -232,7 +234,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void onEdgeDisconnect(EdgeId edgeId) {
|
private void onEdgeDisconnect(EdgeId edgeId) {
|
||||||
log.debug("[{}] onEdgeDisconnect", edgeId);
|
log.info("[{}] edge disconnected!", edgeId);
|
||||||
sessions.remove(edgeId);
|
sessions.remove(edgeId);
|
||||||
sessionNewEvents.remove(edgeId);
|
sessionNewEvents.remove(edgeId);
|
||||||
save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, false);
|
save(edgeId, DefaultDeviceStateService.ACTIVITY_STATE, false);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user