CAMEL-13082: Filter results already seen by the Olingo consumers and producers Closes #2720 * Olingo[4,2]Configuration * Adds filterAlreadySeen property * Added here rather than to the endpoint as the latter would require ultimately, in order to satisfy various checks, changes to the endpoint read() method in the api's Olingo4AppImpl, which is unnecessary since this is used by the consumer. * Olingo[4,2]Endpoint * Adds filterAlreadySeen property names to the property names collection so that parseQueryParams() does not remove it. * Adds the filterAlreadySeen property during interceptProperties() in a just-in-time manner (avoiding possibility of it causing problems with endpoint and consumer initialisation).
* Olingo[4,2][Consumer,Producer] * Adds a resultIndex for indexing hashcodes of existing results * On receiving a response, if the resultIndex has been initialised then the response results are checked by getting their hashcodes. If they're in the resultIndex then they are discarded. * Prior to any messages interceptProperties is called and if the properties contain the filterAlreadySeen property then the resultIndex is initialised. * Once the results have been placed in the exchange, interceptResult() is called and some housekeeping is done to index all the results in the resultIndex ready for checking on the next polling.