<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- 
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. 
-->
<html lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Apache Olingo provides libraries which enable developers to implement OData producers and OData consumers. The available OData Java library implements OData version 2.0. In future on goal is to provide an OData 4.0 compliant library once the OData standard is published at OASIS. The focus within the community is currently on the Java technology but it is up to the community to discuss if other environments find interest.">
    <meta name="author" content="">
    <link rel="icon" href="/favicon.ico">
    <title>Apache Olingo Library</title>
    <!-- Bootstrap core CSS -->
    <link href="/css/bootstrap.css" rel="stylesheet" type="text/css"><!-- Custom styles for this template -->
    <link href="/css/navbar.css" rel="stylesheet" type="text/css"><!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <link href="/css/offcanvas.css" rel="stylesheet" type="text/css"><!-- Custom styles for this template -->
    <link rel="stylesheet" href="/css/main.css">
    <!--[if lt IE 9]><script src="/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}    </style>
    <script src="/js/ie-emulation-modes-warning.js" type="text/javascript">
</script><!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->

    <script src="/js/ie10-viewport-bug-workaround.js" type="text/javascript">
</script><!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="/js/html5shiv.min.js"></script>
      <script src="/js/respond.min.js"></script>
    <![endif]-->
  </head>

  <body>
    <div class="container">
      <!-- Static navbar -->
      <div class="navbar navbar-default" role="navigation">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
              <span class="sr-only">Toggle navigation</span>
             <span class="icon-bar"></span>
             <span class="icon-bar"></span>
             <span class="icon-bar"></span>
            </button>
              <img class="navbar-brand" src="/img/OlingoOrangeTM.png" style="width:62px;" >
              <a class="navbar-brand" href="/">Apache Olingo™</a>
          </div>
          <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
              <li class="dropdown">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
                  <ul class="dropdown-menu">
                      <li><a href="https://www.apache.org/foundation/">ASF Home</a></li>
                      <li><a href="https://projects.apache.org/">Projects</a></li>
                      <li><a href="https://people.apache.org/">People</a></li>
                      <li><a href="https://www.apache.org/foundation/getinvolved.html">Get Involved</a></li>
                      <li><a href="https://www.apache.org/dyn/closer.cgi">Download</a></li>
                      <li><a href="https://www.apache.org/security/">Security</a></li>
                      <li><a href="https://www.apache.org/foundation/sponsorship.html">Support Apache</a></li>
                  </ul>
              </li>

              <li><a href="https://www.apache.org/licenses/">License</a></li>

              <li class="dropdown">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Download <b class="caret"></b></a>
                  <ul class="dropdown-menu">
                      <li><a href="/doc/odata2/download.html">Download OData 2.0 Java</a></li>
                      <li><a href="/doc/odata4/download.html">Download OData 4.0 Java</a></li>
                      <li><a href="/doc/javascript/download.html">Download OData 4.0 JavaScript</a></li>
                  </ul>
              </li>

              <li class="dropdown">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
                  <ul class="dropdown-menu">
                    <li><a href="/doc/odata2/index.html">Documentation OData 2.0 Java</a></li>
                    <li><a href="/doc/odata4/index.html">Documentation OData 4.0 Java</a></li>
                    <li><a href="/doc/javascript/index.html">Documentation OData 4.0 JavaScript</a></li>
                  </ul>
              </li>
              <li><a href="/support.html">Support</a></li>
              <li><a href="/contribute.html">Contribute</a></li>

            </ul>

			  <a class="navbar-right" href="https://www.apache.org/foundation/" target="_blank">
          <img class="navbar-right" height="50px" src="/img/asf_logo_url.svg" alt="Apache Software Foundation">
        </a>

			</div><!--/.nav-collapse -->
        </div><!--/.container-fluid -->
      </div><!-- Main component for a primary marketing message or call to action -->
    <h1 id="documentation2">Documentation2<a class="headerlink" href="#documentation2" title="Permalink">&para;</a></h1>
