In today’s mobile and agile business environment, it is important to unlock the enterprise data held by applications and other systems, and enable its consumption from anywhere. The Open Data Protocol (OData), on its way to be standardized by Microsoft, IBM, SAP and a lot of other companies within OASIS (an international standards body for advancing open standards for the information society), provides a solution to simplify data sharing across applications in enterprises, in the Cloud, and on mobile devices. OData leverages proven Internet technologies such as REST, ATOM and JSON, and provides a uniform way to access data as well as data models.

SAP contributed the Java OData Library recently to Apache Olingo (Incubator). After just a few days available in public we got a lot of interest from other companies. That makes us confident to build up a community working on evolving this library to the latest version which is the upcoming OData Standard as result of the standardization process at OASIS.

Talking about features there is already a lot to be discovered in the library. Since the Entity Data Model, the URI Parsing including all System Query Options and (De)Serialization for ATOM/XML and JSON is already supported one can build an OData Services supporting advanced read / write scenarios. Features like $batch are currently added, Conditional Handling, advanced Client Support and detailed documentation are on the roadmap for the upcoming months.

The guiding principles during the implementation of the OData Library were to be OData 2.0 specification compliant and have an architecture in place to enhance the library in a compatible manner as much as possible. The clear separation between Core and API and keeping dependencies down to a minimum is important. The community should have the option to build extensions for various data sources on top of the library. The JPA Processor as one additional module provided is an excellent example for such an extension.

Besides the Core and API packages there is also an example provided in the ref and ref.web packages in order to show the features in an OData Service Implementation and to enable to integrate new features in that service also for full integration tests (fit).

 

We’ll keep you posted once the first release is available to digest. You can already dig into the coding, provide bug reports, feature requests and questions via Jira or by using the mailing list. All the information is available in the support section of the web site.

Further Information:

To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

  1. Jan Penninkhof

    Thanks SAP, for donating the oData library to Apache. I do hope that this doesn’t mean that SAP will immediately pull his hands off this great library, but I have good confidence that they won’t.

    I’ve noticed the move to Apache this weekend already, and have seen that it has taken quite some effort into preparing this move. I want to congratulate you all for achieving the Apache incubation status. It is something a lot of people think quite lightly about, but I know it’s been hard work and a great achievement.

    This weekend I got the chance to play around with the code a bit (sorry for not waiting until the first release is more digestible, I’m not scared of a bit acid reflux though). I pommed the library and got started by copying the reference project (ref).

    I’m pretty impressed with what’s delivered from the box. As mentioned, read and write are both supported and are very easy to implement. But what struck me is the nice exception handling as well. In case of an exception somewhere in the app (even the custom parts), a standard response is generated containing the exception in XML form. Sounds simple, and maybe it is, but the fact that these kinds of things are there shows that it was built with passion. Very nicely done!

    It is great that there is an example (ref) as well, which makes it really easy to build your own application. In retrospect, I think I got started quite a bit quicker than when I was trying out odata4j the first time. When I was trying odata4j, I was quite quickly stuck with the type of provider I should build (in-memory provider? huh?) and how to integrate the features I wanted (building a custom oData provider in odata4j is an extremely painful exersize). The reference project in the olingo library contains a very detailed example, which could function as a boilerplate for your own project, including examples of how to use oData base types (i.e. super classes) and function imports.

    Anyhow, I really like what I’ve seen so far and how to see much more good stuff happening in the future with the support of upcoming oData version. The project could do with a bit more documentation and perhaps a couple of cooking recipes. That didn’t stop me from building something that already worked, but I think I could have been on the road a bit quicker if there was a bit more explanation on how to get started.

    I’m genuinely interested in the project and see a lot of benefits for SAP customers and partners to have an oData provider for the Java and cloud stack. And in the spirit of open source and Apache community projects: If there is any way I can help you guys, please do not hesitate to contact me.

    Cheers, kudos, congratulations!

    Jan

    (0) 
    1. Jens Huesken Post author

      Hi Jan,

      thanks for your feedback on the OData Library at Apache Olingo (Incubating).

      We promised to keep everyone posted on what is happening. I am happy that the first release of Apache Olingo is out and can be consumed via the Download Site.

      You also find what happened the last two month on the code base to make that release happen via the release notes.

      This first release is just the beginning and we hope that the community also goes into the direction of providing libraries for OData Version 4, which is currently standardized at OASIS. And yes, there are ways to help. We’ll hope to attract more people helping with contributions at Apache Olingo (Incubating), which can be code contributions, bug reports, new ideas, questions, feedback about the available release and documentation, etc.

      Cheers,

      Jens.

      (0) 
  2. Balakrishnan B

    Hi Jens,

    Thanks for the blog. Would it be possible to share some updates on the SAP enterprise version of this library? SAP NW 731 seems to have a Software Component called ODATA-CXF-EXT but it doesn’t provide the required public parts/interfaces to use it from an application. Any ideas around it would be really helpful. Thanks.

    (0) 
    1. Jens Huesken Post author

      Hi,

      yes you are right. The Software Component does not provide public parts for external use and there are currently also no plans to change this. Instead I personally would recommend to use the library at Olingo and package it along with your project. Hope this helps.

      Regards,

      Jens.

      (0) 
      1. Balakrishnan B

        Hi Jens, Thanks for confirmation. But, how about Enterprise level support for this library?. SAP customers ask for an enterprise edition with support for productive use. Your thoughts?

        (0) 

Leave a Reply