org.glassfish.jersey.internal.inject
Class ProviderBinder

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

public class ProviderBinder
extends Object

Class used for registration of the custom providers into HK2 service locator.

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.

Author:
Miroslav Fuksa (miroslav.fuksa at oracle.com), Marek Potociar (marek.potociar at oracle.com), Michal Gajdos (michal.gajdos at oracle.com)

Constructor Summary
ProviderBinder(ServiceLocator locator)
          Create new provider binder instance.
 
Method Summary
 void bindClasses(Class<?>... classes)
          Register/bind custom provider classes.
 void bindClasses(Iterable<Class<?>> classes)
          Register/bind custom provider classes.
 void bindClasses(Iterable<Class<?>> classes, boolean bindResources)
          Register/bind custom provider classes that may also be resources.
 void bindInstances(Iterable<Object> instances)
          Register/bind custom provider instances.
static void bindProvider(Class<?> providerClass, ContractProvider provider, DynamicConfiguration dc)
          Bind contract provider model to a provider class using the supplied HK2 dynamic configuration.
static void bindProvider(Object providerInstance, ContractProvider provider, DynamicConfiguration dc)
          Bind contract provider model to a provider instance using the supplied HK2 dynamic configuration.
static void bindProviders(ProviderBag providerBag, ConstrainedTo.Type constrainedTo, Set<Class<?>> registeredClasses, DynamicConfiguration dynamicConfiguration)
          Bind all providers contained in providerBag (classes and instances) using HK2 service locator.
static void bindProviders(ProviderBag providerBag, ConstrainedTo.Type constrainedTo, Set<Class<?>> registeredClasses, ServiceLocator locator)
          Bind all providers contained in providerBag (classes and instances) using HK2 service locator.
static void bindProviders(ProviderBag providerBag, ServiceLocator locator)
          Bind all providers contained in providerBag (classes and instances) using HK2 service locator.
static void configureFeatures(FeatureBag featureBag, Configurable configuration, ServiceLocator locator)
          Enable features from the feature bag.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProviderBinder

public ProviderBinder(ServiceLocator locator)
Create new provider binder instance.

Parameters:
locator - HK2 service locator the binder will use to bind the providers into.
Method Detail

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.

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(Iterable<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.

bindProvider

public static void bindProvider(Class<?> providerClass,
                                ContractProvider provider,
                                DynamicConfiguration dc)
Bind contract provider model to a provider class using the supplied HK2 dynamic configuration.

Parameters:
provider - contract provider model.
dc - HK2 dynamic service locator configuration.

bindProvider

public static void bindProvider(Object providerInstance,
                                ContractProvider provider,
                                DynamicConfiguration dc)
Bind contract provider model to a provider instance using the supplied HK2 dynamic configuration. Scope value specified in the contract provider model is ignored as instances can only be bound as "singletons".

Parameters:
providerInstance - provider instance.
provider - contract provider model.
dc - HK2 dynamic service locator configuration.

bindProviders

public static void bindProviders(ProviderBag providerBag,
                                 ServiceLocator locator)
Bind all providers contained in providerBag (classes and instances) using HK2 service locator. Configuration is also committed.

Parameters:
providerBag - bag of provider classes and instances.
locator - HK2 service locator the binder will use to bind the providers into.

bindProviders

public static void bindProviders(ProviderBag providerBag,
                                 ConstrainedTo.Type constrainedTo,
                                 Set<Class<?>> registeredClasses,
                                 ServiceLocator locator)
Bind all providers contained in providerBag (classes and instances) using HK2 service locator. Configuration is also committed.

Parameters:
providerBag - 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.

bindProviders

public static void bindProviders(ProviderBag providerBag,
                                 ConstrainedTo.Type constrainedTo,
                                 Set<Class<?>> registeredClasses,
                                 DynamicConfiguration dynamicConfiguration)
Bind all providers contained in providerBag (classes and instances) using HK2 service locator. Configuration is not committed.

Parameters:
providerBag - 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.

configureFeatures

public static void configureFeatures(FeatureBag featureBag,
                                     Configurable configuration,
                                     ServiceLocator locator)
Enable features from the feature bag. Invoke the Feature.configure(javax.ws.rs.core.Configurable) method for every feature.

Parameters:
featureBag - features to be enabled.
configuration - config to configure feature in.
locator - HK2 service locator to instantiate features.
Throws:
IllegalStateException - if a feature has been already enabled.


Copyright © 2007-2012 Oracle Corporation. All Rights Reserved. Use is subject to license terms.