diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/enricher/matching/HeuristicEventMatchingEngine.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/enricher/matching/HeuristicEventMatchingEngine.java index 4627560..8ca83a3 100644 --- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/enricher/matching/HeuristicEventMatchingEngine.java +++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/enricher/matching/HeuristicEventMatchingEngine.java @@ -69,7 +69,22 @@ public class HeuristicEventMatchingEngine implements EventMatchingEngine { } if (hasPolyMatch) return true; - if (polyEvents.isEmpty() && isWildcard) return true; + if (polyEvents.isEmpty() && isWildcard) { + String eventTypeFqn = triggerPoint.getEventTypeFqn(); + if (eventTypeFqn != null && smEventRaw.contains(".")) { + String smEventClass = smEventRaw.substring(0, smEventRaw.lastIndexOf('.')); + if (smEventClass.equals(eventTypeFqn)) { + return true; + } + String simpleEventType = eventTypeFqn.contains(".") ? eventTypeFqn.substring(eventTypeFqn.lastIndexOf('.') + 1) : eventTypeFqn; + String simpleSmClass = smEventClass.contains(".") ? smEventClass.substring(smEventClass.lastIndexOf('.') + 1) : smEventClass; + if (simpleEventType.equalsIgnoreCase(simpleSmClass)) { + return true; + } + return false; + } + return true; + } if (rawTriggerEvent.contains(".") && smEventRaw.contains(".")) { if (smEventRaw.equals(rawTriggerEvent) || smEventRaw.endsWith("." + rawTriggerEvent) || rawTriggerEvent.endsWith("." + smEventRaw)) {