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

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

Apache Olingo supports the specification versions
 - OData 2.0 <http://www.odata.org/documentation/odata-v2-documentation/>

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.incubator.apache.org/documentation.html

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

Collective work: Copyright 2013 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.


