There has been a demand for quite some time for an OData component for Camel. Apache Olingo 2.0 supports OData2.0 and 3.0 protocols.
A Camel component can be created by writing a client API on top of Olingo's lower level marshal/un-marshal APIs and then wrapping this client API easily with the API Component Framework.
This component should support all the features of the Apache Olingo client library. This includes reading, updating, patching and merging the following:
- Entity Sets
- Complex Properties
- Simple Properties and values
- System option $count and other system options and query parameters
- Batch requests for sequential operations including entity references using Content-Id
The component should take Olingo2 data types as input values and respond with an appropriate Olingo2 defined response data type.
For batch operations the client API must define higher level POJOs for requests and responses as the Olingo data types for batch operations are very low level and require setting HTTP headers extensively and return String bodies for all response types.
The component should be able to determine the appropriate Olingo2 type to use and convert batch response parts.