!!! DEPRECATED !!!

This project will continue at the Apache Software Foundation and has entered the incubator already. Please follow this link to the new project site: Apache Olingo (incubation)

OData Library (Java)

Introduction

What is it about?

The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. OData does this by applying and building upon Web technologies such as HTTP, Atom Publishing Protocol (AtomPub) and JSON to provide access to information from a variety of applications, services, and stores.

The OData Library (Java) is a library which enables developers to implement OData producers and OData consumers and adheres to the following principles:

Some more Background

The basic idea behind this project is to have a code base that can continue development to support future OData 4.0 standard. OData 4.0 is expected to be release by OASIS in 2013. For that the code is modular and has following components:

The support of OData 2.0 is just mandatory because of there is already a wide adoption of this standard version. It is also an option to extend the OData 2.0 library to support features of OData 3.0 if required. Contributions to this are welcome.

For OData 4.0 development could happen in a new branch and we target that OData 2.0 (3.0) and OData 4.0 can exist in parallel.

Maven

The project build with Maven. To consume sources execute

mvn eclipse:eclipse

and import generated projects into Eclipse.

To consume libraries with Maven add following dependencies to your pom.xml:

$odata.lib.version=0.7.0

<dependency>
  <groupId>com.sap.odata</groupId>
  <artifactId>com.sap.core.odata.api</artifactId>
  <version>${odata.lib.version}</version> 
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.sap.odata</groupId>
  <artifactId>com.sap.core.odata.core</artifactId>
  <version>${odata.lib.version}</version>
  <scope>runtime</scope>
</dependency>

For advanced JPA processor usage these additional dependencies are required:

<dependency>
  <groupId>com.sap.odata</groupId>
  <artifactId>com.sap.core.odata.processor.api</artifactId>
  <version>${odata.lib.version}</version> 
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.sap.odata</groupId>
  <artifactId>com.sap.core.odata.api.annotation</artifactId>
  <version>${odata.lib.version}</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>com.sap.odata</groupId>
  <artifactId>com.sap.core.odata.processor.core</artifactId>
  <version>${odata.lib.version}</version>
  <scope>runtime</scope>
</dependency>

Build artifacts are already available at Maven Central.

Additional Information

License

This project is copyrighted by SAP AG and made available under the Apache License 2.0. Please also confer to the text files "LICENSE" and "NOTICE" included with the project sources.

Contributions

Contributions to this project are very welcome, but can only be accepted if the contributions themselves are given to the project under the Apache License 2.0. Contributions other than those given under Apache License 2.0 will be rejected.

Version History

0.8.0-SNAPSHOT deprecated
0.7.0 advanced $batch (content id handling)
0.6.0 Support of tumbestones and $batch 0.5.0 Service Document parsing / performance optimization
0.4.1 JPA processor support
0.4.0 Advanced Read / Write and JSON support
0.3.0 Advanced Read / Basic Write
0.2.0 Basic Read / Write
0.1.0 Basic Read

Roadmap

Go to Apache Olingo (incubation)