/** * 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); } }