@Subscribe @AllowConcurrentEvents public void inspect(final NexusTaskEvent evt) { if (evt instanceof NexusTaskEventStarted<?>) { final String action = getActionFromTask(((NexusTaskEventStarted<?>) evt).getNexusTask()); final String message = getMessageFromTask(((NexusTaskEventStarted<?>) evt).getNexusTask()); final SystemProcess prc = getFeedRecorder().systemProcessStarted(action, message); putSystemProcessFromEventContext((NexusTaskEventStarted<?>) evt, prc); } else if (evt instanceof NexusTaskEventStoppedDone<?>) { final SystemProcess prc = getSystemProcessFromEventContext(((NexusTaskEventStoppedDone<?>) evt).getStartedEvent()); final String message = getMessageFromTask(((NexusTaskEventStoppedDone<?>) evt).getNexusTask()); getFeedRecorder().systemProcessFinished(prc, message); } else if (evt instanceof NexusTaskEventStoppedCanceled<?>) { final SystemProcess prc = getSystemProcessFromEventContext(((NexusTaskEventStoppedCanceled<?>) evt).getStartedEvent()); final String message = getMessageFromTask(((NexusTaskEventStoppedCanceled<?>) evt).getNexusTask()); getFeedRecorder().systemProcessCanceled(prc, message); } else if (evt instanceof NexusTaskEventStoppedFailed<?>) { final SystemProcess prc = getSystemProcessFromEventContext(((NexusTaskEventStoppedFailed<?>) evt).getStartedEvent()); getFeedRecorder().systemProcessBroken(prc, ((NexusTaskEventStoppedFailed<?>) evt).getFailureCause()); } }