Class ExtensionsEntryPoint

java.lang.Object
io.quarkus.arc.processor.bcextensions.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 Details

    • ExtensionsEntryPoint

      public ExtensionsEntryPoint()
    • ExtensionsEntryPoint

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

    • 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<InterceptorInfo> allInterceptors, Collection<ObserverInfo> allObservers, InvokerFactory invokerFactory)
      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, Predicate<org.jboss.jandex.DotName> isApplicationClass)
      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, Predicate<org.jboss.jandex.DotName> isApplicationClass)
      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, InvokerFactory invokerFactory)
      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.