<hr/>
<h3 id="how-to-start">How to Start<a class="headerlink" href="#how-to-start" title="Permalink">&para;</a></h3>
<ul>
<li><a href="/doc/odata2/sample-setup.html">Sample Project Setup with Maven Archetypes</a></li>
<li><a href="/doc/odata2/tomcat.html">Run with Tomcat</a></li>
<li><a href="/doc/odata2/dependencies.html">Maven Dependencies</a></li>
</ul>
<hr/>
<h3 id="tutorials">Tutorials<a class="headerlink" href="#tutorials" title="Permalink">&para;</a></h3>
<div class="onepcssgrid-1200">
<div class="onerow">
<div class="col6">
<h5 id="odata-library">OData Library<a class="headerlink" href="#odata-library" title="Permalink">&para;</a></h5>
<ul>
<li><a href="doc/tutorials/basicread.html">Read Scenario</a></li>
<li><a href="doc/tutorials/Olingo_Tutorial_BasicWrite.html">Write Scenario</a></li>
<li><a href="doc/tutorials/read_expand.html">Read Scenario - $expand</a></li>
<li><a href="doc/tutorials/read_media-resource.html">Read Scenario - Media Resources</a></li>
<li><a href="doc/tutorials/Olingo_Tutorial_AdvancedReadWrite_Batch.html">Batch Scenario (read/write)</a></li>
<!-- <li> <a href="doc/tutorials/delta.html">Delta Responses</a></li> -->
</ul>
<h5 id="odata-jpa-processor-library">OData JPA Processor Library<a class="headerlink" href="#odata-jpa-processor-library" title="Permalink">&para;</a></h5>
<ul>
<li><a href="doc/tutorials/CreateWebApp.html">Creating a Web Application Project for Transforming JPA Models into OData Services</a></li>
<li><a href="doc/tutorials/ExtendingtheEDM.html">Extending the EDM Generated from the JPA Models</a></li>
<li><a href="doc/tutorials/jpafunctionimport.html">Adding Function Imports to OData Services</a></li>
<li><a href="doc/tutorials/jparedefinemetadata.html">Redefine Metadata for JPA Model</a></li>
</ul>
</div>
<div class="col6 last">
<h5 id="odata-annotation-processor-extension">OData Annotation Processor Extension<a class="headerlink" href="#odata-annotation-processor-extension" title="Permalink">&para;</a></h5>
<ul>
<li><a href="doc/tutorials/AnnotationProcessorExtension.html">Creating a Web Application Project with Annotation Processor Extension</a></li>
</ul>
<h5 id="miscellaneous">Miscellaneous<a class="headerlink" href="#miscellaneous" title="Permalink">&para;</a></h5>
<ul>
<li><a href="doc/tutorials/Olingo_Tutorial_AdvancedRead_FilterVisitor.html">Implementation of Filter Visitor</a></li>
<li><a href="doc/tutorials/Olingo_Tutorial_BasicRead_EDM.html">Parse Metadata</a></li>
<li><a href="doc/tutorials/Olingo_Tutorial_Advanced_Service_Resolution.html">Service Resolution</a></li>
<li><a href="doc/tutorials/debug.html">Debug Support and Custom Error Handling</a></li>
<li><a href="doc/tutorials/osgi.html">OSGi Support</a></li>
</ul>
</div>
</div>
<div class="onerow">
<div class="col12"></div>
</div>
</div>
<hr/>
<h3 id="olingo-project-setup-contributors">Olingo Project Setup (Contributors)<a class="headerlink" href="#olingo-project-setup-contributors" title="Permalink">&para;</a></h3>
<ul>
<li><a href="/doc/odata2/maven.html">Git and Maven Support</a></li>
<li><a href="/doc/odata2/eclipse.html">Eclipse IDE Support</a></li>
<li><a href="/doc/release.html">Release Documentation</a></li>
</ul>

      <div align="center">
	<p>Copyright © 2013-2023, The Apache Software Foundation<br>
				                Apache Olingo, Olingo, Apache, the Apache feather, and
				the Apache Olingo project logo are trademarks of the Apache Software
				Foundation.</p>
        <small><a href="/doc/odata2/privacy.html">Privacy</a></small>
      </div>
    </div><!-- /container -->
    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="/js/jquery.js" type="text/javascript">
    </script>
    <script src="/js/bootstrap.js" type="text/javascript">
    </script>
    <script src="/js/offcanvas.js" type="text/javascript">
    </script>
    <link rel="stylesheet" href="/css/docco.css">
    <script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.0.1/build/highlight.min.js"></script>
    <script>hljs.highlightAll();</script>
  </body>
</html>