/**
  * Bean and observer registration is delayed until after all {@link AfterBeanDiscovery} observers
  * are notified.
  */
 private void finish() {
   try {
     GlobalEnablementBuilder globalEnablementBuilder =
         getBeanManager().getServices().get(GlobalEnablementBuilder.class);
     for (BeanRegistration registration : additionalBeans) {
       processBeanRegistration(registration, globalEnablementBuilder);
     }
     for (ObserverMethod<?> observer : additionalObservers) {
       processAdditionalObserver(observer);
     }
     for (ObserverMethodConfigurator<?> configurator : additionalObserverConfigurators) {
       ObserverMethod<?> observer = new ObserverMethodBuilderImpl<>(cast(configurator)).build();
       processAdditionalObserver(observer);
     }
   } catch (Exception e) {
     throw new DefinitionException(e);
   }
 }