Class CommonConfig

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

public class CommonConfig extends Object implements FeatureContext, ExtendedConfig
Common immutable Configuration implementation for server and client.
Author:
Michal Gajdos, Marek Potociar
  • Constructor Details

    • CommonConfig

      public CommonConfig(RuntimeType type, Predicate<ContractProvider> registrationStrategy)
      Create a new RuntimeConfig instance.

      The constructor provides a way for defining a contract provider model registration strategy. Once a registration model is built for a newly registered contract, the provided registration strategy filter is consulted whether the model should be registered or not.

      Clients can use the method to cancel any contract provider model registration that does not meet the criteria of a given configuration context, such as a model that does not have any recognized contracts associated with it.

      Parameters:
      type - configuration runtime type.
      registrationStrategy - function driving the decision (based on the introspected contract provider model) whether or not should the component class registration continue towards a successful completion.
    • CommonConfig

      public CommonConfig(CommonConfig config)
      Copy constructor.
      Parameters:
      config - configurable to copy class properties from.
  • Method Details

    • getConfiguration

      public ExtendedConfig getConfiguration()
      Specified by:
      getConfiguration in interface Configurable<FeatureContext>
    • getRuntimeType

      public RuntimeType getRuntimeType()
      Specified by:
      getRuntimeType in interface Configuration
    • getProperties

      public Map<String,Object> getProperties()
      Specified by:
      getProperties in interface Configuration
    • getProperty

      public Object getProperty(String name)
      Specified by:
      getProperty in interface Configuration
    • isProperty

      public 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.
    • getPropertyNames

      public Collection<String> getPropertyNames()
      Specified by:
      getPropertyNames in interface Configuration
    • isEnabled

      public boolean isEnabled(Class<? extends Feature> featureClass)
      Specified by:
      isEnabled in interface Configuration
    • isEnabled

      public boolean isEnabled(Feature feature)
      Specified by:
      isEnabled in interface Configuration
    • isRegistered

      public boolean isRegistered(Object component)
      Specified by:
      isRegistered in interface Configuration
    • isRegistered

      public boolean isRegistered(Class<?> componentClass)
      Specified by:
      isRegistered in interface Configuration
    • getContracts

      public Map<Class<?>,Integer> getContracts(Class<?> componentClass)
      Specified by:
      getContracts in interface Configuration
    • getClasses

      public Set<Class<?>> getClasses()
      Specified by:
      getClasses in interface Configuration
    • getInstances

      public Set<Object> getInstances()
      Specified by:
      getInstances in interface Configuration
    • getComponentBag

      public final ComponentBag getComponentBag()
      Returns a ComponentBag instance associated with the configuration.
      Returns:
      a non-null component bag instance.
    • getModelEnhancer

      protected Inflector<ContractProvider.Builder,ContractProvider> getModelEnhancer(Class<?> componentClass)
      An extension point that provides a way how to define a custom enhancement/update operation of a contract provider model registration being produced for a given component class. Default implementation return an enhancer just builds the model.

      Derived implementations may use this method to e.g. filter out all contracts not applicable in the given configuration context or change the model scope. The returned set of filtered contracts is then used for the actual provider registration.

      Parameters:
      componentClass - class of the component being registered.
      Returns:
      filter for the contracts that being registered for a given component class.
    • setProperties

      public CommonConfig setProperties(Map<String,?> properties)
      Set the configured properties to the provided map of properties.
      Parameters:
      properties - new map of properties to be set.
      Returns:
      updated configuration instance.
    • addProperties

      public CommonConfig addProperties(Map<String,?> 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 configuration instance.
    • property

      public CommonConfig property(String name, Object value)
      Specified by:
      property in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Class<?> componentClass)
      Specified by:
      register in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Class<?> componentClass, int bindingPriority)
      Specified by:
      register in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Class<?> componentClass, Class<?>... contracts)
      Specified by:
      register in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Class<?> componentClass, Map<Class<?>,Integer> contracts)
      Specified by:
      register in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Object component)
      Specified by:
      register in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Object component, int bindingPriority)
      Specified by:
      register in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Object component, Class<?>... contracts)
      Specified by:
      register in interface Configurable<FeatureContext>
    • register

      public CommonConfig register(Object component, Map<Class<?>,Integer> contracts)
      Specified by:
      register in interface Configurable<FeatureContext>
    • loadFrom

      public CommonConfig loadFrom(Configuration config)
      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.

      Parameters:
      config - external configuration state to replace the configuration of this configurable instance.
      Returns:
      the updated common configuration instance.
    • configureAutoDiscoverableProviders

      public void configureAutoDiscoverableProviders(org.glassfish.jersey.internal.inject.InjectionManager injectionManager, Collection<org.glassfish.jersey.internal.spi.AutoDiscoverable> autoDiscoverables, boolean forcedOnly)
      Configure auto-discoverables in the injection manager.
      Parameters:
      injectionManager - injection manager in which the auto-discoverables should be configured.
      autoDiscoverables - list of registered auto discoverable components.
      forcedOnly - defines whether all or only forced auto-discoverables should be configured.
    • configureMetaProviders

      public void configureMetaProviders(org.glassfish.jersey.internal.inject.InjectionManager injectionManager, ManagedObjectsFinalizer finalizer)
      Configure binders in the injection manager and enable JAX-RS features.
      Parameters:
      injectionManager - injection manager in which the binders and features should be configured.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object