code: public void setBeanManager(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager)
      {
          setBeanManagerProvider(this);
  
          BeanManagerInfo bmi = getBeanManagerInfo(getClassLoader(null));
          bmi.loadTimeBm =  beanManager;
      }
docs: It basically doesn't matter which of the system events we use,
  but basically we use the {@link AfterBeanDiscovery} event since it allows to use the
  {@link BeanManagerProvider} for all events which occur after the {@link AfterBeanDiscovery} event.
  
  @param afterBeanDiscovery event which we don't actually use ;)
  @param beanManager        the BeanManager we store and make available.