Class ProviderBinder
java.lang.Object
org.glassfish.jersey.internal.inject.ProviderBinder
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 Summary
ConstructorDescriptionProviderBinder
(InjectionManager injectionManager) Create new provider binder instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
bindClasses
(Class<?>... classes) Register/bind custom provider classes.void
bindClasses
(Iterable<Class<?>> classes) Register/bind custom provider classes.void
bindClasses
(Collection<Class<?>> classes) Register/bind custom provider classes.void
bindClasses
(Collection<Class<?>> classes, boolean bindResources) Register/bind custom provider classes that may also be resources.void
bindInstances
(Iterable<Object> instances) Register/bind custom provider instances.void
bindInstances
(Collection<Object> instances) Register/bind custom provider instances.static <T> void
bindProvider
(Class<T> providerClass, ContractProvider model, InjectionManager injectionManager) Bind contract provider model to a provider class using the supplied injection manager.static void
bindProvider
(Object providerInstance, ContractProvider model, InjectionManager injectionManager) Bind contract provider model to a provider instance using the supplied injection manager.static void
bindProviders
(ComponentBag componentBag, RuntimeType constrainedTo, Set<Class<?>> registeredClasses, InjectionManager injectionManager) Deprecated.static void
bindProviders
(ComponentBag componentBag, RuntimeType constrainedTo, Set<Class<?>> registeredClasses, InjectionManager injectionManager, Collection<ComponentProvider> componentProviders) Bind all providers contained inproviderBag
(classes and instances) using injection manager.static void
bindProviders
(ComponentBag componentBag, InjectionManager injectionManager) Bind all providers contained inproviderBag
(classes and instances) using injection manager.
-
Constructor Details
-
ProviderBinder
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
Bind all providers contained inproviderBag
(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 inproviderBag
(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 inproviderBag
(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
Register/bind custom provider instances. Registered providers will be handled always as Singletons.- Parameters:
instances
- custom provider instances.
-
bindInstances
Register/bind custom provider instances. Registered providers will be handled always as Singletons.- Parameters:
instances
- custom provider instances.
-
bindClasses
Register/bind custom provider classes. Registered providers will be handled always as Singletons unless annotated byPerLookup
.- Parameters:
classes
- custom provider classes.
-
bindClasses
Register/bind custom provider classes. Registered providers will be handled always as Singletons unless annotated byPerLookup
.- Parameters:
classes
- custom provider classes.
-
bindClasses
Register/bind custom provider classes. Registered providers will be handled always as Singletons unless annotated byPerLookup
.- Parameters:
classes
- custom provider classes.
-
bindClasses
Register/bind custom provider classes that may also be resources. Registered providers/resources will be handled always as Singletons unless annotated byPerLookup
.If
bindAsResources
is set totrue
, the providers will also be bound as resources.- Parameters:
classes
- custom provider classes.bindResources
- iftrue
, the provider classes will also be bound as resources.
-