/** * Creates a new extension bean. * * @param <T> extension service class * @param clazz impl. class * @return a new extension service bean */ public <T> ExtensionBean<T> createExtensionComponent(Class<T> clazz) { Asserts.nullCheckForClass(clazz); ExtensionBeanBuilder<T> extensionBeanBuilder = new ExtensionBeanBuilder<>(webBeansContext, clazz); ExtensionBean<T> bean = extensionBeanBuilder.getBean(); new ObserverMethodsBuilder<>(webBeansContext, extensionBeanBuilder.getAnnotatedType()).defineObserverMethods(bean); return bean; }