org.glassfish.jersey.server
Class ResourceConfig

java.lang.Object
  extended by javax.ws.rs.core.Application
      extended by org.glassfish.jersey.server.ResourceConfig
All Implemented Interfaces:
Configurable<ResourceConfig>, Configuration, ExtendedConfig, ServerConfig

public class ResourceConfig
extends Application
implements Configurable<ResourceConfig>, ServerConfig

The resource configuration for configuring a web application.

Author:
Paul Sandoz, Martin Matula (martin.matula at oracle.com), Michal Gajdos (michal.gajdos at oracle.com), Marek Potociar (marek.potociar at oracle.com)

Constructor Summary
ResourceConfig()
          Create a new resource configuration without any custom properties or resource and provider classes.
ResourceConfig(Class<?>... classes)
          Create a new resource configuration initialized with a given set of resource/provider classes.
ResourceConfig(ResourceConfig original)
          Create a defensive resource configuration copy initialized with a given ResourceConfig.
ResourceConfig(Set<Class<?>> classes)
          Create a new resource configuration initialized with a given set of resource/provider classes.
 
Method Summary
 ResourceConfig addProperties(Map<String,Object> properties)
          Add properties to ResourceConfig.
 ResourceConfig files(boolean recursive, String... files)
          Adds array of file and directory names to scan for components.
 ResourceConfig files(String... files)
          Adds array of file and directory names to scan for components.
static ResourceConfig forApplication(Application application)
          Returns a ResourceConfig instance for the supplied application.
static ResourceConfig forApplicationClass(Class<? extends Application> applicationClass)
          Returns a ResourceConfig instance wrapping the application of the supplied class.
static ResourceConfig forApplicationClass(Class<? extends Application> applicationClass, Set<Class<?>> defaultClasses)
          Returns a ResourceConfig instance wrapping the application of the supplied class.
 Application getApplication()
          Returns JAX-RS application corresponding with this ResourceConfig.
 Set<Class<?>> getClasses()
          Get a set of root resource, provider and feature classes.
 ClassLoader getClassLoader()
          Get resource and provider class loader.
 ServerConfig getConfiguration()
          Get a live view of an internal configuration state of this configurable instance.
 Map<Class<?>,Integer> getContracts(Class<?> componentClass)
          Get the extension contract registration information for a component of a given class.
 Set<Object> getInstances()
          Get the immutable set of registered JAX-RS component (such as provider or feature) instances to be utilized by the configurable instance.
 Map<String,Object> getProperties()
          Get a map of custom application-wide properties.
 Object getProperty(String name)
          Get the value for the property with a given name.
 Collection<String> getPropertyNames()
          Returns an immutable collection containing the property names available within the context of the current configuration instance.
 Set<Resource> getResources()
          Get programmatically modeled resources.
 RuntimeType getRuntimeType()
          Get the runtime type of this configuration context.
 Set<Object> getSingletons()
          Get a set of root resource, provider and feature instances.
 boolean isEnabled(Class<? extends Feature> featureClass)
          Check if a feature instance of featureClass class has been previously enabled in the runtime configuration context.
 boolean isEnabled(Feature feature)
          Check if a particular feature instance has been previously enabled in the runtime configuration context.
 boolean isProperty(String name)
          Get the value of the property with a given name converted to boolean.
 boolean isRegistered(Class<?> componentClass)
          Check if a JAX-RS component of the supplied componentClass class has been previously registered in the runtime configuration context.
 boolean isRegistered(Object component)
          Check if a particular JAX-RS component instance (such as providers or features) has been previously registered in the runtime configuration context.
 ResourceConfig packages(boolean recursive, String... packages)
          Adds array of package names which will be used to scan for components.
 ResourceConfig packages(String... packages)
          Adds array of package names which will be used to scan for components.
 ResourceConfig property(String name, Object value)
          Set the new configuration property, if already set, the existing value of the property will be updated.
 ResourceConfig register(Class<?> componentClass)
          Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig register(Class<?> componentClass, Class<?>... contracts)
          Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig register(Class<?> componentClass, int bindingPriority)
          Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig register(Class<?> componentClass, Map<Class<?>,Integer> contracts)
          Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig register(Object component)
          Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig register(Object component, Class<?>... contracts)
          Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig register(Object component, int bindingPriority)
          Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig register(Object component, Map<Class<?>,Integer> contracts)
          Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
 ResourceConfig registerClasses(Class<?>... classes)
          Register annotated JAX-RS resource, JAX-RS or Jersey contract provider or JAX-RS feature in the ResourceConfig.
 ResourceConfig registerClasses(Set<Class<?>> classes)
          Register annotated JAX-RS resource, JAX-RS or Jersey contract provider or JAX-RS feature in the ResourceConfig.
 ResourceConfig registerFinder(ResourceFinder resourceFinder)
          Add a ResourceFinder to ResourceConfig.
 ResourceConfig registerInstances(Object... instances)
          Register annotated JAX-RS resource, JAX-RS or Jersey contract provider, JAX-RS feature or HK2 binder instances (singletons) in the ResourceConfig.
 ResourceConfig registerInstances(Set<Object> instances)
          Register annotated JAX-RS resource, JAX-RS or Jersey contract provider, JAX-RS feature or HK2 binder instances (singletons) in the ResourceConfig.
 ResourceConfig registerResources(Resource... resources)
          Register new programmatic resource models in the ResourceConfig.
 ResourceConfig registerResources(Set<Resource> resources)
          Register new resource models in the ResourceConfig.
 ResourceConfig setClassLoader(ClassLoader classLoader)
          Set ClassLoader which will be used for resource discovery.
 ResourceConfig setProperties(Map<String,?> properties)
          Set new configuration properties replacing all previously set properties.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceConfig

