Clone
 

phantomjinx <p.g.richardson@phantomjinx.co.uk> in camel-git

CAMEL-13598: Implement ETag support in olingo components

* Supports odata services that implement concurrency properties on entities

by ensuring that when performing patch, update & delete operations, the

OlingoApp first reads the requisite entity and retrieves its ETag. This

is then added into the subsequent request under the If-Match header

* Adds additional tests for specifically testing the ETag functionality.

CAMEL-13861: Fixes missing logic producing empty messages

* Olingo[*]Consumer

* Tests for null results as well as empty collections. Return 0 accordingly

* Adds and updates tests to assume no empty messages unless the

consumer.sendEmptyMessageWhenIdle property has been configured

fix(13606): Stop Olingo Index Classes generating NP Exceptions

* Olingo*Index

* Provides null-checks to each method to avoid any NPE

* Tests

* The consumer testing routes were being started prior to the tests that

concerned them. Consequently, it was hit/miss whether the tests would

catch all messages generated by the routes. This matters for the

'already seen' tests as adding more of there meant tests failed with

messages having no bodies.

* Consumer tests broken out into their own classes and camel context

started in the test once the mock endpoints have been property setup.

fix(13606): Stop Olingo Index Classes generating NP Exceptions

* Olingo*Index

* Provides null-checks to each method to avoid any NPE

* Tests

* The consumer testing routes were being started prior to the tests that

concerned them. Consequently, it was hit/miss whether the tests would

catch all messages generated by the routes. This matters for the

'already seen' tests as adding more of there meant tests failed with

messages having no bodies.

* Consumer tests broken out into their own classes and camel context

started in the test once the mock endpoints have been property setup.

fix(13606): Stop Olingo Index Classes generating NP Exceptions

* Olingo*Index

* Provides null-checks to each method to avoid any NPE

* Tests

* The consumer testing routes were being started prior to the tests that

concerned them. Consequently, it was hit/miss whether the tests would

catch all messages generated by the routes. This matters for the

'already seen' tests as adding more of there meant tests failed with

messages having no bodies.

* Consumer tests broken out into their own classes and camel context

started in the test once the mock endpoints have been property setup.

CAMEL-13458: Support return of collection properties in Olingo4

* Olingo4AppImpl

* If property has collection then return it.

* Tests to prove fix

* Olingo2ComponentTest

* Shore up tests to make them more reliable.

CAMEL-13316: Olingo components handle value/property results

* When split, both olingo components handle results which are values or

properties rather than entities.

* Provides tests confirming the fix.

CAMEL-13316: Olingo components handle value/property results

* When split, both olingo components handle results which are values or

properties rather than entities.

* Provides tests confirming the fix.

CAMEL-13316: Olingo components handle value/property results

* When split, both olingo components handle results which are values or

properties rather than entities.

* Provides tests confirming the fix.

CAMEL-13185: Add splitResults implementations to Olingo Components

* Adds splitResults methods to both Olingo 2 & 4 Consumers

CAMEL-13185: Add splitResults implementations to Olingo Components

* Adds splitResults methods to both Olingo 2 & 4 Consumers

