public class ImmutableCommonConfig extends CommonConfig
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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 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 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 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 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 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 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 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 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.
|
addProperties, configureAutoDiscoverableProviders, configureMetaProviders, equals, getClasses, getComponentBag, getConfiguration, getContracts, getInstances, getModelEnhancer, getProperties, getProperty, getPropertyNames, getRuntimeType, hashCode, isEnabled, isEnabled, isProperty, isRegistered, isRegistered
public ImmutableCommonConfig(CommonConfig config, String modificationErrorMessage)
config
- original runtime configuration.modificationErrorMessage
- custom modification error message.public ImmutableCommonConfig(CommonConfig config)
config
- original runtime configuration.public ImmutableCommonConfig property(String name, Object value)
Configurable
null
value into a property
effectively removes the property from the property bag.property
in interface Configurable<FeatureContext>
property
in class CommonConfig
name
- property name.value
- (new) property value. null
value removes the property
with the given name.public ImmutableCommonConfig setProperties(Map<String,?> properties)
CommonConfig
setProperties
in class CommonConfig
properties
- new map of properties to be set.public ImmutableCommonConfig register(Class<?> componentClass)
Configurable
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 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 API implementation and a warning SHOULD be raised to
inform the user about the rejected registration.
The registered component class is registered as a contract provider of
all the recognized API 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 implementation or any underlying IoC
container supported by the implementation.
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
componentClass
- component class to be configured in the scope of this
configurable context.public ImmutableCommonConfig register(Class<?> componentClass, int bindingPriority)
Configurable
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 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.
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
componentClass
- 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.public ImmutableCommonConfig register(Class<?> componentClass, Class<?>... contracts)
Configurable
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 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).
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
componentClass
- 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.public CommonConfig register(Class<?> componentClass, Map<Class<?>,Integer> contracts)
Configurable
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 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 component, the supplied priority value is ignored for such contract.
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
componentClass
- 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 component
is registered.
All contracts in the map must represent a class or an interface
implemented or extended by the 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).public ImmutableCommonConfig register(Object component)
Configurable
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 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 API implementation and a warning SHOULD be raised to
inform the user about the rejected registration.
The registered component is registered as a contract provider of
all the recognized API 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 the runtime. The same registered component instance is used during
the whole lifespan of the configurable context.
Fields and properties of all registered component instances are injected with their
declared dependencies (see Context
) by the runtime prior to use.
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
component
- component instance to be configured in the scope of this
configurable context.public ImmutableCommonConfig register(Object component, int bindingPriority)
Configurable
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 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.
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
component
- 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.public ImmutableCommonConfig register(Object component, Class<?>... contracts)
Configurable
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 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).
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
component
- 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.public CommonConfig register(Object component, Map<Class<?>,Integer> contracts)
Configurable
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 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 component, the supplied priority value is ignored for such contract.
register
in interface Configurable<FeatureContext>
register
in class CommonConfig
component
- 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 component
is registered.
All contracts in the map must represent a class or an interface
implemented or extended by the 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).public CommonConfig loadFrom(Configuration config)
CommonConfig
loadFrom
in class CommonConfig
config
- external configuration state to replace the configuration of this configurable instance.Copyright © 2007-2019, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.