The PostProcessor
interface allows the definition of a callback that is invoked after any and all client and gfsh
operations that get data, but before the data is returned. It permits the callback to intervene and format the data that is to be returned. The callbacks must not modify the region data, only the data to be returned.
The processRegionValue
method is given the principal of the operation requester. The operation will already have been completed, implying that the principal will have been authorized to complete the requested operation. The post processing can therefore format the returned data based on the identity of the requester (principal).
By default, the key and value parameters to the processRegionValue
method are references to the region entry. Modify copies of these parameters to avoid changing the region entries. Copy on Read Behavior discusses the issue.
The processRegionValue
method is invoked for these API calls:
Region.get
Region.getAll
Query.execute
CqQuery.execute
CqQuery.executeWithInitialResults
CqListener.onEvent
CacheListener.afterUpdate
for which there is interest registered with Region.registerInterest
Care should be taken when designing a system that implements the post processing callback. It incurs the performance penalty of an extra method invocation on every get operation.
Complete these items to implement post processing.
security-post-processor
property. See Enable Security with Property Definitions for details about this property.processRegionValue
method of the PostProcessor
interface.