code: @Bean
      @ConditionalOnMissingBean
      @UIScope
      EventPushStrategy eventPushStrategy(final ConfigurableApplicationContext applicationContext,
              final ScheduledExecutorService executorService, final UIEventBus eventBus,
              final UIEventProvider eventProvider, final UiProperties uiProperties) {
          final DelayedEventBusPushStrategy delayedEventBusPushStrategy = new DelayedEventBusPushStrategy(executorService,
                  eventBus, eventProvider, uiProperties.getEvent().getPush().getDelay());
          applicationContext.addApplicationListener(delayedEventBusPushStrategy);
          return delayedEventBusPushStrategy;
      }
docs: The UI scoped event push strategy. Session scope is necessary, that every
  UI has an own strategy.
  
  @param applicationContext
  the context to add the listener to
  @param executorService
  the general scheduler service
  @param eventBus
  the ui event bus
  @param eventProvider
  the event provider
  @param uiProperties
  the ui properties
  @return the push strategy bean