public ResourceConfig()
Create a new resource configuration without any custom properties or resource and provider classes.


ResourceConfig

public ResourceConfig(Set<Class<?>> classes)
Create a new resource configuration initialized with a given set of resource/provider classes.

Parameters:
classes - application-specific resource and/or provider classes.

ResourceConfig

public ResourceConfig(Class<?>... classes)
Create a new resource configuration initialized with a given set of resource/provider classes.

Parameters:
classes - application-specific resource and/or provider classes.

ResourceConfig

public ResourceConfig(ResourceConfig original)
Create a defensive resource configuration copy initialized with a given ResourceConfig.

Parameters:
original - resource configuration to create a defensive copy from.
Method Detail

forApplication

public static ResourceConfig forApplication(Application application)
Returns a ResourceConfig instance for the supplied application. If the application is an instance of ResourceConfig the method returns defensive copy of the resource config. Otherwise it creates a new ResourceConfig from the application.

Parameters:
application - Application to provide the ResourceConfig instance for.
Returns:
ResourceConfig instance for the supplied application.

forApplicationClass

public static ResourceConfig forApplicationClass(Class<? extends Application> applicationClass)
Returns a ResourceConfig instance wrapping the application of the supplied class.

Parameters:
applicationClass - Class representing a JAX-RS application.
Returns:
ResourceConfig wrapping the JAX-RS application defined by the supplied class.

forApplicationClass

public static ResourceConfig forApplicationClass(Class<? extends Application> applicationClass,
                                                 Set<Class<?>> defaultClasses)
Returns a ResourceConfig instance wrapping the application of the supplied class. This method provides an option of supplying the set of classes that should be returned from getClasses() method if the application defined by the supplied application class returns empty sets from .Application#getClasses() and Application.getSingletons() methods.

Parameters:
applicationClass - Class representing a JAX-RS application.
defaultClasses - Default set of classes that should be returned from getClasses() if the underlying application does not provide any classes and singletons.
Returns:
ResourceConfig wrapping the JAX-RS application defined by the supplied class.

