public class ProviderBinder
extends java.lang.Object
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 HK2 service locator
annotated by a @Custom
qualifier annotation.
Use the @Custom
qualifier annotation to retrieve these providers
from HK2 service locator. You may also use a one of the provider accessor utility
method defined in Providers
class.
Modifier and Type | Field and Description |
---|---|
private org.glassfish.hk2.api.ServiceLocator |
locator |
Constructor and Description |
---|
ProviderBinder(org.glassfish.hk2.api.ServiceLocator locator)
Create new provider binder instance.
|
Modifier and Type | Method and Description |
---|---|
private <T> void |
bindClass(java.lang.Class<T> clazz,
org.glassfish.hk2.api.ServiceLocator locator,
org.glassfish.hk2.api.DynamicConfiguration dc,
boolean isResource) |
void |
bindClasses(java.lang.Class<?>... classes)
Register/bind custom provider classes.
|
void |
bindClasses(java.lang.Iterable<java.lang.Class<?>> classes)
Register/bind custom provider classes.
|
void |
bindClasses(java.lang.Iterable<java.lang.Class<?>> classes,
boolean bindResources)
Register/bind custom provider classes that may also be resources.
|
private <T> void |
bindInstance(T instance,
org.glassfish.hk2.api.DynamicConfiguration dc) |
void |
bindInstances(java.lang.Iterable<java.lang.Object> instances)
Register/bind custom provider instances.
|
static void |
bindProvider(java.lang.Class<?> providerClass,
ContractProvider model,
org.glassfish.hk2.api.DynamicConfiguration dc)
Bind contract provider model to a provider class using the supplied HK2 dynamic configuration.
|
static void |
bindProvider(java.lang.Object providerInstance,
ContractProvider model,
org.glassfish.hk2.api.DynamicConfiguration dc)
Bind contract provider model to a provider instance using the supplied
HK2 dynamic configuration.
|
static void |
bindProviders(ComponentBag componentBag,
javax.ws.rs.RuntimeType constrainedTo,
java.util.Set<java.lang.Class<?>> registeredClasses,
org.glassfish.hk2.api.DynamicConfiguration dynamicConfiguration)
Bind all providers contained in
providerBag (classes and instances) using HK2 service locator. |
static void |
bindProviders(ComponentBag componentBag,
javax.ws.rs.RuntimeType constrainedTo,
java.util.Set<java.lang.Class<?>> registeredClasses,
org.glassfish.hk2.api.ServiceLocator locator)
Bind all providers contained in
providerBag (classes and instances) using HK2 service locator. |
static void |
bindProviders(ComponentBag componentBag,
org.glassfish.hk2.api.ServiceLocator locator)
Bind all providers contained in
providerBag (classes and instances) using HK2 service locator. |
private java.lang.Class<? extends java.lang.annotation.Annotation> |
getProviderScope(java.lang.Class<?> clazz) |
public ProviderBinder(org.glassfish.hk2.api.ServiceLocator locator)
locator
- HK2 service locator the binder will use to bind the
providers into.public void bindInstances(java.lang.Iterable<java.lang.Object> instances)
instances
- custom provider instances.public void bindClasses(java.lang.Class<?>... classes)
PerLookup
.classes
- custom provider classes.public void bindClasses(java.lang.Iterable<java.lang.Class<?>> classes)
PerLookup
.classes
- custom provider classes.public void bindClasses(java.lang.Iterable<java.lang.Class<?>> classes, boolean bindResources)
PerLookup
.
If bindAsResources
is set to true
, the providers will also be bound
as resources.
classes
- custom provider classes.bindResources
- if true
, the provider classes will also be bound as
resources.public static void bindProvider(java.lang.Class<?> providerClass, ContractProvider model, org.glassfish.hk2.api.DynamicConfiguration dc)
providerClass
- provider class.model
- contract provider model.dc
- HK2 dynamic service locator configuration.public static void bindProvider(java.lang.Object providerInstance, ContractProvider model, org.glassfish.hk2.api.DynamicConfiguration dc)
contract provider model
is ignored as instances can only be bound as "singletons".providerInstance
- provider instance.model
- contract provider model.dc
- HK2 dynamic service locator configuration.public static void bindProviders(ComponentBag componentBag, org.glassfish.hk2.api.ServiceLocator locator)
providerBag
(classes and instances) using HK2 service locator. Configuration is
also committed.componentBag
- bag of provider classes and instances.locator
- HK2 service locator the binder will use to bind the providers into.public static void bindProviders(ComponentBag componentBag, javax.ws.rs.RuntimeType constrainedTo, java.util.Set<java.lang.Class<?>> registeredClasses, org.glassfish.hk2.api.ServiceLocator locator)
providerBag
(classes and instances) using HK2 service locator. Configuration is
also committed.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).locator
- HK2 service locator the binder will use to bind the providers into.public static void bindProviders(ComponentBag componentBag, javax.ws.rs.RuntimeType constrainedTo, java.util.Set<java.lang.Class<?>> registeredClasses, org.glassfish.hk2.api.DynamicConfiguration dynamicConfiguration)
providerBag
(classes and instances) using HK2 service locator. Configuration is
not committed.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).dynamicConfiguration
- HK2 dynamic service locator configuration.private <T> void bindInstance(T instance, org.glassfish.hk2.api.DynamicConfiguration dc)
private <T> void bindClass(java.lang.Class<T> clazz, org.glassfish.hk2.api.ServiceLocator locator, org.glassfish.hk2.api.DynamicConfiguration dc, boolean isResource)
private java.lang.Class<? extends java.lang.annotation.Annotation> getProviderScope(java.lang.Class<?> clazz)