public class ReloadingCombinedConfigurationBuilder extends CombinedConfigurationBuilder implements ReloadingControllerSupport
An extension of CombinedConfigurationBuilder
which also supports reloading operations.
This class differs from its super class in the following aspects:
ReloadingController
is created which manages all child configuration builders supporting reloading
operations.ConfigurationBuilder
is provided for the definition configuration, a builder with reloading support
is created.This class can be used exactly as its super class for creating combined configurations from multiple configuration sources. In addition, the combined reloading controller managed by an instance can be used to react on changes in one of these configuration sources or in the definition configuration.
ADDITIONAL_NAME
Constructor and Description |
---|
ReloadingCombinedConfigurationBuilder()
Creates a new instance of
ReloadingCombinedConfigurationBuilder . |
ReloadingCombinedConfigurationBuilder(Map<String,Object> params)
Creates a new instance of
ReloadingCombinedConfigurationBuilder and sets the specified initialization
parameters. |
ReloadingCombinedConfigurationBuilder(Map<String,Object> params,
boolean allowFailOnInit)
Creates a new instance of
ReloadingCombinedConfigurationBuilder and sets the specified initialization
parameters and the allowFailOnInit flag. |
Modifier and Type | Method and Description |
---|---|
ReloadingCombinedConfigurationBuilder |
configure(BuilderParameters... params)
Appends the content of the specified
BuilderParameters objects to the current initialization parameters. |
protected ReloadingController |
createReloadingController()
Creates the
ReloadingController for this builder. |
protected ConfigurationBuilder<? extends HierarchicalConfiguration<?>> |
createXMLDefinitionBuilder(BuilderParameters builderParams)
Creates a default builder for the definition configuration and initializes it with a parameters object.
|
CombinedConfiguration |
getConfiguration()
Gets the configuration provided by this builder.
|
ReloadingController |
getReloadingController()
Returns the
ReloadingController associated with this object. |
protected void |
initResultInstance(CombinedConfiguration result)
Initializes a newly created result object.
|
static void |
obtainReloadingController(Collection<ReloadingController> subControllers,
Object builder)
Checks whether the passed in builder object supports reloading.
|
builderNames, configureEntityResolver, createAdditionalsConfiguration, createResultDeclaration, getChildBuilders, getDefinitionBuilder, getDefinitionConfiguration, getNamedBuilder, initChildBuilderParameters, initFileSystem, initSystemProperties, providerForTag, registerConfiguredLookups, resetParameters, setupDefinitionBuilder
addEventListener, addParameters, connectToReloadingController, copyEventListeners, copyEventListeners, createResult, createResultInstance, fetchBeanHelper, fireBuilderEvent, getParameters, getResultClass, getResultDeclaration, installEventListener, isAllowFailOnInit, removeEventListener, reset, resetResult, setParameters
public ReloadingCombinedConfigurationBuilder()
ReloadingCombinedConfigurationBuilder
. No parameters are set.public ReloadingCombinedConfigurationBuilder(Map<String,Object> params, boolean allowFailOnInit)
ReloadingCombinedConfigurationBuilder
and sets the specified initialization
parameters and the allowFailOnInit flag.params
- a map with initialization parametersallowFailOnInit
- the allowFailOnInit flagpublic ReloadingCombinedConfigurationBuilder(Map<String,Object> params)
ReloadingCombinedConfigurationBuilder
and sets the specified initialization
parameters.params
- a map with initialization parameterspublic ReloadingCombinedConfigurationBuilder configure(BuilderParameters... params)
BuilderParameters
objects to the current initialization parameters.
Calling this method multiple times will create a union of the parameters provided. This method is overridden to adapt the return type. This method is overridden to adapt the return type.configure
in class CombinedConfigurationBuilder
params
- an arbitrary number of objects with builder parameterspublic ReloadingController getReloadingController()
ReloadingController
associated with this object. This implementation returns a CombinedReloadingController
which contains sub controllers for
all child configuration sources with reloading support. If the definition builder supports reloading, its controller
is contained, too. Note that the combined reloading controller is initialized when the result configuration is
created (i.e. when calling getConfiguration()
for the first time). So this method does not return a
meaningful result before.getReloadingController
in interface ReloadingControllerSupport
ReloadingController
public CombinedConfiguration getConfiguration() throws ConfigurationException
ImmutableConfiguration
object. This implementation creates the result configuration on first access. Later invocations return the same
object until this builder is reset. The double-check idiom for lazy initialization is used (Bloch, Effective Java,
item 71). This implementation makes sure that the reloading state of the managed reloading controller is reset.
Note that this has to be done here and not in initResultInstance(CombinedConfiguration)
because it must be
outside of a synchronized block; otherwise, a dead-lock situation can occur.getConfiguration
in interface ConfigurationBuilder<CombinedConfiguration>
getConfiguration
in class BasicConfigurationBuilder<CombinedConfiguration>
ConfigurationException
- if an error occursprotected ConfigurationBuilder<? extends HierarchicalConfiguration<?>> createXMLDefinitionBuilder(BuilderParameters builderParams)
XMLConfiguration
; it expects a corresponding file specification. Note:
This method is called in a synchronized block. This implementation creates a builder for XML configurations with reloading support.createXMLDefinitionBuilder
in class CombinedConfigurationBuilder
builderParams
- the parameters object for the builderprotected void initResultInstance(CombinedConfiguration result) throws ConfigurationException
BeanHelper
class to initialize the object's property based on the
BeanDeclaration
returned by BasicConfigurationBuilder.getResultDeclaration()
. Note: This method is invoked in a synchronized
block. This is required because internal state is accessed. Sub classes must not call this method without proper
synchronization. This implementation processes the definition configuration in order to
CombinedConfiguration
CombinedConfiguration
CombinedReloadingController
for all child configuration sources with reloading support.initResultInstance
in class CombinedConfigurationBuilder
result
- the object to be initializedConfigurationException
- if an error occursprotected ReloadingController createReloadingController() throws ConfigurationException
ReloadingController
for this builder. This method is called after the result configuration has
been created and initialized. It is called from a synchronized block. This implementation creates a
CombinedReloadingController
.ReloadingController
for this builderConfigurationException
- if an error occurspublic static void obtainReloadingController(Collection<ReloadingController> subControllers, Object builder)
subControllers
- the list with sub controllersbuilder
- the builder object to be checkedCopyright © 2001–2022 The Apache Software Foundation. All rights reserved.