==========================
Apache Olingo
==========================

Apache Olingo is a Java library and extensions around
the OData specification.

Apache Olingo supports the specification versions
 - OData 4.0 <http://www.odata.org/documentation/odata-version-4-0/>

Building Apache Olingo
======================

You can build Apache Olingo like this:

    mvn clean install

You need Maven 3 with Java 6 (or higher) for the build.
Set the environment variable MAVEN_OPTS to 
'-Xmx1024m -XX:MaxPermSize=256m' to give Maven more memory.

Documentation
=============

The project documentation is available here:

http://olingo.apache.org/

License (see also package specific LICENSE files)
=================================================

Collective work: Copyright 2014 The Apache Software Foundation.

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Dependencies with "Weak Copyleft" or dual licenses
==================================================

Apache Olingo uses some libraries with open source licenses that require reciprocal
licensing when modified. These libraries are included in unmodified binary
form and can be redistributed under terms that are compatible with the
Apache License.

Some libraries used by Apache Olingo are dual-licensed under different open source
licenses. These libraries are redistributed under the license whose terms
are compatible with the Apache License.

See LICENSE file included in all Apache Olingo packages for 
full licensing details.


