public interface StateProvider extends ConfigurableComponent
Provides a mechanism by which components can store and retrieve state. Depending on the Provider, the state may be stored locally, or it may be stored on a remote resource.
Which implementation should be used for local and clustered state is configured in the NiFi properties file. It is therefore possible to provide custom implementations of this interface. Note, however, that this interface is new as of version 0.5.0 of Apache NiFi and may not be considered "stable" as of yet. Therefore, it is subject to change without notice, so providing custom implementations is cautioned against until the API becomes more stable.
Modifier and Type | Method and Description |
---|---|
void |
clear(String componentId)
Removes all values from the component's state that is stored using the given scope
|
void |
disable()
Notifies the state provider that it should stop servicing requests to store and retrieve state and instead throw a ProviderDisabledException if any request is made to do so
|
void |
enable()
Notifies the state provider that it should begin servicing requests to store and retrieve state
|
StateMap |
getState(String componentId)
Returns the currently configured state for the component.
|
Scope[] |
getSupportedScopes()
Provides a listing of
Scope s supported by the StateProvider |
void |
initialize(StateProviderInitializationContext context)
Initializes the StateProvider so that it is capable of being used.
|
boolean |
isEnabled() |
void |
onComponentRemoved(String componentId)
This method is called whenever a component is removed from the NiFi instance.
|
boolean |
replace(StateMap oldValue,
Map<String,String> newValue,
String componentId)
Updates the value of the component's state to the new value if and only if the value currently
is the same as the given oldValue.
|
void |
setState(Map<String,String> state,
String componentId)
Updates the value of the component's state, setting the new value to the
given state
|
void |
shutdown()
Shuts down the StateProvider and cleans up any resources held by it.
|
getIdentifier, getPropertyDescriptor, getPropertyDescriptors, onPropertyModified, validate
void initialize(StateProviderInitializationContext context) throws IOException
shutdown()
method has been calledcontext
- the initialization context that can be used to prepare the state provider for useIOException
void shutdown()
initialize(StateProviderInitializationContext)
method.void setState(Map<String,String> state, String componentId) throws IOException
state
- the value to change the state tocomponentId
- the id of the component for which state is being setIOException
- if unable to communicate with the underlying storage mechanismStateMap getState(String componentId) throws IOException
componentId
- the id of the component for which state is to be retrievedIOException
- if unable to communicate with the underlying storage mechanismboolean replace(StateMap oldValue, Map<String,String> newValue, String componentId) throws IOException
oldValue
- the old value to compare againstnewValue
- the new value to use if and only if the state's value is the same as the given oldValuecomponentId
- the id of the component for which state is being retrievedtrue
if the state was updated to the new value, false
if the state's value was not
equal to oldValueIOException
- if unable to communicate with the underlying storage mechanismvoid clear(String componentId) throws IOException
componentId
- the id of the component for which state is being clearedIOException
- if unable to communicate with the underlying storage mechanismvoid onComponentRemoved(String componentId) throws IOException
componentId
- the ID of the component that was added to the NiFi instanceIOException
- if unable to perform the necessary cleanupvoid enable()
void disable()
boolean isEnabled()
true
if the provider is enabled, false
otherwise.Copyright © 2016 Apache NiFi Project. All rights reserved.