Interface WeldCapability


  • public interface WeldCapability
    API exposed by the Weld capability.
    Author:
    Yeray Borges
    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      Supplier<javax.enterprise.inject.spi.BeanManager> addBeanManagerService​(org.jboss.as.server.deployment.DeploymentUnit unit, org.jboss.msc.service.ServiceBuilder<?> serviceBuilder)
      Adds the Bean Manager service associated to the DeploymentUnit to ServiceBuilder passed as argument.
      org.jboss.msc.service.ServiceBuilder<?> addBeanManagerService​(org.jboss.as.server.deployment.DeploymentUnit unit, org.jboss.msc.service.ServiceBuilder<?> serviceBuilder, org.jboss.msc.inject.Injector<javax.enterprise.inject.spi.BeanManager> targetInjector)
      Adds the Bean Manager service associated to the DeploymentUnit to ServiceBuilder passed as argument.
      void ignorePrecalculatedJandexForModules​(org.jboss.as.server.deployment.DeploymentUnit deploymentUnit, String... moduleNames)
      Deprecated. 
      boolean isPartOfWeldDeployment​(org.jboss.as.server.deployment.DeploymentUnit unit)
      Returns true if the DeploymentUnit is part of a weld deployment.
      boolean isWeldDeployment​(org.jboss.as.server.deployment.DeploymentUnit unit)
      Returns true if the DeploymentUnit has a beans.xml in any of it's resource roots, or is a top level deployment that contains sub-deployments that are weld deployments.
      void markAsWeldDeployment​(org.jboss.as.server.deployment.DeploymentUnit unit)
      Registers a deployment as a Weld deployment, even in the absence of spec-compliant configuration files or annotations.
      void registerExtensionInstance​(javax.enterprise.inject.spi.Extension extension, org.jboss.as.server.deployment.DeploymentUnit unit)
      Registers a CDI Portable Extension for the DeploymentUnit passed as argument to this method.
    • Method Detail

      • registerExtensionInstance

        void registerExtensionInstance​(javax.enterprise.inject.spi.Extension extension,
                                       org.jboss.as.server.deployment.DeploymentUnit unit)
        Registers a CDI Portable Extension for the DeploymentUnit passed as argument to this method.

        The extension is registered if only if the DeploymentUnit is part of a Weld Deployment. Specifically, if a call to isPartOfWeldDeployment(DeploymentUnit) using the DeploymentUnit argument returns true. Otherwise this method will return immediately.

        Parameters:
        extension - An instance of the CDI portable extension to add.
        unit - The deployment unit where the extension will be registered.
      • addBeanManagerService

        Supplier<javax.enterprise.inject.spi.BeanManager> addBeanManagerService​(org.jboss.as.server.deployment.DeploymentUnit unit,
                                                                                org.jboss.msc.service.ServiceBuilder<?> serviceBuilder)
        Adds the Bean Manager service associated to the DeploymentUnit to ServiceBuilder passed as argument.

        The Bean Manager service is added if only if the DeploymentUnit is part of a Weld Deployment. Specifically, if a call to isPartOfWeldDeployment(DeploymentUnit) using the DeploymentUnit argument returns true. Otherwise this method will return null.

        Parameters:
        unit - DeploymentUnit used to get the Bean Manager service name. Cannot be null.
        serviceBuilder - The service builder used to add the dependency. Cannot be null.
        Returns:
        A supplier that contains the BeanManager instance if the DeploymentUnit is part of a Weld Deployment, otherwise returns null.
        Throws:
        IllegalStateException - if this method have been called after ServiceBuilder.setInstance(org.jboss.msc.Service) method.
        UnsupportedOperationException - if this service builder wasn't created via ServiceTarget.addService(ServiceName) method.
      • addBeanManagerService

        org.jboss.msc.service.ServiceBuilder<?> addBeanManagerService​(org.jboss.as.server.deployment.DeploymentUnit unit,
                                                                      org.jboss.msc.service.ServiceBuilder<?> serviceBuilder,
                                                                      org.jboss.msc.inject.Injector<javax.enterprise.inject.spi.BeanManager> targetInjector)
        Adds the Bean Manager service associated to the DeploymentUnit to ServiceBuilder passed as argument. Use this method to add the service dependency for legacy msc services.

        The Bean Manager service is added if only if the DeploymentUnit is part of a Weld Deployment. Specifically, if a call to isPartOfWeldDeployment(DeploymentUnit) using the DeploymentUnit argument returns true. Otherwise this method will return immediately without applying any modification to the serviceBuilder.

        Parameters:
        unit - DeploymentUnit used to get the Bean Manager service name. Cannot be null.
        serviceBuilder - The service builder used to add the dependency. Cannot be null.
        targetInjector - the injector into which the dependency should be stored. Cannot be null.
        Returns:
        the ServiceBuilder with the Bean Manager service added.
        Throws:
        UnsupportedOperationException - if the service builder was created via ServiceTarget.addService(ServiceName) method.
      • isPartOfWeldDeployment

        boolean isPartOfWeldDeployment​(org.jboss.as.server.deployment.DeploymentUnit unit)
        Returns true if the DeploymentUnit is part of a weld deployment.
        Parameters:
        unit - DeploymentUnit to check.
        Returns:
        true if the DeploymentUnit is part of a weld deployment.
      • isWeldDeployment

        boolean isWeldDeployment​(org.jboss.as.server.deployment.DeploymentUnit unit)
        Returns true if the DeploymentUnit has a beans.xml in any of it's resource roots, or is a top level deployment that contains sub-deployments that are weld deployments.
        Parameters:
        unit - DeploymentUnit to check.
        Returns:
        true if the DeploymentUnit has a beans.xml in any of it's resource roots, or is a top level deployment that contains sub-deployments that are weld deployments.
      • markAsWeldDeployment

        void markAsWeldDeployment​(org.jboss.as.server.deployment.DeploymentUnit unit)
        Registers a deployment as a Weld deployment, even in the absence of spec-compliant configuration files or annotations. After a call to this method, calls to isWeldDeployment(DeploymentUnit unit) will return true.
      • ignorePrecalculatedJandexForModules

        @Deprecated
        void ignorePrecalculatedJandexForModules​(org.jboss.as.server.deployment.DeploymentUnit deploymentUnit,
                                                 String... moduleNames)
        Deprecated.
        Some Maven artifacts come with a precalculated Jandex index file. This is problematic when running in EE9 preview mode since the index may reference javax. annotations, while Weld looks for jakarta. annotations. This results in the CDI beans from such jars not being found. This allows us to bypass using the cached Jandex index for the modules passed in.

        Note: This method works out whether running in EE9 preview mode or not. If not running in EE9 preview mode calling this method is a noop.

        This method is deprecated, simply because once we fully move to EE9 it will more than likely have served its purpose.

        Parameters:
        deploymentUnit - The deployment unit to attach the ignored modules to. The implementation of this method will associate the ignored modules with the top level deployment unit.
        moduleNames - The names of the modules to ignore precalculated indexes for