code: @Override
      public <T extends RootApplicationEvent> void dispatch(T event) {
          if (null == event || !subscriptions.containsKey(event.getClass())) {
              return;
          }
          synchronized (subscriptions.get(event.getClass())) {
              Set<EventListener> listeners = subscriptions.get(event.getClass());
              listeners.forEach(l -> l.onEvent(event));
          }
      }
docs: {@inheritDoc}