CAMEL-13077: Fix polling return for empty OData ODataFeeds (#2719) Closes #2732

* ApiConsumerHelper does not recognise ODataFeeds and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ODataFeed is empty then return 0 to allow for backoffXXX

properties

* This is an equivalent change to that already committed for olingo4

component.

CAMEL-13077: Fix polling return for empty OData ODataFeeds (#2719) Closes #2732

* ApiConsumerHelper does not recognise ODataFeeds and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ODataFeed is empty then return 0 to allow for backoffXXX

properties

* This is an equivalent change to that already committed for olingo4

component.

CAMEL-13077: Fix polling return for empty OData ODataFeeds (#2719) Closes #2732

* ApiConsumerHelper does not recognise ODataFeeds and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ODataFeed is empty then return 0 to allow for backoffXXX

properties

* This is an equivalent change to that already committed for olingo4

component.

CAMEL-13077: Fix polling return for empty OData ODataFeeds (#2719) Closes #2732

* ApiConsumerHelper does not recognise ODataFeeds and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ODataFeed is empty then return 0 to allow for backoffXXX

properties

* This is an equivalent change to that already committed for olingo4

component.

CAMEL-13077: Fix polling return for empty OData ODataFeeds (#2719) Closes #2732

* ApiConsumerHelper does not recognise ODataFeeds and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ODataFeed is empty then return 0 to allow for backoffXXX

properties

* This is an equivalent change to that already committed for olingo4

component.

CAMEL-13077: Fix polling return for empty OData ClientEntitySets (#2719)

* ApiConsumerHelper does not recognise ClientEntitySets and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ClientEntitySet is empty then return 0 to allow for backoffXXX

properties to correctly handle the scheduling of the polling.

CAMEL-13077: Fix polling return for empty OData ClientEntitySets (#2719)

* ApiConsumerHelper does not recognise ClientEntitySets and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ClientEntitySet is empty then return 0 to allow for backoffXXX

properties to correctly handle the scheduling of the polling.

CAMEL-13077: Fix polling return for empty OData ClientEntitySets (#2719)

* ApiConsumerHelper does not recognise ClientEntitySets and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ClientEntitySet is empty then return 0 to allow for backoffXXX

properties to correctly handle the scheduling of the polling.

CAMEL-13077: Fix polling return for empty OData ClientEntitySets (#2719)

* ApiConsumerHelper does not recognise ClientEntitySets and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ClientEntitySet is empty then return 0 to allow for backoffXXX

properties to correctly handle the scheduling of the polling.

CAMEL-13077: Fix polling return for empty OData ClientEntitySets (#2719)

* ApiConsumerHelper does not recognise ClientEntitySets and thus defaults

to return a constant 1. This means that the scheduling polling is never

concluded to be idle and the backoffXXX consumer properties do not work.

* If the ClientEntitySet is empty then return 0 to allow for backoffXXX

properties to correctly handle the scheduling of the polling.

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.

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.

CAMEL-13054: Olingo4Endpoint - avoid swallowing consumer options

* Those options prefixed with 'consumer' are required to be processed by

Olingo4Endpoint's parent class. However, they are getting added to the

query options instead and never applied to the scheduling consumer.

closes #2708

CAMEL-13054: Olingo4Endpoint - avoid swallowing consumer options

* Those options prefixed with 'consumer' are required to be processed by

Olingo4Endpoint's parent class. However, they are getting added to the

query options instead and never applied to the scheduling consumer.

closes #2708

CAMEL-13054: Olingo4Endpoint - avoid swallowing consumer options

* Those options prefixed with 'consumer' are required to be processed by

Olingo4Endpoint's parent class. However, they are getting added to the

query options instead and never applied to the scheduling consumer.

closes #2708

CAMEL-13054: Olingo4Endpoint - avoid swallowing consumer options

* Those options prefixed with 'consumer' are required to be processed by

Olingo4Endpoint's parent class. However, they are getting added to the

query options instead and never applied to the scheduling consumer.

closes #2708

CAMEL-13054: Olingo4Endpoint - avoid swallowing consumer options

* Those options prefixed with 'consumer' are required to be processed by

Olingo4Endpoint's parent class. However, they are getting added to the

query options instead and never applied to the scheduling consumer.

closes #2708

CAMEL-13006: Fix for required properties in odata configuration

* edm and responseHandler are set at runtime by the Oling4AppImpl, yet

they are checked by the endpoint using the getters/setters in the

Oling4Configuration. Therefore, they must be included in the latter to

allow for a route to pass muster.

CAMEL-13006: Fix for required properties in odata configuration

* edm and responseHandler are set at runtime by the Oling4AppImpl, yet

they are checked by the endpoint using the getters/setters in the

Oling4Configuration. Therefore, they must be included in the latter to

allow for a route to pass muster.