addProperties

public final ResourceConfig addProperties(Map<String,Object> properties)
Add properties to ResourceConfig. If any of the added properties exists already, he values of the existing properties will be replaced with new values.

Parameters:
properties - properties to add.
Returns:
updated resource configuration instance.

setProperties

public ResourceConfig setProperties(Map<String,?> properties)
Set new configuration properties replacing all previously set properties.

Parameters:
properties - new set of configuration properties. The content of the map will replace any existing properties set on the configuration instance.
Returns:
the updated configuration instance.

property

public ResourceConfig property(String name,
                               Object value)
Description copied from interface: Configurable
Set the new configuration property, if already set, the existing value of the property will be updated. Setting a null value into a property effectively removes the property from the property bag.

Specified by:
property in interface Configurable<ResourceConfig>
Parameters:
name - property name.
value - (new) property value. null value removes the property with the given name.
Returns:
the updated configurable instance.

register

public ResourceConfig register(Class<?> componentClass)
Description copied from interface: Configurable
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component class is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or DynamicFeature.

As opposed to component instances registered via Configurable.register(Object) method, the lifecycle of components registered using this class-based register(...) method is fully managed by the JAX-RS implementation or any underlying IoC container supported by the implementation.

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public ResourceConfig register(Class<?> componentClass,
                               int bindingPriority)
Description copied from interface: Configurable
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

This registration method provides the same functionality as Configurable.register(Class) except that any priority specified on the registered JAX-RS component class via javax.annotation.Priority annotation is overridden with the supplied priority value.

Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
bindingPriority - the overriding priority for the registered component and all the provider contracts the component implements.
Returns:
the updated configurable context.

register

public ResourceConfig register(Class<?> componentClass,
                               Class<?>... contracts)
Description copied from interface: Configurable
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

This registration method provides the same functionality as Configurable.register(Class) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
contracts - the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty or null collection of contracts via this method and SHOULD raise a warning about such event.
Returns:
the updated configurable context.

register

public ResourceConfig register(Class<?> componentClass,
                               Map<Class<?>,Integer> contracts)
Description copied from interface: Configurable
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

This registration method provides same functionality as Configurable.register(Class, Class[]) except that any priority specified on the registered JAX-RS component class via javax.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.

Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
contracts - map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
Returns:
the updated configurable context.

register

public ResourceConfig register(Object component)
Description copied from interface: Configurable
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or DynamicFeature.

As opposed to components registered via Configurable.register(Class) method, the lifecycle of providers registered using this instance-based register(...) is not managed by JAX-RS runtime. The same registered component instance is used during the whole lifespan of the configurable context. Fields and properties of all registered JAX-RS component instances are injected with their declared dependencies (see Context) by the JAX-RS runtime prior to use.

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
component - JAX-RS component instance to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public ResourceConfig register(Object component,
                               int bindingPriority)
Description copied from interface: Configurable
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

This registration method provides the same functionality as Configurable.register(Object) except that any priority specified on the registered JAX-RS component class via javax.annotation.Priority annotation is overridden with the supplied priority value.

Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
component - JAX-RS component instance to be configured in the scope of this configurable context.
bindingPriority - the overriding priority for the registered component and all the provider contracts the component implements.
Returns:
the updated configurable context.

register

public ResourceConfig register(Object component,
                               Class<?>... contracts)
Description copied from interface: Configurable
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

This registration method provides the same functionality as Configurable.register(Object) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
component - JAX-RS component instance to be configured in the scope of this configurable context.
contracts - the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty or null collection of contracts via this method and SHOULD raise a warning about such event.
Returns:
the updated configurable context.

register

public ResourceConfig register(Object component,
                               Map<Class<?>,Integer> contracts)
Description copied from interface: Configurable
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

This registration method provides same functionality as Configurable.register(Object, Class[]) except that any priority specified on the registered JAX-RS component class via javax.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.

Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.

Specified by:
register in interface Configurable<ResourceConfig>
Parameters:
component - JAX-RS component instance to be configured in the scope of this configurable context.
contracts - map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
Returns:
the updated configurable context.

registerClasses

public final ResourceConfig registerClasses(Set<Class<?>> classes)
Register annotated JAX-RS resource, JAX-RS or Jersey contract provider or JAX-RS feature in the ResourceConfig.

Note that registered JAX-RS features are used to initialize and configure the Jersey runtime ServiceLocator instance during application deployment, but are otherwise ignored by server-side runtime, unless they implement also another contract recognized by Jersey runtime.

Also note that registration of HK2 binder classes is note supported. HK2 binders must be registered as instances.

Parameters:
classes - classes to register.
Returns:
updated resource configuration instance.

registerClasses

public final ResourceConfig registerClasses(Class<?>... classes)
Register annotated JAX-RS resource, JAX-RS or Jersey contract provider or JAX-RS feature in the ResourceConfig.

Note that registered JAX-RS features are used to initialize and configure the Jersey runtime ServiceLocator instance during application deployment, but are otherwise ignored by server-side runtime, unless they implement also another contract recognized by Jersey runtime.

Also note that registration of HK2 binder classes is note supported. HK2 binders must be registered as instances.

Parameters:
classes - classes to register.
Returns:
updated resource configuration instance.

registerInstances

public final ResourceConfig registerInstances(Set<Object> instances)
Register annotated JAX-RS resource, JAX-RS or Jersey contract provider, JAX-RS feature or HK2 binder instances (singletons) in the ResourceConfig.

Note that registered HK2 binders and JAX-RS features are used to initialize and configure the Jersey runtime ServiceLocator instance during application deployment, but are otherwise ignored by server-side runtime, unless they implement also another contract recognized by Jersey runtime.

Parameters:
instances - instances to register.
Returns:
updated resource configuration instance.

registerInstances

public final ResourceConfig registerInstances(Object... instances)
Register annotated JAX-RS resource, JAX-RS or Jersey contract provider, JAX-RS feature or HK2 binder instances (singletons) in the ResourceConfig.

Note that registered HK2 binders and JAX-RS features are used to initialize and configure the Jersey runtime ServiceLocator instance during application deployment, but are otherwise ignored by server-side runtime, unless they implement also another contract recognized by Jersey runtime.

Parameters:
instances - instances to register.
Returns:
updated resource configuration instance.

registerResources

public final ResourceConfig registerResources(Resource... resources)
Register new programmatic resource models in the ResourceConfig.

Parameters:
resources - resource models to register.
Returns:
updated resource configuration instance.

registerResources

public final ResourceConfig registerResources(Set<Resource> resources)
Register new resource models in the ResourceConfig.

Parameters:
resources - resource models to register.
Returns:
updated resource configuration instance.

registerFinder

public final ResourceConfig registerFinder(ResourceFinder resourceFinder)
Add a ResourceFinder to ResourceConfig.

Parameters:
resourceFinder - ResourceFinder
Returns:
updated resource configuration instance.

setClassLoader

public final ResourceConfig setClassLoader(ClassLoader classLoader)
Set ClassLoader which will be used for resource discovery.

Parameters:
classLoader - provided ClassLoader.
Returns:
updated resource configuration instance.

packages

public final ResourceConfig packages(String... packages)
Adds array of package names which will be used to scan for components. Packages will be scanned recursively, including all nested packages.

Parameters:
packages - array of package names.
Returns:
updated resource configuration instance.
See Also:
packages(boolean, String...)

packages

public final ResourceConfig packages(boolean recursive,
                                     String... packages)
Adds array of package names which will be used to scan for components.

Parameters:
recursive - defines whether any nested packages in the collection of specified package names should be recursively scanned (value of true) as part of the package scanning or not (value of false).
packages - array of package names.
Returns:
updated resource configuration instance.
See Also:
packages(String...)

