Whenever an olingo final is available for odata 3/4 we'll want to utilize that. The best guess now is that this will happen in the 8.9 timeframe. Additional support can then be added for later odata features, which will have subtasks as necessary.

            [TEIID-2973] OData 4 support with Olingo

            Van Halbert <vhalbert@redhat.com> changed the Status of bug 1293994 from NEW to CLOSED

            RH Bugzilla Integration added a comment - Van Halbert <vhalbert@redhat.com> changed the Status of bug 1293994 from NEW to CLOSED

            From above list 5, 11, 13 now should be supported. I have written the XML serialization for Olingo framework to be included in 4.0.

            Ramesh Reddy added a comment - From above list 5, 11, 13 now should be supported. I have written the XML serialization for Olingo framework to be included in 4.0.

            vasudevan_madubhushi Olingo 4.0 released yesterday, and I could finally merge changes related to the expand with following merge https://github.com/teiid/teiid/commit/ea80b44e02d33505c13d140c13f77d75b6f5c4a0

            This will be in 8.12 CR1 which will be released next week. Any help with testing OData v4 is greatly appreciated.

            Ramesh Reddy added a comment - vasudevan_madubhushi Olingo 4.0 released yesterday, and I could finally merge changes related to the expand with following merge https://github.com/teiid/teiid/commit/ea80b44e02d33505c13d140c13f77d75b6f5c4a0 This will be in 8.12 CR1 which will be released next week. Any help with testing OData v4 is greatly appreciated.

            vasudevan_madubhushi I had it coded and available in branch https://github.com/rareddy/teiid/tree/TEIID-2973 here but did not make it into 8.11.Final as it requires couple changes from Olingo library. I need to wait for them to release next revision to check in these changes.

            Ramesh Reddy added a comment - vasudevan_madubhushi I had it coded and available in branch https://github.com/rareddy/teiid/tree/TEIID-2973 here but did not make it into 8.11.Final as it requires couple changes from Olingo library. I need to wait for them to release next revision to check in these changes.

            Hi Ramesh,
            Did the support for $expand go into into 8.11 Final? Appreciate your help on this.

            My Syntax is :
            http://10.47.86.130:8080/odata/FirePanels2.1/FirePanels(1)?$expand=SoftwareUnits

            I get this as my response. The SoftwareUnits entity is related to FirePanels entity by pkey.
            {
            "d" : {
            "__metadata" : {
            "uri" : "http://10.47.86.130:8080/odata/FirePanels2.1/FirePanels.FirePanels(1L)", "type" : "FirePanels.FirePanels"
            }, "pkey" : "1", "keySerialModel" : "asset-one", "assetType" : "FirePanel", "SoftwareUnits" : {
            "__deferred" : {
            "uri" : "http://10.47.86.130:8080/odata/FirePanels2.1/FirePanels.FirePanels(1L)/SoftwareUnits"
            }
            }
            }
            }

            Server Logs if its of any help:
            13:49:30,409 INFO [org.odata4j.producer.resources.EntityRequestResource] (http-/10.47.86.130:8080-5) null getEntity(FirePanels,(1),SoftwareUnits,null)
            13:49:31,074 INFO [org.odata4j.producer.resources.EntityRequestResource] (http-/10.47.86.130:8080-5) null getEntity(FirePanels,(1),SoftwareUnits,null)
            13:49:31,577 INFO [org.odata4j.producer.resources.EntityRequestResource] (http-/10.47.86.130:8080-5) null getEntity(FirePanels,(1),SoftwareUnits,null)

            Vasudevan Madubhushi (Inactive) added a comment - Hi Ramesh, Did the support for $expand go into into 8.11 Final? Appreciate your help on this. My Syntax is : http://10.47.86.130:8080/odata/FirePanels2.1/FirePanels(1)?$expand=SoftwareUnits I get this as my response. The SoftwareUnits entity is related to FirePanels entity by pkey. { "d" : { "__metadata" : { "uri" : "http://10.47.86.130:8080/odata/FirePanels2.1/FirePanels.FirePanels(1L)", "type" : "FirePanels.FirePanels" }, "pkey" : "1", "keySerialModel" : "asset-one", "assetType" : "FirePanel", "SoftwareUnits" : { "__deferred" : { "uri" : "http://10.47.86.130:8080/odata/FirePanels2.1/FirePanels.FirePanels(1L)/SoftwareUnits" } } } } Server Logs if its of any help: 13:49:30,409 INFO [org.odata4j.producer.resources.EntityRequestResource] (http-/10.47.86.130:8080-5) null getEntity(FirePanels,(1),SoftwareUnits,null) 13:49:31,074 INFO [org.odata4j.producer.resources.EntityRequestResource] (http-/10.47.86.130:8080-5) null getEntity(FirePanels,(1),SoftwareUnits,null) 13:49:31,577 INFO [org.odata4j.producer.resources.EntityRequestResource] (http-/10.47.86.130:8080-5) null getEntity(FirePanels,(1),SoftwareUnits,null)

            Ramesh Reddy added a comment - - edited
            • $root support added.
            • $crossjoin support added but not checked in yet, as it requires changes in Olingo library.

            Will open JIRAs for others or will reopen at later date

            Ramesh Reddy added a comment - - edited $root support added. $crossjoin support added but not checked in yet, as it requires changes in Olingo library. Will open JIRAs for others or will reopen at later date

            Added most features of OData V4 support based on Olingo version 4.0.0-beta-03. Some of omissions are

            1) $expand is supported, but nested $expand and $expand of multiple entities is not supported currently
            2) No $search support as it is not applicable in JDBC, but may be in general service sense, need to take this as separate topic
            3) No Geo type support yet, as Olingo library does not support it
            4) No delta data support
            5) No deep insert yet
            6) $batch is supported, but references using $1, $2 not yet supported
            7) Edm.Stream support is available (spec does not call for multi-part for this). The REST procedures created in Teiid will now behave same way over OData !
            8) Functions and Actions are supported. When "updateCount = 0" and has return type is defined, a procedure is treated as Function Import, otherwise it is a Action Import. There are no entity based actions and functions in Teiid, thus no composable functions and actions either
            9) No Async support (will be a while for this)
            10) No annotation support
            11) No ATOM payload support due to lack of the feature in the Olingo library (hopefully by the next revision)
            12) No "metadata=full" support yet due to lack of feature in the Olingo library. This is work in progress, will be there in next revision.
            13) No $crossjoin support yet
            14) no $root support yet
            15) The library is also designed to work as one can create service for each individual VDB file, however there is no support structure yet. i.e scripts or gui to build one with different security options etc.

            I will be working on some of the above for 8.11, rest may get pushed to next releases.

            Ramesh Reddy added a comment - Added most features of OData V4 support based on Olingo version 4.0.0-beta-03. Some of omissions are 1) $expand is supported, but nested $expand and $expand of multiple entities is not supported currently 2) No $search support as it is not applicable in JDBC, but may be in general service sense, need to take this as separate topic 3) No Geo type support yet, as Olingo library does not support it 4) No delta data support 5) No deep insert yet 6) $batch is supported, but references using $1, $2 not yet supported 7) Edm.Stream support is available (spec does not call for multi-part for this). The REST procedures created in Teiid will now behave same way over OData ! 8) Functions and Actions are supported. When "updateCount = 0" and has return type is defined, a procedure is treated as Function Import, otherwise it is a Action Import. There are no entity based actions and functions in Teiid, thus no composable functions and actions either 9) No Async support (will be a while for this) 10) No annotation support 11) No ATOM payload support due to lack of the feature in the Olingo library (hopefully by the next revision) 12) No "metadata=full" support yet due to lack of feature in the Olingo library. This is work in progress, will be there in next revision. 13) No $crossjoin support yet 14) no $root support yet 15) The library is also designed to work as one can create service for each individual VDB file, however there is no support structure yet. i.e scripts or gui to build one with different security options etc. I will be working on some of the above for 8.11, rest may get pushed to next releases.

            Due the delay of Olingo release of V4 library, I am pushing this in 8.11 version, at the time there are multiple contributions I am making to Olingo project to help with development.

            Ramesh Reddy added a comment - Due the delay of Olingo release of V4 library, I am pushing this in 8.11 version, at the time there are multiple contributions I am making to Olingo project to help with development.

              rhn-engineering-rareddy Ramesh Reddy
              rhn-engineering-shawkins Steven Hawkins
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: