org.glassfish.jersey.model.internal
Class ImmutableCommonConfig

java.lang.Object
  extended by org.glassfish.jersey.model.internal.CommonConfig
      extended by org.glassfish.jersey.model.internal.ImmutableCommonConfig
All Implemented Interfaces:
Configurable<FeatureContext>, Configuration, FeatureContext, ExtendedConfig

public class ImmutableCommonConfig
extends CommonConfig

Immutable runtime configuration.

Author:
Marek Potociar (marek.potociar at oracle.com)

Constructor Summary
ImmutableCommonConfig(CommonConfig config)
          Create new immutable copy of the original runtime configuration.
ImmutableCommonConfig(CommonConfig config, String modificationErrorMessage)
          Create new immutable copy of the original runtime configuration with a custom modification error message.
 
Method Summary
 CommonConfig loadFrom(Configuration config)
          Load the internal configuration state from an externally provided configuration state.
 ImmutableCommonConfig property(String name, Object value)
          Set the new configuration property, if already set, the existing value of the property will be updated.
 ImmutableCommonConfig 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.
 ImmutableCommonConfig 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.
 ImmutableCommonConfig 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.
 CommonConfig 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.
 ImmutableCommonConfig 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.
 ImmutableCommonConfig 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.
 ImmutableCommonConfig 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.
 CommonConfig 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.
 ImmutableCommonConfig setProperties(Map<String,?> properties)
          Set the configured properties to the provided map of properties.
 
Methods inherited from class org.glassfish.jersey.model.internal.CommonConfig
addProperties, configureAutoDiscoverableProviders, configureMetaProviders, equals, getClasses, getComponentBag, getConfiguration, getContracts, getInstances, getModelEnhancer, getProperties, getProperty, getPropertyNames, getRuntimeType, hashCode, isEnabled, isEnabled, isProperty, isRegistered, isRegistered
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImmutableCommonConfig

public ImmutableCommonConfig(CommonConfig config,
                             String modificationErrorMessage)
Create new immutable copy of the original runtime configuration with a custom modification error message.

Parameters:
config - original runtime configuration.
modificationErrorMessage - custom modification error message.

ImmutableCommonConfig

public ImmutableCommonConfig(CommonConfig config)
Create new immutable copy of the original runtime configuration.

Parameters:
config - original runtime configuration.
Method Detail

property

public ImmutableCommonConfig 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<FeatureContext>
Overrides:
property in class CommonConfig
Parameters:
name - property name.
value - (new) property value. null value removes the property with the given name.
Returns:
the updated configurable instance.

setProperties

public ImmutableCommonConfig setProperties(Map<String,?> properties)
Description copied from class: CommonConfig
Set the configured properties to the provided map of properties.

Overrides:
setProperties in class CommonConfig
Parameters:
properties - new map of properties to be set.
Returns:
updated configuration instance.

register

public ImmutableCommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
Parameters:
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public ImmutableCommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
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 ImmutableCommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
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 CommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
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 ImmutableCommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
Parameters:
component - JAX-RS component instance to be configured in the scope of this configurable context.
Returns:
the updated configurable context.

register

public ImmutableCommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
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 ImmutableCommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
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 CommonConfig 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<FeatureContext>
Overrides:
register in class CommonConfig
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.

loadFrom

public CommonConfig loadFrom(Configuration config)
Description copied from class: CommonConfig
Load the internal configuration state from an externally provided configuration state.

Calling this method effectively replaces existing configuration state of the instance with the state represented by the externally provided configuration. If the features, auto-discoverables of given config has been already configured then this method will make sure to not configure them for the second time.

Overrides:
loadFrom in class CommonConfig
Parameters:
config - external configuration state to replace the configuration of this configurable instance.
Returns:
the updated common configuration instance.


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