You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by bu...@apache.org on 2014/09/16 14:34:20 UTC

svn commit: r922392 [2/23] - in /websites/staging/olingo/trunk/content: ./ doc/ doc/javascript/ doc/odata2/ doc/odata2/tutorials/ doc/odata4/ doc/odata4/tutorials/ doc/tutorials/

Added: websites/staging/olingo/trunk/content/doc/odata2/release.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/release.html (added)
+++ websites/staging/olingo/trunk/content/doc/odata2/release.html Tue Sep 16 12:34:18 2014
@@ -0,0 +1,297 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<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
+    </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]-->
+
+    <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><a href="/">Home</a></li>
+              <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/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/javascript/index.html">Documentation OData 4.0 JavaScript</a></li>
+                  </ul>
+              </li>
+              <li><a href="/support.html">Support</a></li>
+
+            </ul>
+
+			  <img class="navbar-right" height="50px" src="/img/asf-logo.gif">
+
+			</div><!--/.nav-collapse -->
+        </div><!--/.container-fluid -->
+      </div><!-- Main component for a primary marketing message or call to action --><h1 id="apache-olingo-release-documentation">Apache Olingo Release Documentation</h1>
+<hr />
+<h3 id="introduction">Introduction</h3>
+<p>This document describes the release guidelines for Apache Olingo. It heavily refers 
+to <a href="http://maven.apache.org/developers/release/apache-release.html">standard Apache procedures to release</a>
+ Maven based projects at Apache.</p>
+<h3 id="build-environments">Build Environments</h3>
+<p>Apache Olingo is built and released with <a href="http://maven.apache.org">Maven3</a> and uses 
+the <a href="http://svn.apache.org/repos/asf/maven/pom/tags/apache-13/pom.xml">Apache POM version 13</a>.</p>
+<h3 id="release-artifacts">Release Artifacts</h3>
+<p>An Apache Olingo release consists of:</p>
+<ul>
+<li>All POMs/JARs/WARs built as part of the standard Maven build process. For
+an overview on the released modules see artifacts with groupId
+<em>org.apache.olingo</em> in the <a href="https://repository.apache.org/index.html#nexus-search;gav~org.apache.olingo~~~~">Apache Maven Repository</a>.<br />
+In detail, per every module, where applicable, the following artifacts are produced:</li>
+<li><strong>Main artifact</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;.&lt;ext&gt;</code></li>
+<li><strong>Source artifact</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;-sources.&lt;ext&gt;</code></li>
+<li><strong>Javadoc artifact</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;-javadoc.&lt;ext&gt;</code></li>
+<li><strong>POM</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;.pom</code></li>
+</ul>
+<p>Also the following additional <em>distribution commodity packages</em> are
+provided as part of the release:</p>
+<ul>
+<li>
+<p><code>org.apache.olingo-olingo-odata2-parent-${version}-source-release.${ext}</code> <br/> A source-release 
+bundle containing all files the sources necessary to build all other artifacts. <br/> <strong>Package formats</strong>: zip.</p>
+</li>
+<li>
+<p><code>org.apache.olingo-olingo-odata2-dist-${version}-lib.${ext}</code> <br/> A bundle containing the OData2 core 
+library and dependencies required to implement an OData V2 processor. <br/> <strong>Package formats</strong>: zip.</p>
+</li>
+<li>
+<p><code>org.apache.olingo-olingo-odata2-dist-${version}-javadoc.${ext}</code> <br/> A bundle 
+containing JavaDoc of the OData2 library API and annotations, the 
+JPA processor API as well as additional documentation and reference scenario 
+examples. <br/> <strong>Package formats</strong>: zip.</p>
+</li>
+<li>
+<p><code>org.apache.olingo-olingo-odata2-dist-${version}-jpa.${ext}</code> <br/> A bundle containing the OData2 JPA 
+processor and dependencies required to implement an OData V2 processor. <br/> <strong>Package formats</strong>: zip.</p>
+</li>
+<li>
+<p><code>org.apache.olingo-olingo-odata2-dist-${version}-janos.${ext}</code> <br/> A bundle containing the OData2 Java Annotation 
+processor and dependencies required to implement an OData V2 processor using Java Annotations. <br/> <strong>Package formats</strong>: zip.</p>
+</li>
+<li>
+<p><code>org.apache.olingo-olingo-odata2-dist-${version}-ref.${ext}</code> <br/> A bundle containing ready-to-depoly WAR 
+files of the OData V2 reference scenarios implementations for the core library and the JPA processor. <br/> <strong>Package formats</strong>: zip.</p>
+</li>
+</ul>
+<h3 id="documentation-and-javadoc">Documentation and JavaDoc</h3>
+<p>The documentation that will be part of the release must match the code. 
+All examples in the documentation must work. The Java package documentation must be 
+up-to-date. Release independend documentation is maintained on the <a href="http://olingo.apache.org/documentation.html">Apache Olingo Documentation</a> page.</p>
+<h3 id="preparation">Preparation</h3>
+<h5 id="release-manager">Release Manager</h5>
+<p>A release manager must be appointed for a release. He or she is in charge of the release process, 
+following the guidelines and eventually generating the release artifacts.
+The release manager might tailor the process for a specific release.</p>
+<h5 id="version">Version</h5>
+<p>The Olingo community decides if the release will be a major or a minor release and 
+agrees on a version number.</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">versions</span><span class="p">:</span><span class="n">set</span> <span class="o">-</span><span class="n">DnewVersion</span><span class="p">=</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="o">-</span><span class="n">RC01</span>
+<span class="nb">find</span> <span class="p">.</span> <span class="o">-</span><span class="n">name</span> <span class="s">&#39;*.versionsBackup&#39;</span> <span class="o">-</span><span class="n">type</span> <span class="n">f</span> <span class="o">-</span><span class="n">delete</span>
+<span class="n">git</span> <span class="n">add</span> <span class="p">.</span>
+<span class="n">git</span> <span class="n">commit</span> <span class="o">-</span><span class="n">am</span> <span class="s">&#39;Issue OLINGO-25 - make release - set version 1.0.0-RC01&#39;</span>
+<span class="n">git</span> <span class="n">tag</span> <span class="o">-</span><span class="n">f</span> 1<span class="p">.</span>0<span class="p">.</span>0<span class="o">-</span><span class="n">RC01</span>
+
+<span class="n">mvn</span> <span class="n">versions</span><span class="p">:</span><span class="n">set</span> <span class="o">-</span><span class="n">DnewVersion</span><span class="p">=</span>1<span class="p">.</span>1<span class="p">.</span>0<span class="o">-</span><span class="n">SNAPSHOT</span>
+<span class="nb">find</span> <span class="p">.</span> <span class="o">-</span><span class="n">name</span> <span class="s">&#39;*.versionsBackup&#39;</span> <span class="o">-</span><span class="n">type</span> <span class="n">f</span> <span class="o">-</span><span class="n">delete</span>
+<span class="n">git</span> <span class="n">add</span> <span class="p">.</span>
+<span class="n">git</span> <span class="n">commit</span> <span class="o">-</span><span class="n">am</span> <span class="s">&#39;Issue OLINGO-25 - make release - set version 1.1.0-SNAPSHOT&#39;</span>
+<span class="n">git</span> <span class="n">push</span>
+<span class="n">git</span> <span class="n">push</span> <span class="o">--</span><span class="n">tags</span>
+</pre></div>
+
+
+<h5 id="open-issues">Open Issues</h5>
+<p>There must not be any open JIRA issues for this release. There might be open issues for 
+future releases. Check with: <a href="https://issues.apache.org/jira/browse/OLINGO/fixforversion/12324804">fix for version view</a></p>
+<h5 id="unit-tests-and-integration-tests">Unit Tests and Integration Tests</h5>
+<p>All unit tests and integration tests must succeed on a 
+clean machine (starting with an empty local Maven repository). The following Maven 
+execution will run all unit and integration tests:</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>
+</pre></div>
+
+
+<h5 id="apache-license-and-code-style">Apache License and Code Style</h5>
+<p>Each source code file must have a current ASF license header. The source 
+code should follow the Apache Olingo code style. For verification run following
+Maven execution</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span> <span class="o">-</span><span class="n">Pbuild</span><span class="p">.</span><span class="n">quality</span>
+</pre></div>
+
+
+<h5 id="packaging">Packaging</h5>
+<p>NOTICE, LICENSE and DISCLAIMER must be present in all bundles and must be up-to-date. </p>
+<p>Remote resources are provided by the ASF and the Maven <code>remote-resources-plugin</code> is 
+configured in the parent pom of the project.</p>
+<div class="codehilite"><pre><span class="nt">&lt;resourceBundle&gt;</span>org.apache:apache-jar-resource-bundle:1.4<span class="nt">&lt;/resourceBundle&gt;</span>
+<span class="nt">&lt;resourceBundle&gt;</span>org.apache:apache-disclaimer-resource-bundle:1.1<span class="nt">&lt;/resourceBundle&gt;</span>
+</pre></div>
+
+
+<p>The Maven module <code>odata2-dist</code> is responsible to package convenience distribution zip files 
+using the assembly plugin. The distributions are created with a release build <code>mvn clean install -Papache-release -Dgpg.passphrase="yourPassphraseHere"</code></p>
+<h5 id="md5-and-sha-for-distribution-packages">MD5 and SHA for distribution packages</h5>
+<p>MD5 and SHA files are created manually for distribution packages:</p>
+<div class="codehilite"><pre>openssl md5 <span class="nt">&lt; </span><span class="cp">${</span><span class="n">filename</span><span class="cp">}</span><span class="nt">.zip</span> <span class="nt">&gt;</span> <span class="cp">${</span><span class="n">filename</span><span class="cp">}</span>.zip.md5
+gpg --print-md SHA512 <span class="cp">${</span><span class="n">filename</span><span class="cp">}</span>.zip &gt; <span class="cp">${</span><span class="n">filename</span><span class="cp">}</span>.zip.sha512
+</pre></div>
+
+
+<h5 id="release-tag">Release Tag</h5>
+<p>A tag has to be created for every release candidate. The naming rule 
+for the tags is olingo-${version}-RCxx. This is created as 
+part of the Maven release process. The tag will be renamed to the 
+final version number upon vote approval.</p>
+<h5 id="release-branch">Release Branch</h5>
+<p>A branch has to be created for every release. The naming rule for this 
+branch is olingo-${version}. This has to be created 
+manually upon release approval.</p>
+<h3 id="release-candidate">Release Candidate</h3>
+<p>Once all preparations are done, a release candidate will be built.</p>
+<p>All release candidates must be cryptographically signed. The string 
+"-RCxx" will be attached to the version number of the release candidate 
+artifacts, where is the number of the release candidate starting with 01. 
+If more than one release candidate is required a new tag has to be created 
+and release candidate number will be increased by one.</p>
+<p>The release candidate artifacts:</p>
+<ul>
+<li>Maven artifacts will be staged on repository.apache.org. A new staging repo 
+is created per RC and will be communicated upon release.</li>
+<li>Distribution commodity packages are staged at 
+http://people.apache.org/~[username]/olingo2/[version] (e.g. http://people.apache.org/~mibo/olingo2/2.0.0-RC01)</li>
+</ul>
+<p>Once candidate artifacts are available, release manager kicks off the <a href="http://incubator.apache.org/guides/releasemanagement.html#best-practice-incubator-release-vote">VOTE process</a>.</p>
+<p>If the vote fails, the raised issues will be fixed, a new release candidate will be 
+built and the VOTE process will be restarted.</p>
+<p>If the release candidate gets approved, we can proceed to release publishing.</p>
+<h4 id="how-to-verify-a-release-candidate">How to verify a Release Candidate</h4>
+<p>This checklist helps verifying if a release candidate is valid:</p>
+<ul>
+<li>Are all files on "http://people.apache.org/~[username]/olingo2/[version]"?</li>
+<li>Check if md5, sha512 and asc files are filled correctly?</li>
+<li>Can the zip files be unpacked without issues?</li>
+<li>Execute a "mvn clean install -Pbuild.quality" on parent distribution. It should work without issues.</li>
+<li>Does the JavaDoc only contain API documentation? </li>
+<li>Is there a Disclaimer, Notice, License and Dependencies File in every folder?</li>
+<li>Do all License files contain the right amount of licenses?</li>
+<li>Do Notice files mention 3rd party libraries if they are contained in the distribution?</li>
+</ul>
+<p>After all questions of this checklist can be answered with yes it is OK to give a +1 on the mailing list. 
+Of course the Release Manager can also use this checklist to make sure all artifacts are correct before publishing the results on the mailing list.</p>
+<h3 id="publishing-the-release">Publishing the Release</h3>
+<p>If the release candidate gets approved, we can proceed to release publishing:</p>
+<ul>
+<li>Release candidate maven artifacts are promoted in the Apache Maven Repository and 
+made available <a href="https://repository.apache.org/index.html#nexus-search;gav~org.apache.olingo~~~~">here</a>.</li>
+<li>Publish final release Version to <a href="https://repository.apache.org/">Apache Repository</a><ul>
+<li>First publish via <code>mvn deploy -Papache-release</code> into the <em>Staging Area</em></li>
+<li>From <em>Staging Area</em> close and release the staged Artifacts to finish publishing </li>
+<li>Afterwards the Maven artifacts are automatically synced to <a href="http://search.maven.org/#search|ga|1|org.apache.olingo">Maven Central</a>.</li>
+</ul>
+</li>
+<li>Release candidate commodity packages are synced (together with their checksum and 
+signatures) to <a href="http://www.apache.org/dist/olingo/">Apache Distributions</a>.</li>
+<li>Release tag is renamed to final version.</li>
+<li>Release branch is created.</li>
+<li>Release is closed in Jira.</li>
+<li>Release is announced to dev@olingo.apache.org, announce@apache.org.</li>
+</ul>
+<h3 id="maintain-version-section-in-doap-file">Maintain Version Section in DOAP File</h3>
+<p><a href="http://olingo.apache.org/doap_Olingo.rdf">http://olingo.apache.org/doap_Olingo.rdf</a></p>
+<p>Results are shown here:</p>
+<p><a href="http://projects.apache.org/indexes/alpha.html#O">link text</a></p>
+<h3 id="additional-apache-release-information">Additional Apache Release Information</h3>
+<ul>
+<li><a href="http://www.apache.org/dev/release.html">Releases Policy</a></li>
+<li><a href="http://www.apache.org/dev/release-publishing.html">Publishing Releases</a></li>
+<li><a href="http://www.apache.org/dev/publishing-maven-artifacts.html">Publishing Maven Artifacts</a></li>
+<li><a href="http://incubator.apache.org/guides/releasemanagement.html">Release Management During Incubation</a></li>
+</ul><div align="center">
+<p>Copyright © 2013-2014, 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 src="/js/offcanvas.js" type="text/javascript">
+</script>
+        <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
+        <script>
+            (function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
+            function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
+            e=o.createElement(i);r=o.getElementsByTagName(i)[0];
+            e.src='//www.google-analytics.com/analytics.js';
+            r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
+            ga('create','UA-44963757-1');ga('send','pageview');
+        </script>
+  </body>
+</html>

Added: websites/staging/olingo/trunk/content/doc/odata2/sample-setup.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/sample-setup.html (added)
+++ websites/staging/olingo/trunk/content/doc/odata2/sample-setup.html Tue Sep 16 12:34:18 2014
@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<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
+    </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]-->
+
+    <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><a href="/">Home</a></li>
+              <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/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/javascript/index.html">Documentation OData 4.0 JavaScript</a></li>
+                  </ul>
+              </li>
+              <li><a href="/support.html">Support</a></li>
+
+            </ul>
+
+			  <img class="navbar-right" height="50px" src="/img/asf-logo.gif">
+
+			</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</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</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>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">archetype</span><span class="p">:</span><span class="n">generate</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DinteractiveMode</span><span class="p">=</span><span class="n">false</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">Dversion</span><span class="p">=</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="o">-</span><span class="n">SNAPSHOT</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DgroupId</span><span class="p">=</span><span class="n">com</span><span class="p">.</span><span class="n">sample</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DartifactId</span><span class="p">=</span><span class="n">my</span><span class="o">-</span><span class="n">car</span><span class="o">-</span><span class="n">service</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeGroupId</span><span class="p">=</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeArtifactId</span><span class="p">=</span><span class="n">olingo</span><span class="o">-</span><span class="n">odata2</span><span class="o">-</span><span class="n">sample</span><span class="o">-</span><span class="n">cars</span><span class="o">-</span><span class="n">service</span><span class="o">-</span><span class="n">archetype</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeVersion</span><span class="p">=</span><span class="n">RELEASE</span> <span class="o">\</span>
+</pre></div>
+
+
+<p>To generate the sample project for the <code>ODataService</code>  implementation with use of the Java Annotations extension start with:</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">archetype</span><span class="p">:</span><span class="n">generate</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DinteractiveMode</span><span class="p">=</span><span class="n">false</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">Dversion</span><span class="p">=</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="o">-</span><span class="n">SNAPSHOT</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DgroupId</span><span class="p">=</span><span class="n">com</span><span class="p">.</span><span class="n">sample</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DartifactId</span><span class="p">=</span><span class="n">my</span><span class="o">-</span><span class="n">car</span><span class="o">-</span><span class="n">service</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeGroupId</span><span class="p">=</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeArtifactId</span><span class="p">=</span><span class="n">olingo</span><span class="o">-</span><span class="n">odata2</span><span class="o">-</span><span class="n">sample</span><span class="o">-</span><span class="n">cars</span><span class="o">-</span><span class="n">annotation</span><span class="o">-</span><span class="n">archetype</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeVersion</span><span class="p">=</span><span class="n">RELEASE</span> <span class="o">\</span>
+</pre></div>
+
+
+<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>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>
+</pre></div>
+
+
+<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>
+<div class="codehilite"><pre>…
+  <span class="nt">&lt;repositories&gt;</span>
+    <span class="nt">&lt;repository&gt;</span>
+      <span class="nt">&lt;id&gt;</span>apache.central<span class="nt">&lt;/id&gt;</span>
+      <span class="nt">&lt;name&gt;</span>Central Repository<span class="nt">&lt;/name&gt;</span>
+      <span class="nt">&lt;url&gt;</span>http://repo.maven.apache.org/maven2<span class="nt">&lt;/url&gt;</span>
+    <span class="nt">&lt;/repository&gt;</span>
+
+    <span class="nt">&lt;repository&gt;</span>
+      <span class="nt">&lt;id&gt;</span>apache.snapshots<span class="nt">&lt;/id&gt;</span>
+      <span class="nt">&lt;name&gt;</span>Apache SNAPSHOT Repository<span class="nt">&lt;/name&gt;</span>
+      <span class="nt">&lt;url&gt;</span>https://repository.apache.org/content/repositories/snapshots/<span class="nt">&lt;/url&gt;</span>
+    <span class="nt">&lt;/repository&gt;</span>
+  <span class="nt">&lt;/repositories&gt;</span>
+…
+</pre></div>
+
+
+<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>
+<div class="codehilite"><pre><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">my</span><span class="o">-</span><span class="n">car</span><span class="o">-</span><span class="n">service</span><span class="o">/</span>
+</pre></div>
+
+
+<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</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>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">eclipse</span><span class="p">:</span><span class="n">clean</span> <span class="n">eclipse</span><span class="p">:</span><span class="n">eclipse</span>
+</pre></div>
+
+
+<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-2014, 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 src="/js/offcanvas.js" type="text/javascript">
+</script>
+        <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
+        <script>
+            (function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
+            function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
+            e=o.createElement(i);r=o.getElementsByTagName(i)[0];
+            e.src='//www.google-analytics.com/analytics.js';
+            r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
+            ga('create','UA-44963757-1');ga('send','pageview');
+        </script>
+  </body>
+</html>

Added: websites/staging/olingo/trunk/content/doc/odata2/tomcat.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tomcat.html (added)
+++ websites/staging/olingo/trunk/content/doc/odata2/tomcat.html Tue Sep 16 12:34:18 2014
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<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
+    </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]-->
+
+    <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><a href="/">Home</a></li>
+              <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/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/javascript/index.html">Documentation OData 4.0 JavaScript</a></li>
+                  </ul>
+              </li>
+              <li><a href="/support.html">Support</a></li>
+
+            </ul>
+
+			  <img class="navbar-right" height="50px" src="/img/asf-logo.gif">
+
+			</div><!--/.nav-collapse -->
+        </div><!--/.container-fluid -->
+      </div><!-- Main component for a primary marketing message or call to action --><h3 id="run-with-tomcat">Run with Tomcat</h3>
+<p>Necessary steps to get your project run with <a href="http://tomcat.apache.org/index.html">Tomcat</a> (tested with version <code>7.0.32</code>).</p>
+<h4 id="required-steps">Required steps</h4>
+<ul>
+<li>Download Tomcat 7.0.x from <a href="http://tomcat.apache.org/download-70.cgi">Tomcat Downloads</a></li>
+<li>Install Tomcat as described in <a href="http://tomcat.apache.org/tomcat-7.0-doc/setup.html">Tomcat Documentation</a></li>
+<li>Start Tomcat e.g. via <code>$TOMCAT_HOME/bin/startup.sh</code> (Linux) or <code>$TOMCAT_HOME/bin/startup.bat</code> (Windows)</li>
+<li>Build of OData Application<ul>
+<li>Build your <code>WAR</code> file of your own project</li>
+<li>If you don't have a project the follow our sample project setup <a href="/doc/odata2/sample-setup.html">here</a></li>
+</ul>
+</li>
+<li>Deployment of the OData Application via simple copy of created <code>WAR</code> from the web project <code>./target</code> folder (for the sample it is <code>$ODATA_PROJECT_HOME/cars-web/target/olingo.odata2.sample.cars.web.war</code>) into <code>$TOMCAT_HOME/webapps</code></li>
+<li>After successful deployment for the sample project just open following link: http://localhost:8080/olingo.odata2.sample.cars.web to see the project entry site.</li>
+</ul><div align="center">
+<p>Copyright © 2013-2014, 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 src="/js/offcanvas.js" type="text/javascript">
+</script>
+        <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
+        <script>
+            (function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
+            function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
+            e=o.createElement(i);r=o.getElementsByTagName(i)[0];
+            e.src='//www.google-analytics.com/analytics.js';
+            r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
+            ga('create','UA-44963757-1');ga('send','pageview');
+        </script>
+  </body>
+</html>

Added: websites/staging/olingo/trunk/content/doc/odata2/tutorials/AnnotationProcessorExtension.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/AnnotationProcessorExtension.html (added)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/AnnotationProcessorExtension.html Tue Sep 16 12:34:18 2014
@@ -0,0 +1,452 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<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
+    </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]-->
+
+    <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><a href="/">Home</a></li>
+              <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/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/javascript/index.html">Documentation OData 4.0 JavaScript</a></li>
+                  </ul>
+              </li>
+              <li><a href="/support.html">Support</a></li>
+
+            </ul>
+
+			  <img class="navbar-right" height="50px" src="/img/asf-logo.gif">
+
+			</div><!--/.nav-collapse -->
+        </div><!--/.container-fluid -->
+      </div><!-- Main component for a primary marketing message or call to action --><h1 id="creating-a-web-application-with-the-annotation-processor-extension">Creating a Web Application with the Annotation Processor Extension</h1>
+<h3 id="shortcut-creation-via-archetype">Shortcut: Creation via Archetype</h3>
+<p>As a shortcut it is possible to create a sample project which use the Annotation Processor Extension via a Maven Archetype. 
+Therefore Maven must be called as shown below:</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">archetype</span><span class="p">:</span><span class="n">generate</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DinteractiveMode</span><span class="p">=</span><span class="n">false</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">Dversion</span><span class="p">=</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="o">-</span><span class="n">SNAPSHOT</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DgroupId</span><span class="p">=</span><span class="n">com</span><span class="p">.</span><span class="n">sample</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DartifactId</span><span class="p">=</span><span class="n">my</span><span class="o">-</span><span class="n">car</span><span class="o">-</span><span class="n">service</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeGroupId</span><span class="p">=</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">olingo</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeArtifactId</span><span class="p">=</span><span class="n">olingo</span><span class="o">-</span><span class="n">odata2</span><span class="o">-</span><span class="n">sample</span><span class="o">-</span><span class="n">cars</span><span class="o">-</span><span class="n">annotation</span><span class="o">-</span><span class="n">archetype</span> <span class="o">\</span>
+  <span class="o">-</span><span class="n">DarchetypeVersion</span><span class="p">=</span>2<span class="p">.</span>0<span class="p">.</span>0
+</pre></div>
+
+
+<p>In the generated sample project you now can simply run Maven with the default goal (run <code>mvn</code> in the shell) which compiles the sources and starts an Jetty web server at <code>http://localhost:8080</code>.</p>
+<p>For more detailed documentation about Archetypes in Olingo take a look into the <a href="/doc/odata2/sample-setup">sample setup</a> section.</p>
+<h3 id="creation-from-scratch">Creation from Scratch</h3>
+<p>A project which use the Annotation Processor Extension consists mainly of the model beans, the <code>ODataServiceFactory</code> implementation and the web resources (e.g. <code>web.xml</code>). 
+In addition we use Maven so that it is necessary to create a <code>pom.xml</code> for project build information and dependency resolution.</p>
+<h5 id="create-maven-project-structure">Create Maven Project structure</h5>
+<p>To start a folder is created (e.g. <em>annotation-from-scratch</em>) which contains the Maven project.
+Within this the default Maven project structure is used, which looks like:</p>
+<div class="codehilite"><pre><span class="o">./</span><span class="n">src</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">java</span> 
+<span class="o">./</span><span class="n">src</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">resources</span> 
+<span class="o">./</span><span class="n">src</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">webapp</span>
+</pre></div>
+
+
+<h5 id="create-maven-pomxml">Create  Maven pom.xml</h5>
+<p>After creation of the project structure the default <code>pom.xml</code> for building of an <code>WAR-File</code> have to be created.
+In addition we need the dependency to all necessary <em>Apache Olingo artifacts</em> and to the used <code>JAX-RS</code> implementation which in this sample is <code>Apache CXF</code>.</p>
+<p>The resulting <code>pom.xml</code> then looks like:</p>
+<div class="codehilite"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
+<span class="nt">&lt;project</span> <span class="na">xmlns=</span><span class="s">&quot;http://maven.apache.org/POM/4.0.0&quot;</span> <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
+  <span class="na">xsi:schemaLocation=</span><span class="s">&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;</span><span class="nt">&gt;</span>
+  <span class="nt">&lt;modelVersion&gt;</span>4.0.0<span class="nt">&lt;/modelVersion&gt;</span>
+
+  <span class="nt">&lt;groupId&gt;</span>org.apache.olingo<span class="nt">&lt;/groupId&gt;</span>
+  <span class="nt">&lt;artifactId&gt;</span>cars-annotations-sample<span class="nt">&lt;/artifactId&gt;</span>
+  <span class="nt">&lt;version&gt;</span>1.0.0-SNAPSHOT<span class="nt">&lt;/version&gt;</span>
+  <span class="nt">&lt;name&gt;</span>${project.artifactId}<span class="nt">&lt;/name&gt;</span>
+
+  <span class="nt">&lt;packaging&gt;</span>war<span class="nt">&lt;/packaging&gt;</span>
+
+  <span class="nt">&lt;properties&gt;</span>
+    <span class="c">&lt;!-- Dependency Versions --&gt;</span>
+    <span class="nt">&lt;version.cxf&gt;</span>2.7.6<span class="nt">&lt;/version.cxf&gt;</span>
+    <span class="nt">&lt;version.servlet-api&gt;</span>2.5<span class="nt">&lt;/version.servlet-api&gt;</span>
+    <span class="nt">&lt;version.jaxrs-api&gt;</span>2.0-m10<span class="nt">&lt;/version.jaxrs-api&gt;</span>
+    <span class="nt">&lt;version.olingo&gt;</span>2.0.0<span class="nt">&lt;/version.olingo&gt;</span>
+  <span class="nt">&lt;/properties&gt;</span>
+
+  <span class="nt">&lt;build&gt;</span>
+    <span class="nt">&lt;finalName&gt;</span>${project.artifactId}<span class="nt">&lt;/finalName&gt;</span>
+    <span class="nt">&lt;defaultGoal&gt;</span>clean package<span class="nt">&lt;/defaultGoal&gt;</span>
+  <span class="nt">&lt;/build&gt;</span>
+
+  <span class="nt">&lt;dependencies&gt;</span>
+    <span class="c">&lt;!-- Apache Olingo Library dependencies --&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>org.apache.olingo<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>olingo-odata2-api<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.olingo}<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>olingo-odata2-api-annotation<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>org.apache.olingo<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;type&gt;</span>jar<span class="nt">&lt;/type&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.olingo}<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>org.apache.olingo<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>olingo-odata2-core<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.olingo}<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+    <span class="c">&lt;!-- Apache Olingo Annotation Processor Extension dependencies --&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>org.apache.olingo<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>olingo-odata2-annotation-processor-api<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.olingo}<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>org.apache.olingo<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>olingo-odata2-annotation-processor-core<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.olingo}<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+    <span class="c">&lt;!-- Servlet/REST dependencies --&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>javax.servlet<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>servlet-api<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.servlet-api}<span class="nt">&lt;/version&gt;</span>
+      <span class="nt">&lt;scope&gt;</span>provided<span class="nt">&lt;/scope&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>javax.ws.rs<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>javax.ws.rs-api<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.jaxrs-api}<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+    <span class="nt">&lt;dependency&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>org.apache.cxf<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>cxf-rt-frontend-jaxrs<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>${version.cxf}<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;/dependency&gt;</span>
+  <span class="nt">&lt;/dependencies&gt;</span>
+<span class="nt">&lt;/project&gt;</span>
+</pre></div>
+
+
+<h5 id="create-sample-entity-model">Create Sample (Entity) Model</h5>
+<p>For this sample a simple model with the two entities <em>Manufacturer</em> and <em>Car</em> is created.</p>
+<p>The <em>Manufacturer</em> consists of an <code>Id</code>, <code>Name</code>, <code>Founded</code> and a relation to a list of its <code>Cars</code>.<br />
+The <em>Car</em> consists of an <code>Id</code>, <code>Model</code>, <code>ProductionYear</code>, <code>Price</code> and a relation to its <code>Manufacturer</code>.</p>
+<p><strong>Create Java Beans for Entities</strong>
+For each of both entities first a java bean (<em>POJO</em>) is created in the package <code>org.apache.olingo.sample.annotation.model</code> (which results in a created folder <code>src/main/java/org/apache/olingo/sample/annotation/model/</code>) which looks like:</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">olingo</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">annotation</span><span class="o">.</span><span class="na">model</span><span class="o">;</span>
+
+<span class="cm">/** required Imports */</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Manufacturer</span> <span class="o">{</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">id</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">Calendar</span> <span class="n">founded</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">Car</span><span class="o">&gt;</span> <span class="n">cars</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Car</span><span class="o">&gt;();</span>
+
+  <span class="cm">/** optional getter and setter */</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>and:</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">olingo</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">annotation</span><span class="o">.</span><span class="na">model</span><span class="o">;</span>
+
+<span class="cm">/** required Imports */</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Car</span> <span class="o">{</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">id</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">model</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">Double</span> <span class="n">price</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">Integer</span> <span class="n">productionYear</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">Manufacturer</span> <span class="n">manufacturer</span><span class="o">;</span>
+
+  <span class="cm">/** optional getter and setter */</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p><strong>Annotated created Java Beans</strong>
+Now those beans have to be annotated with the annotations of the <em>Annotation Processor Extension</em>.</p>
+<p>Both beans needs at first the <code>@EdmEntityType</code> and <code>@EdmEntitySet</code> annotation to define that they represent an OData Entity. These annotation must be added at the bean class which as example for the <em>Manufacturer</em> then look like:</p>
+<div class="codehilite"><pre><span class="nd">@EdmEntityType</span>
+<span class="nd">@EdmEntitySet</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Manufacturer</span> <span class="o">{</span> <span class="cm">/** more code */</span> <span class="o">}</span>
+</pre></div>
+
+
+<p>Then all simple properties of the Entity must be annotated with <code>@EdmProperty</code>, the <em>Key</em> for the Entity additional must be annotated with <code>@EdmKey</code> which is in this sample the <code>Id</code> field of the entities.</p>
+<p>For the <em>Manufacturer</em> it then look like:</p>
+<div class="codehilite"><pre><span class="nd">@EdmEntityType</span>
+<span class="nd">@EdmEntitySet</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Manufacturer</span> <span class="o">{</span>
+  <span class="nd">@EdmKey</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">id</span><span class="o">;</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">Calendar</span> <span class="n">founded</span><span class="o">;</span>
+
+ <span class="cm">/** more code */</span> 
+<span class="o">}</span>
+</pre></div>
+
+
+<p>A relation to another Entity must be annotated with <code>@EdmNavigationProperty</code>. In this sample this are the bi-directional relation between a <em>Manufacturer</em> and its <em>Cars</em>.  </p>
+<p>For the <em>Manufacturer</em> the added annotation look like:</p>
+<div class="codehilite"><pre><span class="nd">@EdmEntityType</span>
+<span class="nd">@EdmEntitySet</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Manufacturer</span> <span class="o">{</span>
+  <span class="cm">/** more code */</span>
+
+  <span class="nd">@EdmNavigationProperty</span>
+  <span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">Car</span><span class="o">&gt;</span> <span class="n">cars</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Car</span><span class="o">&gt;();</span>
+
+  <span class="cm">/** more code */</span> 
+<span class="o">}</span>
+</pre></div>
+
+
+<p>The complete resulting Entities (POJOs) then look like:</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">olingo</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">annotation</span><span class="o">.</span><span class="na">model</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">java.util.*</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.olingo.odata2.api.annotation.edm.*</span><span class="o">;</span>
+
+<span class="nd">@EdmEntityType</span>
+<span class="nd">@EdmEntitySet</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Manufacturer</span> <span class="o">{</span>
+  <span class="nd">@EdmKey</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">id</span><span class="o">;</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">Calendar</span> <span class="n">founded</span><span class="o">;</span>
+  <span class="nd">@EdmNavigationProperty</span>
+  <span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">Car</span><span class="o">&gt;</span> <span class="n">cars</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Car</span><span class="o">&gt;();</span>
+
+  <span class="cm">/** optional getter and setter */</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>and</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">olingo</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">annotation</span><span class="o">.</span><span class="na">model</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">org.apache.olingo.odata2.api.annotation.edm.*</span><span class="o">;</span>
+
+<span class="nd">@EdmEntityType</span>
+<span class="nd">@EdmEntitySet</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Car</span> <span class="o">{</span>
+  <span class="nd">@EdmKey</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">id</span><span class="o">;</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">model</span><span class="o">;</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">Double</span> <span class="n">price</span><span class="o">;</span>
+  <span class="nd">@EdmProperty</span>
+  <span class="kd">private</span> <span class="n">Integer</span> <span class="n">productionYear</span><span class="o">;</span>
+  <span class="nd">@EdmNavigationProperty</span>
+  <span class="kd">private</span> <span class="n">Manufacturer</span> <span class="n">manufacturer</span><span class="o">;</span>
+
+  <span class="cm">/** optional getter and setter */</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>The next step is to create the <code>ODataService</code>.</p>
+<h5 id="create-odataservice">Create ODataService</h5>
+<p>The <code>ODataService</code> is created via an <code>ODataServiceFactory</code> implementation.
+For the sample a <code>AnnotationSampleServiceFactory</code> in the package <code>org.apache.olingo.sample.annotation.processor</code> (which results in a created folder <code>src/main/java/org/apache/olingo/sample/annotation/processor/</code>) is created which  extends the <code>ODataServiceFactory</code>. The resulting code look like:</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">olingo</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">annotation</span><span class="o">.</span><span class="na">processor</span><span class="o">;</span>
+
+<span class="cm">/** required Imports */</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">AnnotationSampleServiceFactory</span> <span class="kd">extends</span> <span class="n">ODataServiceFactory</span> <span class="o">{</span>
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="n">ODataService</span> <span class="nf">createService</span><span class="o">(</span><span class="kd">final</span> <span class="n">ODataContext</span> <span class="n">context</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
+    <span class="k">return</span> <span class="kc">null</span><span class="o">;</span>
+  <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>In the <code>createService(...)</code> method now the <code>ODataService</code> needs to be created.
+The <em>Annotation Processor Extension</em> provides therefore the method <code>createAnnotationService(...)</code> within the <code>AnnotationServiceFactory</code> which can be used. This method require as parameter the <em>Package</em> which contains the <em>Model</em> in form of annotated POJOs (as created in the section <em>Create the Model</em>).  </p>
+<p>For a persistence between several request it is necessary to hold the created <code>ODataService</code> in an static instance. In the sample the <a href="http://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom">Initialization on demand holder idiom</a> is used.</p>
+<p>As result the implementation look like:</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">olingo</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">annotation</span><span class="o">.</span><span class="na">processor</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">org.apache.olingo.odata2.api.*</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.olingo.odata2.api.exception.*</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.olingo.odata2.api.processor.ODataContext</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.olingo.odata2.annotation.processor.api.AnnotationServiceFactory</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">AnnotationSampleServiceFactory</span> <span class="kd">extends</span> <span class="n">ODataServiceFactory</span> <span class="o">{</span>
+
+  <span class="cm">/**</span>
+<span class="cm">   * Instance holder for all annotation relevant instances which should be used as singleton</span>
+<span class="cm">   * instances within the ODataApplication (ODataService)</span>
+<span class="cm">   */</span>
+  <span class="kd">private</span> <span class="kd">static</span> <span class="kd">class</span> <span class="nc">AnnotationInstances</span> <span class="o">{</span>
+    <span class="kd">final</span> <span class="kd">static</span> <span class="n">String</span> <span class="n">MODEL_PACKAGE</span> <span class="o">=</span> <span class="s">&quot;org.apache.olingo.sample.annotation.model&quot;</span><span class="o">;</span>
+    <span class="kd">final</span> <span class="kd">static</span> <span class="n">ODataService</span> <span class="n">ANNOTATION_ODATA_SERVICE</span><span class="o">;</span>
+
+    <span class="kd">static</span> <span class="o">{</span>
+      <span class="k">try</span> <span class="o">{</span>
+        <span class="n">ANNOTATION_ODATA_SERVICE</span> <span class="o">=</span> <span class="n">AnnotationServiceFactory</span><span class="o">.</span><span class="na">createAnnotationService</span><span class="o">(</span><span class="n">MODEL_PACKAGE</span><span class="o">);</span>
+      <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">ODataApplicationException</span> <span class="n">ex</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">throw</span> <span class="k">new</span> <span class="nf">RuntimeException</span><span class="o">(</span><span class="s">&quot;Exception during sample data generation.&quot;</span><span class="o">,</span> <span class="n">ex</span><span class="o">);</span>
+      <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">ODataException</span> <span class="n">ex</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">throw</span> <span class="k">new</span> <span class="nf">RuntimeException</span><span class="o">(</span><span class="s">&quot;Exception during data source initialization generation.&quot;</span><span class="o">,</span> <span class="n">ex</span><span class="o">);</span>
+      <span class="o">}</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+
+  <span class="kd">public</span> <span class="n">ODataService</span> <span class="nf">createService</span><span class="o">(</span><span class="kd">final</span> <span class="n">ODataContext</span> <span class="n">context</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
+    <span class="k">return</span> <span class="n">AnnotationInstances</span><span class="o">.</span><span class="na">ANNOTATION_ODATA_SERVICE</span><span class="o">;</span>
+  <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>Now the model as well as the service creation is done.
+The next step is to provide the necessary resources to run the application within an application server. </p>
+<h5 id="create-web-application-resources">Create Web Application resources</h5>
+<p>To deploy and run the application on an application server it is necessary to provide a <code>web.xml</code> which defines the <code>JAX-RS</code> entry point which then calls the sample application.</p>
+<p>For this sample <code>Apache CXF</code> is used (see <code>&lt;servlet-class&gt;org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet&lt;/servlet-class&gt;</code>) which need as parameter the <code>javax.ws.rs.Application</code> and the <code>org.apache.olingo.odata2.service.factory</code>.</p>
+<p>Therefore the <code>web.xml</code> is created in the <code>src/main/webapp/WEB-INF</code> folder with following content:</p>
+<div class="codehilite"><pre><span class="nt">&lt;web-app</span> <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
+    <span class="na">xmlns=</span><span class="s">&quot;http://java.sun.com/xml/ns/javaee&quot;</span> <span class="na">xmlns:web=</span><span class="s">&quot;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;</span>
+    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;</span>
+        <span class="na">id=</span><span class="s">&quot;WebApp_ID&quot;</span> <span class="na">version=</span><span class="s">&quot;2.5&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;display-name&gt;</span>org.apache.olingo.sample.annotation<span class="nt">&lt;/display-name&gt;</span>
+        <span class="nt">&lt;servlet&gt;</span>
+            <span class="nt">&lt;servlet-name&gt;</span>ServiceServlet<span class="nt">&lt;/servlet-name&gt;</span>
+            <span class="nt">&lt;servlet-class&gt;</span>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet<span class="nt">&lt;/servlet-class&gt;</span>
+            <span class="nt">&lt;init-param&gt;</span>
+              <span class="nt">&lt;param-name&gt;</span>javax.ws.rs.Application<span class="nt">&lt;/param-name&gt;</span>
+                  <span class="nt">&lt;param-value&gt;</span>org.apache.olingo.odata2.core.rest.app.ODataApplication<span class="nt">&lt;/param-value&gt;</span>
+            <span class="nt">&lt;/init-param&gt;</span>
+            <span class="nt">&lt;init-param&gt;</span>
+                <span class="nt">&lt;param-name&gt;</span>org.apache.olingo.odata2.service.factory<span class="nt">&lt;/param-name&gt;</span>
+                <span class="nt">&lt;param-value&gt;</span>org.apache.olingo.sample.annotation.processor.AnnotationSampleServiceFactory<span class="nt">&lt;/param-value&gt;</span>
+            <span class="nt">&lt;/init-param&gt;</span>
+        <span class="nt">&lt;load-on-startup&gt;</span>1<span class="nt">&lt;/load-on-startup&gt;</span>
+    <span class="nt">&lt;/servlet&gt;</span>
+
+    <span class="nt">&lt;servlet-mapping&gt;</span>
+            <span class="nt">&lt;servlet-name&gt;</span>ServiceServlet<span class="nt">&lt;/servlet-name&gt;</span>
+        <span class="nt">&lt;url-pattern&gt;</span>/AnnotationSample.svc/*<span class="nt">&lt;/url-pattern&gt;</span>
+    <span class="nt">&lt;/servlet-mapping&gt;</span>
+<span class="nt">&lt;/web-app&gt;</span>
+</pre></div>
+
+
+<h5 id="deploy-and-run">Deploy and Run</h5>
+<p>Build the project with maven via <code>mvm clean package</code> and copy the resulting <code>WAR-File</code> from the projects <code>target</code> folder in the <code>deploy</code> folder of the web application server (e.g. a <a href="http://tomcat.apache.org/">Tomcat</a>).
+As example for a default Tomcat 7.x installation <code>cp $PROJECT_HOME/target/cars-annotations-sample.war $TOMCAT_HOME/webapps</code>.</p>
+<p>After starting the web application server it is possible to request...</p>
+<ul>
+<li>...the <em>Service Document</em> via the URL: <a href="http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/">http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/</a></li>
+<li>...the <em>Metadata</em> via the URL: <a href="http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/$metadata">http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/$metadata</a></li>
+<li>...the <em>Cars</em> EntitySet via the URL: <a href="http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/CarSet">http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/CarSet</a></li>
+<li>...the <em>Manufacturer</em> EntitySet via the URL: <a href="http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/ManufacturerSet">http://localhost:8080/cars-annotations-sample/AnnotationSample.svc/ManufacturerSet</a></li>
+</ul>
+<p>Also it is possible to create <em>Car</em> and <em>Manufacturer</em> Entities via <code>HTTP POST</code> requests.</p>
+<h3 id="more-detailed-look">More detailed look</h3>
+<p>A more detailed look into the Annotation Processor Extension can be found in the <a href="https://wiki.apache.org/Olingo/Documentation/AnnotationProcessor">wiki</a>.</p><div align="center">
+<p>Copyright © 2013-2014, 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 src="/js/offcanvas.js" type="text/javascript">
+</script>
+        <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
+        <script>
+            (function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
+            function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
+            e=o.createElement(i);r=o.getElementsByTagName(i)[0];
+            e.src='//www.google-analytics.com/analytics.js';
+            r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
+            ga('create','UA-44963757-1');ga('send','pageview');
+        </script>
+  </body>
+</html>