Post Processing of Region Data
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
- for a relevant region event from
CacheListener.afterUpdate
for which there is interest registered withRegion.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.
Implement Post Processing
Complete these items to implement post processing.
- Define the
security-post-processor
property. See Enable Security with Property Definitions for details about this property. - Implement the
processRegionValue
method of thePostProcessor
interface.