blob: 1b5cb67376230d543a17805007efa476d34a4c9c [file] [log] [blame]
<!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="http://www.apache.org/foundation/">ASF Home</a></li>
<li><a href="http://projects.apache.org/">Projects</a></li>
<li><a href="http://people.apache.org/">People</a></li>
<li><a href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a></li>
<li><a href="http://www.apache.org/dyn/closer.cgi">Download</a></li>
<li><a href="http://www.apache.org/security/">Security</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Support Apache</a></li>
</ul>
</li>
<li><a href="http://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="http://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="sample-project-setup">Sample Project Setup<a class="headerlink" href="#sample-project-setup" title="Permalink">&para;</a></h1>
<p>Olingo has prepared a very simple sample car service that can work as a starting point for implementing a custom OData service.
This service consists of a very simple EDM with two entity sets that are cars and manufactures and a memory based data provider that is a simple hash map.
Therefore the project implements a very basic single OData processor supporting a minimal readonly scenario.
If build with Maven the build result is a web application (<code>war</code> file) which can be deployed to any JEE compliant web application server (e.g. <a href="http://tomcat.apache.org">Tomcat</a>).</p>
<hr/>
<h3 id="maven-archetype">Maven Archetype<a class="headerlink" href="#maven-archetype" title="Permalink">&para;</a></h3>
<p>Apache Olingo supports Maven archetypes that are a kind of project template for setting up new projects from scratch.
Currently exists an archetype with an <code>ODataSingleProcessor</code> implementation as <code>olingo-odata2-sample-cars-service-archetype</code> and an archetype with an annotation based <code>ODataService</code> implementation as <code>olingo-odata2-sample-cars-annotation-archetype</code>.</p>
<p>To generate the sample project for the <code>ODataSingleProcessor</code> implementation start with:</p>
<pre><code>mvn archetype:generate \
-DinteractiveMode=false \
-Dversion=1.0.0-SNAPSHOT \
-DgroupId=com.sample \
-DartifactId=my-car-service \
-DarchetypeGroupId=org.apache.olingo \
-DarchetypeArtifactId=olingo-odata2-sample-cars-service-archetype \
-DarchetypeVersion=RELEASE
</code></pre>
<p>To generate the sample project for the <code>ODataService</code> implementation with use of the Java Annotations extension start with:</p>
<pre><code>mvn archetype:generate \
-DinteractiveMode=false \
-Dversion=1.0.0-SNAPSHOT \
-DgroupId=com.sample \
-DartifactId=my-car-service \
-DarchetypeGroupId=org.apache.olingo \
-DarchetypeArtifactId=olingo-odata2-sample-cars-annotation-archetype \
-DarchetypeVersion=RELEASE
</code></pre>
<p>If an archetype is not available via Maven standard configuration then an additional parameter <code>-DarchetypeRepository=http://repository.apache.org/snapshots</code> can solve the issue.</p>
<p>Based on the Olingo project template Maven will generate a new project with the specified GAV*) coordinates: <code>com.sample:my-car-service:1.0.0-SNAPSHOT</code>.
GAV coordinates can be freely chosen during generation with the interactive mode. To enable the interactive mode <code>-DinteractiveMode</code> must be set to true or omitted (to use Maven default setting of <code>true</code>).</p>
<p>The result is a new and ready to build Maven project. Switch to <em>my-car-service</em> directory and execute:</p>
<pre><code>mvn clean install
</code></pre>
<p>If a Apache Olingo dependency is not available via Maven standard configuration than adding the Apache Maven Repository (or in case you want to use SNAPSHOTS the Apache Snapshot Repository) into your Maven <code>settings.xml</code> or the <code>pom.xml</code> of this project can solve the issue.</p>
<pre><code class="language-xml"> &hellip;
&lt;repositories&gt;
&lt;repository&gt;
&lt;id&gt;apache.central&lt;/id&gt;
&lt;name&gt;Central Repository&lt;/name&gt;
&lt;url&gt;http://repo.maven.apache.org/maven2&lt;/url&gt;
&lt;/repository&gt;
&lt;repository&gt;
&lt;id&gt;apache.snapshots&lt;/id&gt;
&lt;name&gt;Apache SNAPSHOT Repository&lt;/name&gt;
&lt;url&gt;https://repository.apache.org/content/repositories/snapshots/&lt;/url&gt;
&lt;/repository&gt;
&lt;/repositories&gt;
&hellip;
</code></pre>
<p>Maven will build the project with the result <strong>car-service.war</strong> in the Maven <em>target</em> directory which can be deployed to any JEE compliant web application server.
To call the deployed and running OData service enter this URI in a browser:</p>
<pre><code>http://localhost:8080/my-car-service/
</code></pre>
<p>Which show a entry page for the generated sample service with links to the <em>Metadata</em> (<code>$metadata</code>), <em>Service Document</em> and some <em>sample data</em> which it provides.</p>
<p>*) GAV means a Maven groupId, artifactId and version.</p>
<h3 id="eclipse-ide-support">Eclipse IDE Support<a class="headerlink" href="#eclipse-ide-support" title="Permalink">&para;</a></h3>
<p>The archetype template supports Eclipse as IDE.
Additionally to a Maven clean and install it is possible to call the following Maven goal:</p>
<pre><code>mvn eclipse:clean eclipse:eclipse
</code></pre>
<p>This will generate Eclipse project files including all transitive dependencies and the web application facet.
Import the project to Eclipse and it should be recognized as a web application project.
Deploy the Eclipse project to a server and it should run as well.</p>
<div align="center">
<p>Copyright © 2013-2022, 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>