files

public final ResourceConfig files(String... files)
Adds array of file and directory names to scan for components. Any directories in the list will be scanned recursively, including their sub-directories.

Parameters:
files - array of file and directory names.
Returns:
updated resource configuration instance.

files

public final ResourceConfig files(boolean recursive,
                                  String... files)
Adds array of file and directory names to scan for components.

Parameters:
recursive - defines whether any sub-directories of the directories specified in the collection of file names should be recursively scanned (value of true) as part of the file scanning or not (value of false).
files - array of file and directory names.
Returns:
updated resource configuration instance.

getConfiguration

public final ServerConfig getConfiguration()
Description copied from interface: Configurable
Get a live view of an internal configuration state of this configurable instance. Any changes made using methods of this Configurable instance will be reflected in the returned Configuration instance.

The returned Configuration instance and the collection data it provides are not thread-safe wrt. modification made using methods on the parent configurable object.

Specified by:
getConfiguration in interface Configurable<ResourceConfig>
Returns:
configuration live view of the internal configuration state.

getProperties

public final Map<String,Object> getProperties()
Description copied from class: Application
Get a map of custom application-wide properties.

The returned properties are reflected in the application configuration passed to the server-side features or injected into server-side JAX-RS components.

The set of returned properties may be further extended or customized at deployment time using container-specific features and deployment descriptors. For example, in a Servlet-based deployment scenario, web application's <context-param> and Servlet <init-param> values may be used to extend or override values of the properties programmatically returned by this method.

The default implementation returns an empty set.

Specified by:
getProperties in interface Configuration
Overrides:
getProperties in class Application
Returns:
a map of custom application-wide properties. Returning null is equivalent to returning an empty set.

getProperty

public final Object getProperty(String name)
Description copied from interface: Configuration
Get the value for the property with a given name.

Specified by:
getProperty in interface Configuration
Parameters:
name - property name.
Returns:
the property value for the specified property name or null if the property with such name is not configured.

getPropertyNames

public Collection<String> getPropertyNames()
Description copied from interface: Configuration
Returns an immutable collection containing the property names available within the context of the current configuration instance.

Use the Configuration.getProperty(java.lang.String) method with a property name to get the value of a property.

Specified by:
getPropertyNames in interface Configuration
Returns:
an immutable collection of property names.
See Also:
Configuration.getProperty(java.lang.String)

isProperty

public final boolean isProperty(String name)
Description copied from interface: ExtendedConfig
Get the value of the property with a given name converted to boolean. Returns false if the value is not convertible.

Specified by:
isProperty in interface ExtendedConfig
Parameters:
name - property name.
Returns:
boolean property value or false if the property is not convertible.

getClasses

public final Set<Class<?>> getClasses()
Description copied from class: Application
Get a set of root resource, provider and feature classes. The default life-cycle for resource class instances is per-request. The default life-cycle for providers (registered directly or via a feature) is singleton.

Implementations should warn about and ignore classes that do not conform to the requirements of root resource or provider/feature classes. Implementations should warn about and ignore classes for which Application.getSingletons() returns an instance. Implementations MUST NOT modify the returned set.

The default implementation returns an empty set.

Specified by:
getClasses in interface Configuration
Overrides:
getClasses in class Application
Returns:
a set of root resource and provider classes. Returning null is equivalent to returning an empty set.
See Also:
Configuration.getInstances()

getInstances

public final Set<Object> getInstances()
Description copied from interface: Configuration
Get the immutable set of registered JAX-RS component (such as provider or feature) instances to be utilized by the configurable instance. Fields and properties of returned instances are injected with their declared dependencies (see Context) by the runtime prior to use.

For each component type, there can be only a single class-based or instance-based registration present in the configuration context at any given time.

