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 [email protected], [email protected].</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>


Reply via email to