Apache Geode CHANGELOG

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 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.

Implement Post Processing

Complete these items to implement post processing.