Specified by:
getInstances in interface Configuration
Returns:
the immutable set of registered JAX-RS component instances. The returned value may be empty but will never be null.
See Also:
Configuration.getClasses()

getSingletons

public final Set<Object> getSingletons()
Description copied from class: Application
Get a set of root resource, provider and feature instances. Fields and properties of returned instances are injected with their declared dependencies (see Context) by the runtime prior to use.

Implementations should warn about and ignore classes that do not conform to the requirements of root resource or provider classes. Implementations should flag an error if the returned set includes more than one instance of the same class. Implementations MUST NOT modify the returned set.

The default implementation returns an empty set.

Overrides:
getSingletons in class Application
Returns:
a set of root resource and provider instances. Returning null is equivalent to returning an empty set.

getRuntimeType

public RuntimeType getRuntimeType()
Description copied from interface: Configuration
Get the runtime type of this configuration context.

Specified by:
getRuntimeType in interface Configuration
Returns:
configuration context runtime type.

isEnabled

public boolean isEnabled(Feature feature)
Description copied from interface: Configuration
Check if a particular feature instance has been previously enabled in the runtime configuration context.

Method returns true only in case an instance equal to the feature instance is already present among the features previously successfully enabled in the configuration context.

Specified by:
isEnabled in interface Configuration
Parameters:
feature - a feature instance to test for.
Returns:
true if the feature instance has been previously enabled in this configuration context, false otherwise.

isEnabled

public boolean isEnabled(Class<? extends Feature> featureClass)
Description copied from interface: Configuration
Check if a feature instance of featureClass class has been previously enabled in the runtime configuration context.

Method returns true in case any instance of the featureClass class is already present among the features previously successfully enabled in the configuration context.

Specified by:
isEnabled in interface Configuration
Parameters:
featureClass - a feature class to test for.
Returns:
true if a feature of a given class has been previously enabled in this configuration context, false otherwise.

isRegistered

public boolean isRegistered(Object component)
Description copied from interface: Configuration
Check if a particular JAX-RS component instance (such as providers or features) has been previously registered in the runtime configuration context.

Method returns true only in case an instance equal to the component instance is already present among the components previously registered in the configuration context.

Specified by:
isRegistered in interface Configuration
Parameters:
component - a component instance to test for.
Returns:
true if the component instance has been previously registered in this configuration context, false otherwise.
See Also:
Configuration.isEnabled(Feature)

isRegistered

public boolean isRegistered(Class<?> componentClass)
Description copied from interface: Configuration
Check if a JAX-RS component of the supplied componentClass class has been previously registered in the runtime configuration context.

Method returns true in case a component of the supplied componentClass class is already present among the previously registered component classes or instances in the configuration context.

Specified by:
isRegistered in interface Configuration
Parameters:
componentClass - a component class to test for.
Returns:
true if a component of a given class has been previously registered in this configuration context, false otherwise.
See Also:
Configuration.isEnabled(Class)

getContracts

public Map<Class<?>,Integer> getContracts(Class<?> componentClass)
Description copied from interface: Configuration
Get the extension contract registration information for a component of a given class. For component classes that are not configured in this configuration context the method returns an empty Map. Method does not return null.

Specified by:
getContracts in interface Configuration
Returns:
map of extension contracts and their priorities for which the component class is registered. May return an empty map in case the component has not been registered for any extension contract supported by the implementation.

getResources

public final Set<Resource> getResources()
Description copied from interface: ServerConfig
Get programmatically modeled resources.

Specified by:
getResources in interface ServerConfig
Returns:
programmatically modeled resources.

getClassLoader

public final ClassLoader getClassLoader()
Get resource and provider class loader.

Returns:
class loader to be used when looking up the resource classes and providers.

getApplication

public final Application getApplication()
Returns JAX-RS application corresponding with this ResourceConfig.

Returns:
JAX-RS application corresponding with this ResourceConfig.


Copyright © 2007-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.