Class ProviderBinder

java.lang.Object
org.glassfish.jersey.internal.inject.ProviderBinder

public class ProviderBinder extends Object
Class used for registration of the custom providers into injection manager.

Custom providers are classes that implements specific JAX-RS or Jersey SPI interfaces (e.g. MessageBodyReader) and are supplied by the user. These providers will be bound into the injection manager annotated by a @Custom qualifier annotation.

Use the @Custom qualifier annotation to retrieve these providers from injection manager. You may also use a one of the provider accessor utility method defined in Providers class.

Author:
Miroslav Fuksa, Marek Potociar, Michal Gajdos
  • Constructor Details

    • ProviderBinder

      public ProviderBinder(InjectionManager injectionManager)
      Create new provider binder instance.
      Parameters:
      injectionManager - the binder will use to bind the providers into.
  • Method Details

    • bindProvider

      public static <T> void bindProvider(Class<T> providerClass, ContractProvider model, InjectionManager injectionManager)
      Bind contract provider model to a provider class using the supplied injection manager.
      Parameters:
      providerClass - provider class.
      model - contract provider model.
    • bindProvider

      public static void bindProvider(Object providerInstance, ContractProvider model, InjectionManager injectionManager)
      Bind contract provider model to a provider instance using the supplied injection manager.

      Scope value specified in the contract provider model is ignored as instances can only be bound as "singletons".

      Parameters:
      providerInstance - provider instance.
      model - contract provider model.
    • bindProviders

      public static void bindProviders(ComponentBag componentBag, InjectionManager injectionManager)
      Bind all providers contained in providerBag (classes and instances) using injection manager. Configuration is also committed.
      Parameters:
      componentBag - bag of provider classes and instances.
      injectionManager - injection manager the binder will use to bind the providers into.
    • bindProviders

      @Deprecated public static void bindProviders(ComponentBag componentBag, RuntimeType constrainedTo, Set<Class<?>> registeredClasses, InjectionManager injectionManager)
      Deprecated.
      Bind all providers contained in providerBag (classes and instances) using injection manager. Configuration is also committed.
      Parameters:
      componentBag - bag of provider classes and instances.
      constrainedTo - current runtime (client or server).
      registeredClasses - classes which are manually registered by the user (not found by the classpath scanning).
      injectionManager - injection manager the binder will use to bind the providers into.
    • bindProviders

      public static void bindProviders(ComponentBag componentBag, RuntimeType constrainedTo, Set<Class<?>> registeredClasses, InjectionManager injectionManager, Collection<ComponentProvider> componentProviders)
      Bind all providers contained in providerBag (classes and instances) using injection manager. Configuration is also committed.
      Parameters:
      componentBag - bag of provider classes and instances.
      constrainedTo - current runtime (client or server).
      registeredClasses - classes which are manually registered by the user (not found by the classpath scanning).
      injectionManager - injection manager the binder will use to bind the providers into.
      componentProviders - available component providers capable of registering the classes
    • bindInstances

      public void bindInstances(Iterable<Object> instances)
      Register/bind custom provider instances. Registered providers will be handled always as Singletons.
      Parameters:
      instances - custom provider instances.
    • bindInstances

      public void bindInstances(Collection<Object> instances)
      Register/bind custom provider instances. Registered providers will be handled always as Singletons.
      Parameters:
      instances - custom provider instances.
    • bindClasses

      public void bindClasses(Class<?>... classes)
      Register/bind custom provider classes. Registered providers will be handled always as Singletons unless annotated by PerLookup.
      Parameters:
      classes - custom provider classes.
    • bindClasses

      public void bindClasses(Iterable<Class<?>> classes)
      Register/bind custom provider classes. Registered providers will be handled always as Singletons unless annotated by PerLookup.
      Parameters:
      classes - custom provider classes.
    • bindClasses

      public void bindClasses(Collection<Class<?>> classes)
      Register/bind custom provider classes. Registered providers will be handled always as Singletons unless annotated by PerLookup.
      Parameters:
      classes - custom provider classes.
    • bindClasses

      public void bindClasses(Collection<Class<?>> classes, boolean bindResources)
      Register/bind custom provider classes that may also be resources. Registered providers/resources will be handled always as Singletons unless annotated by PerLookup.

      If bindAsResources is set to true, the providers will also be bound as resources.

      Parameters:
      classes - custom provider classes.
      bindResources - if true, the provider classes will also be bound as resources.