@Override protected void onEvent(Event event) { if (!initialized) { try { TopologyManager.acquireReadLock(); log.debug("Complete topology event received to fault handling window processor."); CompleteTopologyEvent completeTopologyEvent = (CompleteTopologyEvent) event; initialized = faultHandler.loadTimeStampMapFromTopology(completeTopologyEvent.getTopology()); } catch (Exception e) { log.error("Error loading member time stamp map from complete topology event.", e); } finally { TopologyManager.releaseReadLock(); } } } });
@Override protected void onEvent(Event event) { if (!initialized) { try { TopologyManager.acquireReadLock(); log.debug("Complete topology event received to fault handling window processor."); CompleteTopologyEvent completeTopologyEvent = (CompleteTopologyEvent) event; initialized = faultHandler.loadTimeStampMapFromTopology(completeTopologyEvent.getTopology()); } catch (Exception e) { log.error("Error loading member time stamp map from complete topology event.", e); } finally { TopologyManager.releaseReadLock(); } } } });
@Override public void onCompleteTopologyEvent(CompleteTopologyEvent completeTopologyEvent) { if (log.isDebugEnabled()) { log.debug("Complete topology event received"); } String serviceNameInPayload = CartridgeAgentConfiguration.getInstance().getServiceName(); String clusterIdInPayload = CartridgeAgentConfiguration.getInstance().getClusterId(); String memberIdInPayload = CartridgeAgentConfiguration.getInstance().getMemberId(); boolean isConsistent = ExtensionUtils.checkTopologyConsistency(serviceNameInPayload, clusterIdInPayload, memberIdInPayload); if (!isConsistent) { // if this member isn't there in the complete topology return; } else { CartridgeAgentConfiguration.getInstance().setInitialized(true); } Topology topology = completeTopologyEvent.getTopology(); Service service = topology.getService(serviceNameInPayload); Cluster cluster = service.getCluster(clusterIdInPayload); Map<String, String> env = new HashMap<String, String>(); env.put("STRATOS_TOPOLOGY_JSON", gson.toJson(topology.getServices(), serviceType)); env.put("STRATOS_MEMBER_LIST_JSON", gson.toJson(cluster.getMembers(), memberType)); ExtensionUtils.executeCompleteTopologyExtension(env); }