Class ExtensionsEntryPoint


  • public class ExtensionsEntryPoint
    extends Object
    Entrypoint for the Build Compatible Extensions implementation. Used by the rest of ArC.

    Exactly one instance of this class is supposed to exist for a single BeanProcessor.

    All methods are single-threaded (serial), but it is expected that one may be called on a different thread than the other. Therefore, this class as well as all other classes that implement the BCExtensions API do not guard data against concurrent access, but they do ensure visibility.

    • Constructor Detail

      • ExtensionsEntryPoint

        public ExtensionsEntryPoint()
      • ExtensionsEntryPoint

        public ExtensionsEntryPoint​(List<jakarta.enterprise.inject.build.compatible.spi.BuildCompatibleExtension> extensions)
    • Method Detail

      • runDiscovery

        public void runDiscovery​(org.jboss.jandex.IndexView applicationIndex,
                                 Set<String> additionalClasses)
        Must be called first, before registerMetaAnnotations.

        It is a no-op if no BuildCompatibleExtension was found.

      • registerMetaAnnotations

        public void registerMetaAnnotations​(BeanProcessor.Builder builder,
                                            CustomAlterableContexts customAlterableContexts)
        Must be called after runDiscovery and before runEnhancement.

        It is a no-op if no BuildCompatibleExtension was found.

      • runEnhancement

        public void runEnhancement​(org.jboss.jandex.IndexView beanArchiveIndex,
                                   BeanProcessor.Builder builder)
        Must be called after registerMetaAnnotations and before runRegistration.

        It is a no-op if no BuildCompatibleExtension was found.

      • runRegistration

        public void runRegistration​(org.jboss.jandex.IndexView beanArchiveIndex,
                                    Collection<BeanInfo> allBeans,
                                    Collection<ObserverInfo> allObservers)
        Must be called after runEnhancement and before runSynthesis.

        It is a no-op if no BuildCompatibleExtension was found.

      • runSynthesis

        public void runSynthesis​(org.jboss.jandex.IndexView beanArchiveIndex)
        Must be called after runRegistration and before registerSyntheticBeans.

        It is a no-op if no BuildCompatibleExtension was found.

      • registerSyntheticBeans

        public void registerSyntheticBeans​(BeanRegistrar.RegistrationContext context)
        Must be called after runSynthesis and before runRegistrationAgain.

        It is a no-op if no BuildCompatibleExtension was found.

      • registerSyntheticObservers

        public void registerSyntheticObservers​(ObserverRegistrar.RegistrationContext context)
        Must be called after runSynthesis and before runRegistrationAgain.

        It is a no-op if no BuildCompatibleExtension was found.

      • runRegistrationAgain

        public void runRegistrationAgain​(org.jboss.jandex.IndexView beanArchiveIndex,
                                         Collection<BeanInfo> allBeans,
                                         Collection<ObserverInfo> allObservers)
        Must be called after registerSynthetic{Beans,Observers} and before runValidation.

        It is a no-op if no BuildCompatibleExtension was found.

      • runValidation

        public void runValidation​(org.jboss.jandex.IndexView beanArchiveIndex,
                                  Collection<BeanInfo> allBeans,
                                  Collection<ObserverInfo> allObservers)
        Must be called after runRegistrationAgain and before registerValidationErrors.

        It is a no-op if no BuildCompatibleExtension was found.

      • registerValidationErrors

        public void registerValidationErrors​(BeanDeploymentValidator.ValidationContext context)
        Must be called last, after runValidation.

        It is a no-op if no BuildCompatibleExtension was found.