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 2015/07/08 15:49:35 UTC

svn commit: r957524 [2/5] - in /websites/staging/olingo/trunk/content: ./ doc/javascript/ doc/odata2/ doc/odata2/tutorials/ doc/odata4/ doc/odata4/tutorials/ doc/odata4/tutorials/navigation/ doc/odata4/tutorials/read/ doc/odata4/tutorials/readep/ doc/o...

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/DeltaQuerySupport.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/DeltaQuerySupport.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/DeltaQuerySupport.html Wed Jul  8 13:49:34 2015
@@ -86,11 +86,22 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h2 id="delta-token-support">Delta Token Support</h2>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h2 id="delta-token-support">Delta Token Support<a class="headerlink" href="#delta-token-support" title="Permanent link">&para;</a></h2>
 <p>Delta Query retrieves the changes done to a service. It is supported in OData JPA Processor Library from version 1.4.0. The data returned by the feed for the query would look exactly like any other dataset for an OData query but with delta link at the end. </p>
 <p>There are two approaches you can follow to generate delta token.</p>
-<h3 id="generating-delta-token">Generating Delta Token</h3>
-<h5 id="first-approach">First Approach</h5>
+<h3 id="generating-delta-token">Generating Delta Token<a class="headerlink" href="#generating-delta-token" title="Permanent link">&para;</a></h3>
+<h5 id="first-approach">First Approach<a class="headerlink" href="#first-approach" title="Permanent link">&para;</a></h5>
 <p>a. Create a Java class by extending <code>ODataJPATombstoneEntityListener.java</code>.</p>
 <p>b. Implement the abstract method <code>getQuery</code>. In the method, implement the logic to generate a <code>javax.persistence.Query</code>. The Query object can be created as shown below in the code snippet. </p>
 <div class="codehilite"><pre>     <span class="k">if</span> <span class="p">(</span>!<span class="n">resultsView</span><span class="p">.</span><span class="n">getStartEntitySet</span><span class="p">().</span><span class="n">getName</span><span class="p">().</span><span class="n">equals</span><span class="p">(</span><span class="n">resultsView</span><span class="p">.</span><span class="n">getTargetEntitySet</span><span class="p">().</span><span class="n">getName</span><span class="p">()))</span> <span class="p">{</span>    
@@ -146,7 +157,7 @@
 </pre></div>
 
 
-<h5 id="second-approach">Second Approach</h5>
+<h5 id="second-approach">Second Approach<a class="headerlink" href="#second-approach" title="Permanent link">&para;</a></h5>
 <p>The OData JPA Processor Library also provides support so that the JPA application developer can write a call back method in the Entity Listener class and annotate them with <code>javax.persistence.PostLoad</code>. Such call back methods are executed by JPA providers in a stateless manner for every record fetched from the database table. In the call back method, logic can be provided to decide whether a JPA entity fetched from the database table is a delta or not as shown below:</p>
 <div class="codehilite"><pre>    <span class="p">@</span><span class="n">PostLoad</span>  
     <span class="n">public</span> <span class="n">void</span> <span class="n">handleDelta</span><span class="p">(</span><span class="n">Object</span> <span class="n">entity</span><span class="p">)</span> <span class="p">{</span>    

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/ExtendingtheEDM.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/ExtendingtheEDM.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/ExtendingtheEDM.html Wed Jul  8 13:49:34 2015
@@ -86,12 +86,23 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="extending-the-edm-generated-from-the-jpa-models">Extending the EDM Generated from the JPA Models</h1>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="extending-the-edm-generated-from-the-jpa-models">Extending the EDM Generated from the JPA Models<a class="headerlink" href="#extending-the-edm-generated-from-the-jpa-models" title="Permanent link">&para;</a></h1>
 <p>The Entity Data Model (EDM) generated from the JPA models can be extended with new Entity Types, Complex Types and also the existing EDM elements can be modified by implementing the interface method <code>org.apache.olingo.odata2.jpa.processor.api.model.JPAEdmExtension.extendJPAEdmSchema</code>.</p>
 <p>Link to the code - <a href="https://git-wip-us.apache.org/repos/asf?p=olingo-odata2.git;a=blob;f=odata2-jpa-processor/jpa-web/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/extension/SalesOrderProcessingExtension.java;h=3dacd7e727528cb79cb3d4a878ac53d0a4b25277;hb=ecdc476">Support EDM Extension</a></p>
-<h4 id="how-to-add-a-complex-type-to-an-edm">How to Add a Complex Type to an EDM</h4>
+<h4 id="how-to-add-a-complex-type-to-an-edm">How to Add a Complex Type to an EDM<a class="headerlink" href="#how-to-add-a-complex-type-to-an-edm" title="Permanent link">&para;</a></h4>
 <p>Consider a scenario where we have a Plain Old Java Object (POJO) in the OrderValue Java class and let us try to transform this POJO into a Complex Type in the EDM. </p>
-<h6 id="pojo-in-ordervalue-java-class">POJO in OrderValue Java Class</h6>
+<h6 id="pojo-in-ordervalue-java-class">POJO in OrderValue Java Class<a class="headerlink" href="#pojo-in-ordervalue-java-class" title="Permanent link">&para;</a></h6>
 <div class="codehilite"><pre>    <span class="n">public</span> <span class="n">class</span> <span class="n">OrderValue</span>
     <span class="p">{</span>
 
@@ -116,7 +127,7 @@
 
 
 <p>Here is an example where the <code>SalesOrderProcessingExtension</code> implements the <code>JPAEdmExtension</code>. </p>
-<h5 id="sample-code">Sample Code</h5>
+<h5 id="sample-code">Sample Code<a class="headerlink" href="#sample-code" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre>            <span class="p">@</span><span class="n">Override</span>
     <span class="n">public</span> <span class="n">void</span> <span class="n">extendJPAEdmSchema</span><span class="p">(</span><span class="n">final</span> <span class="n">JPAEdmSchemaView</span> <span class="n">view</span><span class="p">)</span> <span class="p">{</span>
       <span class="n">Schema</span> <span class="n">edmSchema</span> <span class="p">=</span> <span class="n">view</span><span class="p">.</span><span class="n">getEdmSchema</span><span class="p">();</span>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/HandlingClobAndBlob.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/HandlingClobAndBlob.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/HandlingClobAndBlob.html Wed Jul  8 13:49:34 2015
@@ -86,11 +86,22 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h2 id="handling-blob-and-clob-data-types">Handling BLOB and CLOB Data Types</h2>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h2 id="handling-blob-and-clob-data-types">Handling BLOB and CLOB Data Types<a class="headerlink" href="#handling-blob-and-clob-data-types" title="Permanent link">&para;</a></h2>
 <p>JPA entities can have properties that are of type <code>java.sql.Blob</code> or <code>java.sql.Clob</code>. Internally, JPA entities can instantiate a JPA provider (Eclipse Link or Hibernate or ...) specific implementation
 of the above two interfaces and bind them to the properties. To enable write on such properties using OData JPA Processor Library, an additional access modifier is required to be added to the JPA 
 entities. Following is the proposal on how OData JPA Processor Library handles <code>java.sql.Blob</code> and <code>java.sql.Clob</code> during metadata generation and runtime processing. </p>
-<h3 id="edm-generation">EDM Generation</h3>
+<h3 id="edm-generation">EDM Generation<a class="headerlink" href="#edm-generation" title="Permanent link">&para;</a></h3>
 <p>Based on the JPA entity property type, the pseudocode for generating the EDM is as below.</p>
 <p><strong>For <code>java.sql.Blob</code></strong>:</p>
 <ol>
@@ -102,7 +113,7 @@ entities. Following is the proposal on h
 <li>Check if JPA entity property is of type <code>java.sql.Clob</code> and annotated with @Lob annotation. </li>
 <li>If Step 1 is true, then generate an EDM property with type as <code>Edm.String</code> (with no max length unless a max length is specified). </li>
 </ol>
-<h3 id="runtime-processing">Runtime Processing</h3>
+<h3 id="runtime-processing">Runtime Processing<a class="headerlink" href="#runtime-processing" title="Permanent link">&para;</a></h3>
 <p><strong>Prerequisites:</strong></p>
 <ol>
 <li>It is mandatory to implement the callback interface <code>org.apache.olingo.odata2.jpa.processor.api.OnJPAWriteContent</code>.</li>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/OlingoV2BasicClientSample.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/OlingoV2BasicClientSample.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/OlingoV2BasicClientSample.html Wed Jul  8 13:49:34 2015
@@ -86,7 +86,18 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="how-to-use-apache-olingo-as-client-library">How to use Apache Olingo as Client Library</h1>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="how-to-use-apache-olingo-as-client-library">How to use Apache Olingo as Client Library<a class="headerlink" href="#how-to-use-apache-olingo-as-client-library" title="Permanent link">&para;</a></h1>
 <p>This Tutorial shows how to use the Apache Olingo Library for CRUD operations on an OData Service.</p>
 <p>Therefore it contains the <a href="#start">Explaining the Client</a> section which explains how to implement the CRUD operations based on sample code and a <a href="#quickstart">Client Quickstart Guide</a> which give a step by step guide to create a sample and server to see both together in action.</p>
 <ul>
@@ -95,7 +106,7 @@
 </ul>
 <hr />
 <p><a name="quickstart"></a></p>
-<h3 id="client-quickstart-guide">Client Quickstart Guide</h3>
+<h3 id="client-quickstart-guide">Client Quickstart Guide<a class="headerlink" href="#client-quickstart-guide" title="Permanent link">&para;</a></h3>
 <p>With this Quickstart guide the runable sample client and an sample service is created within a few minutes.
 Therefore it just requires an installed <em>Java 6 Runtime</em>, <em>Maven 3</em> and an internet connection.</p>
 <ol>
@@ -134,12 +145,12 @@ Therefore it just requires an installed
 With running <code>mvn eclipse:eclipse</code> within the created sample client and sample server projects the necessary Eclipse project files will be generated so that both projects can easily imported into Eclipse (Eclipse -&gt; <em>File</em> -&gt; <em>Import...</em> <em>Import existing projects into workspace</em>).</p>
 <hr />
 <p><a name="start"></a></p>
-<h3 id="explaining-the-client">Explaining the Client</h3>
+<h3 id="explaining-the-client">Explaining the Client<a class="headerlink" href="#explaining-the-client" title="Permanent link">&para;</a></h3>
 <p>In this Tutorial an overview is given on how to create, read, update and delete an entity at an existing OData Service with support of the Apache Olingo Library.</p>
 <p>Each section explain how to do an operation and shows example code. For simplicity some additional not direct to Apache Olingo releated code is encapsulated in separate methods and is listed in the <em>Additional code</em> section at the end of this tutorial. After finishing this tutorial the listed code samples should compile and run against a local running Olingo Sample Service. Therefore all code samples must be <em>copy / pasted</em> into a single Java class.</p>
 <p>All listed examples (and URIs in the examples) work together with a local running Olingo Sample Service. For set up of this see the <em>Preparing</em> section.</p>
 <p><a name="readedm"></a></p>
-<h5 id="read-edm">Read EDM</h5>
+<h5 id="read-edm">Read EDM<a class="headerlink" href="#read-edm" title="Permanent link">&para;</a></h5>
 <p>For an OData Service the <em>Entity Data Model (EDM)</em> defines all <em>metadata</em> information about the provided data of the service. This includes all entities with their type, properties and relations, which entities are provided as entity sets and additional functions and operations provided by the OData Service. The <em>EDM</em> also have to be provided by the OData Service via a unique URI (e.g. <code>http://localhost:8080/MyFormula.svc/$metadata</code>) in the <em>EDMX</em> format.</p>
 <p>This fact is important because the Apache Olingo library requires the <em>metadata</em> for serialization and de-serialization of the data of an entity (e.g. the validation of the data is done against the <em>EDM</em> provided <em>metadata</em>).
 Hence the first step in this sample is to read the whole <em>EDM</em> of an OData Service.</p>
@@ -154,7 +165,7 @@ Hence the first step in this sample is t
 <p>As shown in the sample code to read the <em>EDM</em> a <em>HTTP GET</em> on the corresponding <em>$metadata</em> URI of the OData Service. The resulting conent in form of an <em>EDMX</em> is received via basic <code>HttpURLConnection</code> is pased into the <code>EntityProvider.readMetadata(InputStream content, boolean validate)</code> method which de-serialize the <em>EDMX</em> into an <em>EDM</em> object.</p>
 <p>For read and de-serialize of the <em>EDM</em> this is all what have to be done and the resulting <code>EDM</code> instance than can be used for necessary serialization and de-serialization in combination of <em>CRUD</em> operations supported by Apache Olingo library. </p>
 <p><a name="readdata"></a></p>
-<h5 id="read-entity">Read Entity</h5>
+<h5 id="read-entity">Read Entity<a class="headerlink" href="#read-entity" title="Permanent link">&para;</a></h5>
 <p>For reading entities this sample provides two methods.
 First is read of a complete <em>OData Feed</em> / <em>Entity Set</em> and second is read os a single <em>Entity</em>.
 In general both are based on <em>HTTP GET</em> requests to an URI which gets as response the content as an <code>InputStream</code> which then can be de-serialized by Apache Olingo into corresponding objects.
@@ -201,7 +212,7 @@ the <code>EntityProviderReadProperties</
 <p>For read of a single <code>ODataEntry</code> the <em>HTTP GET</em> request URI is an <em>Entity</em> for which a <em>key value</em> is required for creation of the absolut uri. Via the <code>connect(...)</code> method the request is done against the absolut uri and the responding content is returned as <code>InputStream</code>. 
 This <code>InputStream</code> than will be de-serialized by the <code>EntitProvider.readEntry(...)</code> into an <code>ODataEntry</code> object which contains the data / properties of the entry in form of a Map as well as <code>EntryMetadata</code> (which contains <em>etag</em>, <em>id</em>, <em>association uris</em> and <em>uri</em> information), <code>MediaMetadata</code> if the entry is a <em>media resource</em>, information about the entry <em>contains inline entries</em> and the <code>ExpandSelectTreeNode</code>.</p>
 <p><a name="createdata"></a></p>
-<h5 id="create">Create</h5>
+<h5 id="create">Create<a class="headerlink" href="#create" title="Permanent link">&para;</a></h5>
 <p>To create an entity a <em>HTTP POST</em> on the corresponding entity set URI with the whole entity data as <em>POST Body</em> in a supported format (e.g. <code>atom-xml</code>, <code>json</code>) has to be done. With Apache Olingo the required <em>POST Body</em> can be created (serialized) with the <code>EntityProvider.writeEntry(String contentType, EdmEntitySet entitySet, Map&lt;String, Object&gt; data, EntityProviderWriteProperties properties)</code> method. This method creates an <code>ODataResponse</code> object which contains the content (i.e. the required <em>POST Body</em>) as <code>InputStream</code> which then can be send to the server. If the entry was created successfully an <em>HTTP Status: 201 created</em> will be returned as well as the complete entry.  </p>
 <p>For simplicity in the code sample below the prepare and execute of the <em>POST</em> and the read of the response is separated (see <em>Part 1: Post</em> and <em>Part 2: Read</em>). The last code sample part shows the convenience method which is used for the create entry case (i.e. absolut uri creation and call of the shared <code>writeEntry</code> method). 
 Additional the parts below are only code snippets (and no complete method which is <em>copy/paste</em> ready), because the <em>Create (HTTP POST)</em> and <em>Update (HTTP PUT)</em> are similar the whole sample contains an <code>writeEntry</code> method which is called by the <code>createEntry</code> and <code>updateEntry</code> methods. The code sample for the complete <code>writeEntry</code> method is listed in the <em>Shared code</em> section. </p>
@@ -260,7 +271,7 @@ The result is a de-serialized <code>ODat
 
 <p>The <em>Part 1</em> and <em>Part 2</em> code snippets are copied from the shared <code>writeEntity(...)</code> method of the sample which is called for <em>create</em> and <em>update</em> of entities. Hence the convenience method <code>createEntry</code> only creates the <code>absolutUri</code> for the entity set and then delegates to the <code>writeEntity</code> method with correct set <code>HTTP_METHOD_POST</code>.</p>
 <p><a name="updatedata"></a></p>
-<h5 id="update">Update</h5>
+<h5 id="update">Update<a class="headerlink" href="#update" title="Permanent link">&para;</a></h5>
 <p>Update of an entity is similar to the creation of an entity. 
 Hence the code sample is not only very similar but also <em>create</em> and <em>update</em> is based on the <code>writeEntry(...)</code> method in this tutorial and the sample. To show this of below all <em>quoted</em> text is the same as in the <em>create</em> section and only the <em>not</em> quoted text is different.</p>
 <p>To update an entity a <em>HTTP PUT</em>  on the corresponding entity URI with the <em>whole entity data</em> as <em>POST Body</em> in a supported format (e.g. <code>atom-xml</code>, <code>json</code>) has to be done. 
@@ -317,7 +328,7 @@ In the code sample the <code>InputStream
 
 <p>The <em>Part 1</em> is copied from the shared <code>writeEntity(...)</code> method of the sample which is called for <em>create</em> and <em>update</em> of entities. Hence the convenience method <code>createEntry</code> in <em>Part 2</em> only creates the <code>absolutUri</code> for the entity and then delegates to the <code>writeEntity</code> method with correct set <code>HTTP_METHOD_PUT</code>.</p>
 <p><a name="deletedata"></a></p>
-<h5 id="delete">Delete</h5>
+<h5 id="delete">Delete<a class="headerlink" href="#delete" title="Permanent link">&para;</a></h5>
 <p>For deletion of an entry just an <em>HTTP DELETE</em> request is necessary on the URI of the entity. Hence the Apache Olingo is not necessary to serialize or de-serialize anything for this use case.</p>
 <div class="codehilite"><pre>  <span class="kd">public</span> <span class="n">HttpStatusCodes</span> <span class="nf">deleteEntry</span><span class="o">(</span><span class="n">String</span> <span class="n">serviceUri</span><span class="o">,</span> <span class="n">String</span> <span class="n">entityName</span><span class="o">,</span> <span class="n">String</span> <span class="n">id</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">IOException</span> <span class="o">{</span>
     <span class="n">String</span> <span class="n">absolutUri</span> <span class="o">=</span> <span class="n">createUri</span><span class="o">(</span><span class="n">serviceUri</span><span class="o">,</span> <span class="n">entityName</span><span class="o">,</span> <span class="n">id</span><span class="o">);</span>
@@ -328,7 +339,7 @@ In the code sample the <code>InputStream
 
 
 <p>So the code for delete of an entry the <em>HTTP DELETE</em> request URI is an <em>Entity</em> for which a <em>key value</em> is required for creation of the absolut uri. Via the <code>connect(...)</code> method the request is done against the absolut uri and the responding http status code is returned, which is, if the entry was deleted successfully, an <em>HTTP Status: 204 No content</em>.</p>
-<h5 id="shared-methods">Shared Methods</h5>
+<h5 id="shared-methods">Shared Methods<a class="headerlink" href="#shared-methods" title="Permanent link">&para;</a></h5>
 <p>In this section are all methods shared and used from the more Apache Olingo releated methods listed as code samples in the concrete <em>read</em>, <em>create</em>, <em>update</em> and <em>delete</em> sections above.</p>
 <p><strong>Code sample: Write Entry for Create/Update</strong></p>
 <p>The <code>writeEntity(...)</code> method is used for <em>creation</em> and <em>update</em> of an entry. Simplified it executes the given <code>httpMethod</code> on the given <code>absolutUri</code> for the serialized entry based on given <code>contentType</code>, <code>entitySetName</code> and <code>data</code>. Additional for the case of an successfull <em>create</em> the <code>ODataEntry</code> is returned otherwise <code>null</code> is returned.</p>
@@ -469,12 +480,12 @@ In the code sample the <code>InputStream
 -->
 
 <p><a name="run"></a></p>
-<h3 id="run-the-sample">Run the sample</h3>
+<h3 id="run-the-sample">Run the sample<a class="headerlink" href="#run-the-sample" title="Permanent link">&para;</a></h3>
 <p>To show a sample how a client can look like and how it than can be used the code samples can be copied into an <code>OlingoSampleApp</code> class. 
 And to show an use case the <code>main</code> method below can be added which calls this <code>OlingoSampleApp</code> to <em>read</em> the <em>EDM</em>, <em>read</em> a <em>ODataFeed</em> and existing <em>ODataEntry</em>, <em>create</em> a new <em>ODataEntry</em>, <em>update</em> this <em>ODataEntry</em> and at last <em>delete</em> the <em>ODataEntry</em>. 
 Between the interaction with the <code>OlingoSampleApp</code> the results are printend via the <code>print(...)</code> and <code>prettyPrint(...)</code>' methods.</p>
 <p><a name="together"></a></p>
-<h5 id="put-the-parts-together">Put the parts together</h5>
+<h5 id="put-the-parts-together">Put the parts together<a class="headerlink" href="#put-the-parts-together" title="Permanent link">&para;</a></h5>
 <p><strong>Shortcut</strong></p>
 <p>Instead of copy and paste all code samples from above and the main sample method below in section <a href="#copypaste">Copy and Paste</a> is the whole sample code as <code>OlingoSampleApp.java</code> available (<a href="#sampleclient">here</a>) as well as a <code>pom.xml</code> (<a href="#pom">here</a>) to set up a maven project which all necessary build information. Only requirements are an installed <em>Java 6 Runtime</em> and <em>Maven 3</em> environment.</p>
 <p><strong>Main sample method</strong></p>
@@ -597,7 +608,7 @@ Between the interaction with the <code>O
 
 
 <p><a name="sampleservice"></a></p>
-<h5 id="sample-service">Sample Service</h5>
+<h5 id="sample-service">Sample Service<a class="headerlink" href="#sample-service" title="Permanent link">&para;</a></h5>
 <p>That the sample Clients <code>main</code> method generates real output it is necessary that an OData Service with corresponding <em>Data Model (EDM)</em> is available at the <code>service url</code> defined in the <code>main</code> method (which is in the sample <code>http://localhost:8080/MyFormula.svc</code>).
 This can easily achieved if the Apache Olingo archetype (with id: <code>olingo-odata2-sample-cars-annotation-archetype</code>) is used. 
 To use the archtype and create this sample project Maven must be called as shown below:</p>
@@ -615,14 +626,14 @@ To use the archtype and create this samp
 <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 a <em>Jetty Web Server</em> at <a href="http://localhost:8080">http://localhost:8080</a>.</p>
 <p>For more detailed documentation on how to use this archetype take a look into the documentation about Archetypes in Olingo in the <a href="/doc/odata2/sample-setup">sample setup</a> section.</p>
 <p><a name="runsample"></a></p>
-<h5 id="run-command">Run command</h5>
+<h5 id="run-command">Run command<a class="headerlink" href="#run-command" title="Permanent link">&para;</a></h5>
 <p>Must be run from project root directory after build with Maven (<code>mvn</code>).</p>
 <div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">cp</span> <span class="n">target</span><span class="o">/</span><span class="n">OlingoSampleClient</span><span class="p">.</span><span class="n">jar</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="p">.</span><span class="n">sample</span><span class="p">.</span><span class="n">client</span><span class="p">.</span><span class="n">OlingoSampleApp</span>
 </pre></div>
 
 
 <p><a name="projectstructure"></a></p>
-<h5 id="project-structure">Project structure</h5>
+<h5 id="project-structure">Project structure<a class="headerlink" href="#project-structure" title="Permanent link">&para;</a></h5>
 <p>This section contains the complete Maven Project <code>pom.xml</code> and <code>OlingoSampleApp</code> to build the project. 
 To use it just copy both blocks into files in following directory structure:</p>
 <div class="codehilite"><pre><span class="n">ProjectFolder</span>
@@ -635,9 +646,9 @@ To use it just copy both blocks into fil
 After successfull build the sample client (i.e. its <code>main</code>) can be executed via <code>java -cp target/OlingoSampleClient.jar org.apache.olingo.sample.client.OlingoSampleApp</code>.
 If the corresponding OData Service based on the <em>archetypeArtifactId=olingo-odata2-sample-cars-annotation-archetype</em> (see Olingo Annotation Archetype) is running on <a href="http://localhost:8080/MyFormula.svc">http://localhost:8080/MyFormula.svc</a> the sample work and log some information to the console.</p>
 <p><a name="copypaste"></a></p>
-<h5 id="copy-and-paste">Copy and Paste</h5>
+<h5 id="copy-and-paste">Copy and Paste<a class="headerlink" href="#copy-and-paste" title="Permanent link">&para;</a></h5>
 <p><a name="pom"></a></p>
-<h5 id="project-pom">Project Pom</h5>
+<h5 id="project-pom">Project Pom<a class="headerlink" href="#project-pom" title="Permanent link">&para;</a></h5>
 <p>Maven project POM (<code>pom.xml</code>)</p>
 <div class="codehilite"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
 <span class="c">&lt;!--</span>
@@ -726,7 +737,7 @@ If the corresponding OData Service based
 
 
 <p><a name="sampleclient"></a></p>
-<h5 id="client-sample">Client Sample</h5>
+<h5 id="client-sample">Client Sample<a class="headerlink" href="#client-sample" title="Permanent link">&para;</a></h5>
 <p>Complete <code>OlingoSampleApp</code> with <code>main</code> which can be <em>copy/pasted</em> into a <code>OlingoSampleApp.java</code>, then compiled and run.</p>
 <div class="codehilite"><pre><span class="cm">/*******************************************************************************</span>
 <span class="cm"> * Licensed to the Apache Software Foundation (ASF) under one</span>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_AdvancedReadWrite_Batch.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_AdvancedReadWrite_Batch.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_AdvancedReadWrite_Batch.html Wed Jul  8 13:49:34 2015
@@ -86,9 +86,20 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="batch">Batch</h1>
-<h3 id="how-to-process-an-odata-batch-request">How to process an OData Batch Request</h3>
-<h5 id="implement-the-method-executebatch-of-the-class-odatasingleprocessor">Implement the method executeBatch of the class ODataSingleProcessor.</h5>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="batch">Batch<a class="headerlink" href="#batch" title="Permanent link">&para;</a></h1>
+<h3 id="how-to-process-an-odata-batch-request">How to process an OData Batch Request<a class="headerlink" href="#how-to-process-an-odata-batch-request" title="Permanent link">&para;</a></h3>
+<h5 id="implement-the-method-executebatch-of-the-class-odatasingleprocessor">Implement the method executeBatch of the class ODataSingleProcessor.<a class="headerlink" href="#implement-the-method-executebatch-of-the-class-odatasingleprocessor" title="Permanent link">&para;</a></h5>
 <ul>
 <li>Use the method <code>EntityProvider.parseBatchRequest(contentType, content, batchProperties)</code> in order to parse the Batch Request Body. As a result you get a list with batch parts. Each part separately represents a ChangeSet or a query operation. </li>
 <li>Call <code>handler.handleBathPart(batchRequestPart)</code> while looping over the list. The handler delegates the processing of a batch part depending on the type of that batch part. </li>
@@ -114,7 +125,7 @@ The following example shows a possible i
 
 
 <p><strong>NOTE:</strong> The parameter batchProperties of the method parseBatchRequest contains OData URI informations as PathInfo-object. These informations are necessary for the parsing, that's why the PathInfo-object should not be null.</p>
-<h5 id="implement-the-method-executechangeset-of-the-class-odatasingleprocessor">Implement the method executeChangeSet of the class ODataSingleProcessor.</h5>
+<h5 id="implement-the-method-executechangeset-of-the-class-odatasingleprocessor">Implement the method executeChangeSet of the class ODataSingleProcessor.<a class="headerlink" href="#implement-the-method-executechangeset-of-the-class-odatasingleprocessor" title="Permanent link">&para;</a></h5>
 <p>In order to process a request invoke <code>handler.handleRequest(request)</code>, that delegates a handling of the request to the request handler and provides ODataResponse. 
 Define a rollback semantics that may be applied when a request within a ChangeSet fails. 
 The following example shows a possible implementation:</p>
@@ -137,7 +148,7 @@ The following example shows a possible i
 
 
 <p><strong>NOTE:</strong> If a request within a ChangeSet fails, a Batch Response Part contains only the error response and the flag changeSet is set to false.</p>
-<h5 id="batch-request-body-example">Batch Request Body Example</h5>
+<h5 id="batch-request-body-example">Batch Request Body Example<a class="headerlink" href="#batch-request-body-example" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="o">--</span><span class="n">batch_123</span>
 <span class="n">Content</span><span class="o">-</span><span class="n">Type</span><span class="p">:</span> <span class="n">multipart</span><span class="o">/</span><span class="n">mixed</span><span class="p">;</span> <span class="n">boundary</span><span class="p">=</span><span class="n">changeset_321</span>
 
@@ -174,7 +185,7 @@ The following example shows a possible i
 <li>Each Batch Part is separated by the boundary string, that must occur at the beginning of a line, following a CRLF. </li>
 <li>The boundary of the ChangeSet should be different from that used by the Batch. </li>
 </ul>
-<h5 id="request-line-of-a-single-request">Request Line of a single request</h5>
+<h5 id="request-line-of-a-single-request">Request Line of a single request<a class="headerlink" href="#request-line-of-a-single-request" title="Permanent link">&para;</a></h5>
 <p>The following request lines of a single request (e.g. a retrieve request) will be accepted:</p>
 <ul>
 <li>GET http://<scheme>/<service_name>/<resource_path> HTTP/1.1 - the request line with an absolute URI </li>
@@ -182,7 +193,7 @@ The following example shows a possible i
 Query Options can optionally follow the Resource Path.</li>
 </ul>
 <p><strong>Note:</strong> An absolute-path reference like /<service_name>/<resource_path> will not be accepted</p>
-<h5 id="content-id">Content-ID</h5>
+<h5 id="content-id">Content-ID<a class="headerlink" href="#content-id" title="Permanent link">&para;</a></h5>
 <p>The new entity may be referenced by subsequent requests within the same ChangeSet by referring to the Content-Id value. $<contentIdValue> acts as an alias for the Resource Path of the new entity.
 In order to refer the new entity the Request URI must begin with $<contentIdValue>:</p>
 <div class="codehilite"><pre><span class="n">POST</span> <span class="n">Customers</span> <span class="n">HTTP</span><span class="o">/</span>1<span class="p">.</span>1
@@ -193,7 +204,7 @@ In order to refer the new entity the Req
 
 
 <p><strong>Note:</strong> Requests in different ChangeSets cannot reference one another, even if they are in the same Batch</p>
-<h3 id="references">References</h3>
+<h3 id="references">References<a class="headerlink" href="#references" title="Permanent link">&para;</a></h3>
 <p><a href="http://www.odata.org/documentation/odata-v2-documentation/batch-processing/" title="External Link">http://www.odata.org/documentation/odata-v2-documentation/batch-processing/</a></p><div align="center">
 <p>Copyright © 2013-2015, The Apache Software Foundation<br>
 				                Apache Olingo, Olingo, Apache, the Apache feather, and

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_AdvancedRead_FilterVisitor.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_AdvancedRead_FilterVisitor.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_AdvancedRead_FilterVisitor.html Wed Jul  8 13:49:34 2015
@@ -86,11 +86,22 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="implementation-of-filter-visitor-jdbc">Implementation of Filter Visitor (JDBC)</h1>
-<h3 id="how-to-guide-for-implementing-a-filter-tree-transformation-into-a-jdbc-where-clause">How To Guide for implementing a filter tree transformation into a JDBC where clause</h3>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="implementation-of-filter-visitor-jdbc">Implementation of Filter Visitor (JDBC)<a class="headerlink" href="#implementation-of-filter-visitor-jdbc" title="Permanent link">&para;</a></h1>
+<h3 id="how-to-guide-for-implementing-a-filter-tree-transformation-into-a-jdbc-where-clause">How To Guide for implementing a filter tree transformation into a JDBC where clause<a class="headerlink" href="#how-to-guide-for-implementing-a-filter-tree-transformation-into-a-jdbc-where-clause" title="Permanent link">&para;</a></h3>
 <p>The query option $filter can be used to apply a filter query to the result set. This tutorial will be about consuming and working with the filter tree which an application will get from the OData Java library by implementing a transformation of the filter expression into a JDBC where clause. The example explained here will be kept simple to show the mechanism of the visitor pattern. Security problem which occur when using user input (e.g. the filter string of the URI) inside a where clause will be pointed out but not solved for this tutorial. Knowledge about the visitor pattern is not necessary but helpful. If you want to read further please refer to the further information chapter at the end of this tutorial.</p>
-<h3 id="examples">Examples</h3>
-<h5 id="simple-example">Simple example</h5>
+<h3 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">&para;</a></h3>
+<h5 id="simple-example">Simple example<a class="headerlink" href="#simple-example" title="Permanent link">&para;</a></h5>
 <p>If a filter expression is parsed by the OData library it will be transformed into a filter tree. A simple tree for the expression ‘a’ eq ‘b’ would look like this:</p>
 <p><img alt="Picture:Simple Filter Expression" src="/img/FilterExpressionSimple.png" /></p>
 <p>To visit a filter tree we have to implement the interface <code>org.apache.olingo.odata2.api.uri.expression.ExpressionVisitor</code>. For this simple example we will only need the following methods:</p>
@@ -222,7 +233,7 @@
 
 
 <p>Test in the sources: JdbcSimpleStringVisitorTest.class</p>
-<h5 id="advanced-example">Advanced Example</h5>
+<h5 id="advanced-example">Advanced Example<a class="headerlink" href="#advanced-example" title="Permanent link">&para;</a></h5>
 <p>The implementation shown in the previous chapter can transform simple expressions. But if the expression gets more complex like <code>"'a' eq 'b' or ('c' eq 'd' and 'b' eq 'd')"</code> it won´t produce a correct where clause. The following test shows this.</p>
 <div class="codehilite"><pre><span class="p">@</span><span class="n">Test</span>
 <span class="n">public</span> <span class="n">void</span> <span class="n">compareSimpleAndAdvancedVisitor</span><span class="p">()</span> <span class="n">throws</span> <span class="n">Exception</span><span class="p">{</span>
@@ -298,7 +309,7 @@
 
 <p>Since simple strings cannot show this complexity a new private class "Expression" was introduced. The signature of all <code>visit()</code> methods accept any kind of object so we can mix in the new class. Now we only have to check if one side of the tree is of type String or Expression.</p>
 <p>Test in the sources: JdbcAdvancedStringVisitorTest.class</p>
-<h5 id="example-with-prepared-statements">Example with prepared Statements</h5>
+<h5 id="example-with-prepared-statements">Example with prepared Statements<a class="headerlink" href="#example-with-prepared-statements" title="Permanent link">&para;</a></h5>
 <p>Since string concatenation is very vulnerable against SQL Injection a best practice is to use prepared statements. This can be a tough challenge in this case because not only the value of <code>EmployeeId</code> is supplied in the filter expression but the field EmployeeId and the operator as well. Prepared Statements don´t allow statements like <code>"WHERE ? ? ?"</code> thus we have to find a way to prepare the prepared statements in advance which can be very complex as the following example will show: The filter expression <code>"EmployeeId eq '1' and ManagerId eq '2'"</code> is the same as <code>"ManagerId eq '2' and EmployeeId eq '1'"</code> but the prepared statement will always look like <code>"…. WHERE EmployeeId = ? and ManagerId = ?"</code>.</p>
 <p>This tutorial will not solve this problem. Instead it will show a first idea on how to implement such a prepared statement visitor. Again the Where clause will be created using string concatenation. But this time we will replace literals with a "?". These questionmarks can be set in a prepared statement. The methods <code>visitLiteral</code> and <code>visitProperty</code> will just return their value while the <code>visitBinary</code> will contain the logic.</p>
 <p>VisitLiteral:</p>
@@ -439,7 +450,7 @@
 
 
 <p>Test in the sources: JdbcPreparedStatementVisitorTest.class</p>
-<h3 id="further-information">Further Information</h3>
+<h3 id="further-information">Further Information<a class="headerlink" href="#further-information" title="Permanent link">&para;</a></h3>
 <p>Documentation about how to create such a filter expression can be found under <a href="http://www.odata.org" title="External Link">http://www.odata.org</a> in the OData protocol specification.</p>
 <p>Visitor pattern: <a href="http://en.wikipedia.org/wiki/Visitor_pattern" title="External Link">http://en.wikipedia.org/wiki/Visitor_pattern</a></p><div align="center">
 <p>Copyright © 2013-2015, The Apache Software Foundation<br>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_Advanced_Service_Resolution.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_Advanced_Service_Resolution.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_Advanced_Service_Resolution.html Wed Jul  8 13:49:34 2015
@@ -86,7 +86,18 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="service-resolution">Service Resolution</h1>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="service-resolution">Service Resolution<a class="headerlink" href="#service-resolution" title="Permanent link">&para;</a></h1>
 <p>An OData service usually starts with "/" which delivers the service document while all preceding path segments belong to the servlet and servlet mapping of a web application.</p>
 <p>Some service providers would like to get control over the path hierarchy. This is called service resolution. Actually it means an OData path can start at any hierarchy path level behind the service mapping path elements.</p>
 <p>An uri schema with and without service resolution is shown here: </p>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_BasicRead_EDM.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_BasicRead_EDM.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_BasicRead_EDM.html Wed Jul  8 13:49:34 2015
@@ -86,8 +86,19 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="how-to-use-edmx-source-as-edm-provider-within-an-odata-service">How to use EDMX source as EDM Provider within an OData Service</h1>
-<h2 id="how-to-guide-for-the-using-an-edm-parser">How To Guide for the using an EDM Parser</h2>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="how-to-use-edmx-source-as-edm-provider-within-an-odata-service">How to use EDMX source as EDM Provider within an OData Service<a class="headerlink" href="#how-to-use-edmx-source-as-edm-provider-within-an-odata-service" title="Permanent link">&para;</a></h1>
+<h2 id="how-to-guide-for-the-using-an-edm-parser">How To Guide for the using an EDM Parser<a class="headerlink" href="#how-to-guide-for-the-using-an-edm-parser" title="Permanent link">&para;</a></h2>
 <p>The EDM Parser is designed to parse the metadata document.
 To make the parser accessible from the API, we have to implement the method <code>readMetadata</code> from interface <code>org.apache.olingo.odata2.api.ep.EntityProviderInterface</code>:</p>
 <div class="codehilite"><pre> <span class="p">@</span><span class="n">Override</span>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_BasicWrite.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_BasicWrite.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/Olingo_Tutorial_BasicWrite.html Wed Jul  8 13:49:34 2015
@@ -86,13 +86,24 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="write-scenario">Write Scenario</h1>
-<h3 id="how-to-guide-for-building-a-sample-odata-service-with-the-odata-library-java">How To Guide for building a Sample OData service with the OData Library (Java)</h3>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="write-scenario">Write Scenario<a class="headerlink" href="#write-scenario" title="Permanent link">&para;</a></h1>
+<h3 id="how-to-guide-for-building-a-sample-odata-service-with-the-odata-library-java">How To Guide for building a Sample OData service with the OData Library (Java)<a class="headerlink" href="#how-to-guide-for-building-a-sample-odata-service-with-the-odata-library-java" title="Permanent link">&para;</a></h3>
 <p>This How To Guide shows how to create, update and delete an entry via your Data Provider (<code>ODataSingleProcessor</code>).</p>
-<h3 id="prerequisites">Prerequisites</h3>
+<h3 id="prerequisites">Prerequisites<a class="headerlink" href="#prerequisites" title="Permanent link">&para;</a></h3>
 <p>This tutorial is based on the <a href="/doc/odata2/tutorials/basicread.html">Read Scenario</a> - OData Library (Java) tutorial.  </p>
-<h3 id="implementing-create-update-and-delete-entry-at-the-single-processor">Implementing create, update and delete entry at the single processor</h3>
-<h5 id="create-entry">Create entry</h5>
+<h3 id="implementing-create-update-and-delete-entry-at-the-single-processor">Implementing create, update and delete entry at the single processor<a class="headerlink" href="#implementing-create-update-and-delete-entry-at-the-single-processor" title="Permanent link">&para;</a></h3>
+<h5 id="create-entry">Create entry<a class="headerlink" href="#create-entry" title="Permanent link">&para;</a></h5>
 <ul>
 <li>You already created the <code>MyODataSingleProcessor</code> in the basic tutorial </li>
 <li>Implement <code>MyODataSingleProcessor.createEntity(PostUriInfo uriInfo, InputStream content, String requestContentType, String contentType) throws ODataException</code> by overriding the corresponding method of the <code>ODataSingleProcessor</code> </li>
@@ -130,7 +141,7 @@
 </pre></div>
 
 
-<h5 id="update-entry">Update entry</h5>
+<h5 id="update-entry">Update entry<a class="headerlink" href="#update-entry" title="Permanent link">&para;</a></h5>
 <ul>
 <li>You already created the <code>MyODataSingleProcessor</code> in the basic tutorial </li>
 <li>Implement <code>MyODataSingleProcessor.updateEntity(PutMergePatchUriInfo uriInfo, InputStream content, String requestContentType, boolean merge, String contentType) throws ODataException</code> by overriding the corresponding method of the <code>ODataSingleProcessor</code> </li>
@@ -168,7 +179,7 @@
 </pre></div>
 
 
-<h5 id="delete-entry">Delete entry</h5>
+<h5 id="delete-entry">Delete entry<a class="headerlink" href="#delete-entry" title="Permanent link">&para;</a></h5>
 <ul>
 <li>You already created the <code>MyODataSingleProcessor</code> in the basic tutorial </li>
 <li>Implement <code>MyODataSingleProcessor.deleteEntity(DeleteUriInfo uriInfo, String contentType) throws ODataException</code> by overriding the corresponding method of the <code>ODataSingleProcessor</code> </li>
@@ -197,7 +208,7 @@
 </pre></div>
 
 
-<h3 id="test-your-service">Test your Service</h3>
+<h3 id="test-your-service">Test your Service<a class="headerlink" href="#test-your-service" title="Permanent link">&para;</a></h3>
 <p>After the implementation of the MyODataSingleProcessor the web application can be tested.</p>
 <ul>
 <li>Build your project <code>mvn clean install</code> </li>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/basicread.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/basicread.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/basicread.html Wed Jul  8 13:49:34 2015
@@ -86,19 +86,30 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="read-scenario">Read Scenario</h1>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="read-scenario">Read Scenario<a class="headerlink" href="#read-scenario" title="Permanent link">&para;</a></h1>
 <hr />
-<h3 id="how-to-guide-for-building-a-sample-odata-service-with-the-odata-library-java">How To Guide for building a Sample OData service with the OData Library (Java)</h3>
+<h3 id="how-to-guide-for-building-a-sample-odata-service-with-the-odata-library-java">How To Guide for building a Sample OData service with the OData Library (Java)<a class="headerlink" href="#how-to-guide-for-building-a-sample-odata-service-with-the-odata-library-java" title="Permanent link">&para;</a></h3>
 <p>This How To Guide prerequisites a Project Setup (Git, Maven, etc.) and then shows how to develop an OData Service and make the same available.
 It shows in addition how to implement the Model Provider to expose the Entity Data Model (EDM) and the Data Provider to expose the runtime data.
 The implementation of the Data Provider (ODataSingleProcessor) illustrates how to expose a single entry, a feed and how to follow associations.</p>
-<h3 id="prerequisites">Prerequisites</h3>
+<h3 id="prerequisites">Prerequisites<a class="headerlink" href="#prerequisites" title="Permanent link">&para;</a></h3>
 <p><a href="../project-setup.html">Project Setup</a> is successfully done and the project is ready to start in your <code>$ODATA_PROJECT_HOME</code>.</p>
-<h3 id="implement-your-odata-service">Implement your OData Service</h3>
-<h5 id="shortcut">Shortcut</h5>
+<h3 id="implement-your-odata-service">Implement your OData Service<a class="headerlink" href="#implement-your-odata-service" title="Permanent link">&para;</a></h3>
+<h5 id="shortcut">Shortcut<a class="headerlink" href="#shortcut" title="Permanent link">&para;</a></h5>
 <p>As a shortcut you can download the <a href="apache-olingo-tutorial-basic_read.zip">Olingo Tutorial 'Basic-Read' Project</a>.</p>
-<h3 id="deployment-descriptor">Deployment Descriptor</h3>
-<h5 id="sample-code">Sample Code</h5>
+<h3 id="deployment-descriptor">Deployment Descriptor<a class="headerlink" href="#deployment-descriptor" title="Permanent link">&para;</a></h3>
+<h5 id="sample-code">Sample Code<a class="headerlink" href="#sample-code" title="Permanent link">&para;</a></h5>
 <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;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>
@@ -135,13 +146,13 @@ The implementation of the Data Provider
 <p>The deployment Descriptor contains two <code>&lt;init-param&gt;</code> elements which define the OData Application <code>org.apache.olingo.odata2.core.rest.app.ODataApplication</code> and your Service Factory <code>org.apache.olingo.odata2.sample.service.MyServiceFactory</code>. The OData Application is implemented in the OData Library (Core) and registers a root locator and an exception mapper. The root locator looks up your registered Service Factory to get access to the Entity Data Model Provider and the OData Processor which provides the runtime data. In addition the root locator looks up a parameter <code>org.apache.olingo.odata2.path.split</code> (not present in the deployment descriptor above) which indicates how many path segments are reserved for the OData Service via an Integer value (default is 0, which means that the OData Service name corresponds to the defined <code>url-pattern</code>). </p>
 </li>
 </ul>
-<h3 id="implement-the-odata-service-factory">Implement the OData Service Factory</h3>
+<h3 id="implement-the-odata-service-factory">Implement the OData Service Factory<a class="headerlink" href="#implement-the-odata-service-factory" title="Permanent link">&para;</a></h3>
 <ul>
 <li>Create a new source folder <em>src/main/java</em> in the eclipse project </li>
 <li>Create a new package <code>org.apache.olingo.odata2.sample.service</code> in the source folder</li>
 <li>Create a class <code>MyServiceFactory</code> which extends <code>org.apache.olingo.odata2.api.ODataServiceFactory</code> in the new package and contains the following implementation </li>
 </ul>
-<h5 id="sample-code_1">Sample Code</h5>
+<h5 id="sample-code_1">Sample Code<a class="headerlink" href="#sample-code_1" title="Permanent link">&para;</a></h5>
 <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">odata2</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">service</span><span class="o">;</span>
 
 <span class="kn">import</span> <span class="nn">org.apache.olingo.odata2.api.ODataService</span><span class="o">;</span>
@@ -171,7 +182,7 @@ The implementation of the Data Provider
  <code>MyODataSingleProcessor</code> which extends <code>org.apache.olingo.odata2.api.processor.ODataSingleProcessor</code> </li>
 <li>After these steps compile your project with <code>mvn clean install</code> </li>
 </ul>
-<h3 id="implement-the-entity-data-model-provider">Implement the Entity Data Model Provider</h3>
+<h3 id="implement-the-entity-data-model-provider">Implement the Entity Data Model Provider<a class="headerlink" href="#implement-the-entity-data-model-provider" title="Permanent link">&para;</a></h3>
 <p>In this paragraph you will implement the <code>MyEdmProvider</code> class by overriding all methods of <code>org.apache.olingo.odata2.api.edm.provider.EdmProvider</code>.</p>
 <ul>
 <li>You will implement the following Entity Data Model.</li>
@@ -180,7 +191,7 @@ The implementation of the Data Provider
 <ul>
 <li>As we have a static model we define constants for all top level elements of the schema (declared in the <code>MyEdmProvider</code> class).</li>
 </ul>
-<h5 id="sample-code_2">Sample Code</h5>
+<h5 id="sample-code_2">Sample Code<a class="headerlink" href="#sample-code_2" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre>  <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">ENTITY_SET_NAME_MANUFACTURERS</span> <span class="o">=</span> <span class="s">&quot;Manufacturers&quot;</span><span class="o">;</span>
   <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">ENTITY_SET_NAME_CARS</span> <span class="o">=</span> <span class="s">&quot;Cars&quot;</span><span class="o">;</span>
   <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">ENTITY_NAME_MANUFACTURER</span> <span class="o">=</span> <span class="s">&quot;Manufacturer&quot;</span><span class="o">;</span>
@@ -207,7 +218,7 @@ The implementation of the Data Provider
 <ul>
 <li>Implement <code>MyEdmProvider.getSchemas</code>. This method is used to retrieve the complete structural information in order to build the metadata document and the service document. The implementation makes use of other getter methods of this class for simplicity reasons. If a very performant way of building the whole structural information was required, other implementation strategies could be used. </li>
 </ul>
-<h5 id="sample-code_3">Sample Code</h5>
+<h5 id="sample-code_3">Sample Code<a class="headerlink" href="#sample-code_3" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">Schema</span><span class="o">&gt;</span> <span class="n">getSchemas</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 <span class="n">List</span><span class="o">&lt;</span><span class="n">Schema</span><span class="o">&gt;</span> <span class="n">schemas</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Schema</span><span class="o">&gt;();</span>
 
@@ -253,7 +264,7 @@ The implementation of the Data Provider
 <ul>
 <li><code>MyEdmProvider.getEntityType(FullQualifiedName edmFQName)</code> returns an Entity Type according to the full qualified name specified. The Entity Type holds all information about its structure like simple properties, complex properties, navigation properties and the definition of its key property (or properties). </li>
 </ul>
-<h5 id="sample-code_4">Sample Code</h5>
+<h5 id="sample-code_4">Sample Code<a class="headerlink" href="#sample-code_4" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="nd">@Override</span>
   <span class="kd">public</span> <span class="n">EntityType</span> <span class="nf">getEntityType</span><span class="o">(</span><span class="n">FullQualifiedName</span> <span class="n">edmFQName</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 <span class="k">if</span> <span class="o">(</span><span class="n">NAMESPACE</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">edmFQName</span><span class="o">.</span><span class="na">getNamespace</span><span class="o">()))</span> <span class="o">{</span>
@@ -327,7 +338,7 @@ The implementation of the Data Provider
 <ul>
 <li><code>MyEdmProvider.getComplexType(FullQualifiedName edmFQName)</code> </li>
 </ul>
-<h5 id="sample-code_5">Sample Code</h5>
+<h5 id="sample-code_5">Sample Code<a class="headerlink" href="#sample-code_5" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="n">ComplexType</span> <span class="nf">getComplexType</span><span class="o">(</span><span class="n">FullQualifiedName</span> <span class="n">edmFQName</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 <span class="k">if</span> <span class="o">(</span><span class="n">NAMESPACE</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">edmFQName</span><span class="o">.</span><span class="na">getNamespace</span><span class="o">()))</span> <span class="o">{</span>
   <span class="k">if</span> <span class="o">(</span><span class="n">COMPLEX_TYPE</span><span class="o">.</span><span class="na">getName</span><span class="o">().</span><span class="na">equals</span><span class="o">(</span><span class="n">edmFQName</span><span class="o">.</span><span class="na">getName</span><span class="o">()))</span> <span class="o">{</span>
@@ -349,7 +360,7 @@ The implementation of the Data Provider
 <ul>
 <li><code>MyEdmProvider.getAssociation(FullQualifiedName edmFQName)</code> </li>
 </ul>
-<h5 id="sample-code_6">Sample Code</h5>
+<h5 id="sample-code_6">Sample Code<a class="headerlink" href="#sample-code_6" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="n">Association</span> <span class="nf">getAssociation</span><span class="o">(</span><span class="n">FullQualifiedName</span> <span class="n">edmFQName</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 <span class="k">if</span> <span class="o">(</span><span class="n">NAMESPACE</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">edmFQName</span><span class="o">.</span><span class="na">getNamespace</span><span class="o">()))</span> <span class="o">{</span>
   <span class="k">if</span> <span class="o">(</span><span class="n">ASSOCIATION_CAR_MANUFACTURER</span><span class="o">.</span><span class="na">getName</span><span class="o">().</span><span class="na">equals</span><span class="o">(</span><span class="n">edmFQName</span><span class="o">.</span><span class="na">getName</span><span class="o">()))</span> <span class="o">{</span>
@@ -366,7 +377,7 @@ The implementation of the Data Provider
 <ul>
 <li><code>MyEdmProvider.getEntityContainerInfo(String name)</code> </li>
 </ul>
-<h5 id="sample-code_7">Sample Code</h5>
+<h5 id="sample-code_7">Sample Code<a class="headerlink" href="#sample-code_7" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="n">EntityContainerInfo</span> <span class="nf">getEntityContainerInfo</span><span class="o">(</span><span class="n">String</span> <span class="n">name</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 <span class="k">if</span> <span class="o">(</span><span class="n">name</span> <span class="o">==</span> <span class="kc">null</span> <span class="o">||</span> <span class="s">&quot;ODataCarsEntityContainer&quot;</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">name</span><span class="o">))</span> <span class="o">{</span>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">EntityContainerInfo</span><span class="o">().</span><span class="na">setName</span><span class="o">(</span><span class="s">&quot;ODataCarsEntityContainer&quot;</span><span class="o">).</span><span class="na">setDefaultEntityContainer</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
@@ -380,7 +391,7 @@ The implementation of the Data Provider
 <ul>
 <li><code>MyEdmProvider.getEntitySet(String entityContainer, String name)</code></li>
 </ul>
-<h5 id="sample-code_8">Sample Code</h5>
+<h5 id="sample-code_8">Sample Code<a class="headerlink" href="#sample-code_8" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="n">EntitySet</span> <span class="nf">getEntitySet</span><span class="o">(</span><span class="n">String</span> <span class="n">entityContainer</span><span class="o">,</span> <span class="n">String</span> <span class="n">name</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 <span class="k">if</span> <span class="o">(</span><span class="n">ENTITY_CONTAINER</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">entityContainer</span><span class="o">))</span> <span class="o">{</span>
   <span class="k">if</span> <span class="o">(</span><span class="n">ENTITY_SET_NAME_CARS</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">name</span><span class="o">))</span> <span class="o">{</span>
@@ -397,7 +408,7 @@ The implementation of the Data Provider
 <ul>
 <li><code>MyEdmProvider.getAssociationSet(String entityContainer, FullQualifiedName association, String sourceEntitySetName, String sourceEntitySetRole)</code></li>
 </ul>
-<h5 id="sample-code_9">Sample Code</h5>
+<h5 id="sample-code_9">Sample Code<a class="headerlink" href="#sample-code_9" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="n">AssociationSet</span> <span class="nf">getAssociationSet</span><span class="o">(</span><span class="n">String</span> <span class="n">entityContainer</span><span class="o">,</span> <span class="n">FullQualifiedName</span> <span class="n">association</span><span class="o">,</span> <span class="n">String</span> <span class="n">sourceEntitySetName</span><span class="o">,</span> <span class="n">String</span> <span class="n">sourceEntitySetRole</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 <span class="k">if</span> <span class="o">(</span><span class="n">ENTITY_CONTAINER</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">entityContainer</span><span class="o">))</span> <span class="o">{</span>
   <span class="k">if</span> <span class="o">(</span><span class="n">ASSOCIATION_CAR_MANUFACTURER</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">association</span><span class="o">))</span> <span class="o">{</span>
@@ -412,7 +423,7 @@ The implementation of the Data Provider
 </pre></div>
 
 
-<h4 id="conclusion">Conclusion</h4>
+<h4 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h4>
 <p>After the implementation of the Edm Provider the web application can be executed to show the Service Document and the Metadata Document.</p>
 <ul>
 <li>Build your project <code>mvn clean install</code> </li>
@@ -420,9 +431,9 @@ The implementation of the Data Provider
 <li>Show the Service Document: http://localhost:8080/olingo.odata2.sample.cars.web/MyODataSample.svc/</li>
 <li>Show the Metadata Document: http://localhost:8080/olingo.odata2.sample.cars.web/MyODataSample.svc/$metadata </li>
 </ul>
-<h3 id="implement-the-odata-processor-which-provides-the-runtime-data">Implement the OData Processor which provides the runtime data</h3>
+<h3 id="implement-the-odata-processor-which-provides-the-runtime-data">Implement the OData Processor which provides the runtime data<a class="headerlink" href="#implement-the-odata-processor-which-provides-the-runtime-data" title="Permanent link">&para;</a></h3>
 <p>You already created the <code>MyODataSingleProcessor</code> class which we now extend with some needed imports and a reference to a DataStore which contains our data (and will be implemented in the next step).</p>
-<h5 id="sample-code_10">Sample Code</h5>
+<h5 id="sample-code_10">Sample Code<a class="headerlink" href="#sample-code_10" title="Permanent link">&para;</a></h5>
 <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">odata2</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">service</span><span class="o">;</span>
 
 <span class="kn">import</span> <span class="nn">static</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">odata2</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">service</span><span class="o">.</span><span class="na">MyEdmProvider</span><span class="o">.</span><span class="na">ENTITY_SET_NAME_CARS</span><span class="o">;</span>
@@ -439,7 +450,7 @@ The implementation of the Data Provider
 <ul>
 <li>As next steps we will implement the read access to the Car and Manufacturer entries and the read access to the Cars and Manufacturers feed. As we need some basis for sample data we create a very simple DataStore which contains the data as well as access methods to serve the required data: </li>
 </ul>
-<h5 id="sample-code_11">Sample Code</h5>
+<h5 id="sample-code_11">Sample Code<a class="headerlink" href="#sample-code_11" title="Permanent link">&para;</a></h5>
 <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">odata2</span><span class="o">.</span><span class="na">sample</span><span class="o">.</span><span class="na">service</span><span class="o">;</span>
 
 <span class="kn">import</span> <span class="nn">java.util.ArrayList</span><span class="o">;</span>
@@ -597,7 +608,7 @@ The implementation of the Data Provider
 <ul>
 <li>Implement <code>MyODataSingleProcessor.readEntity(GetEntityUriInfo uriParserResultInfo)</code> by overriding the corresponding method of the ODataSingleProcessor</li>
 </ul>
-<h5 id="sample-code_12">Sample Code</h5>
+<h5 id="sample-code_12">Sample Code<a class="headerlink" href="#sample-code_12" title="Permanent link">&para;</a></h5>
 <div class="codehilite"><pre>  <span class="kd">public</span> <span class="n">ODataResponse</span> <span class="nf">readEntity</span><span class="o">(</span><span class="n">GetEntityUriInfo</span> <span class="n">uriInfo</span><span class="o">,</span> <span class="n">String</span> <span class="n">contentType</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ODataException</span> <span class="o">{</span>
 
 <span class="k">if</span> <span class="o">(</span><span class="n">uriInfo</span><span class="o">.</span><span class="na">getNavigationSegments</span><span class="o">().</span><span class="na">size</span><span class="o">()</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/batchClientApi.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/batchClientApi.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/batchClientApi.html Wed Jul  8 13:49:34 2015
@@ -86,7 +86,18 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h2 id="batch-request-construction">Batch Request construction</h2>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h2 id="batch-request-construction">Batch Request construction<a class="headerlink" href="#batch-request-construction" title="Permanent link">&para;</a></h2>
 <p><strong>Query Request construction</strong></p>
 <p>A BatchQueryPart is a representation of a single retrieve request. You can use the following methods in order to fill out a request:</p>
 <ul>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/debug.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/debug.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/debug.html Wed Jul  8 13:49:34 2015
@@ -86,17 +86,28 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="debug-support-and-error-handling">Debug Support and Error Handling</h1>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="debug-support-and-error-handling">Debug Support and Error Handling<a class="headerlink" href="#debug-support-and-error-handling" title="Permanent link">&para;</a></h1>
 <hr />
-<h3 id="odata-error-conditions">OData Error Conditions</h3>
+<h3 id="odata-error-conditions">OData Error Conditions<a class="headerlink" href="#odata-error-conditions" title="Permanent link">&para;</a></h3>
 <p>OData exposes error conditions as HTTP responses with error status code (4xx and 5xx) and it is in the responsibility of a client to handle this situations. For more details see 
 <a href="http://www.odata.org/documentation/odata-v2-documentation/operations/#13_Error_Conditions">OData Error Conditions</a>.</p>
 <p>In OData the format for error messages is described in <a href="http://www.odata.org/developers/protocols/atom-format">OData-Atom</a> and <a href="http://www.odata.org/documentation/json-format">Odata-JSON</a>. Apache Olingo OData2 has implemented this this format for error message.</p>
-<h3 id="debug-support">Debug Support</h3>
+<h3 id="debug-support">Debug Support<a class="headerlink" href="#debug-support" title="Permanent link">&para;</a></h3>
 <p>The OData V2 error message format is limited to the HTTP status codes and gives indicators for client errors (status code 4xx) and server errors (5xx). For development and support this is not sufficient because of more technical information is needed for doing a deep error analysis.</p>
 <p>Apache Olingo has implemented a feature to return more error information (stack traces, object states, runtime measurements …) within a response to ease the development and support use case. </p>
 <p>For productive uses cases this feature is by default off. The following explains how to enable the feature and gives options to a service implementation to switch if on and off e.g. role based or by configuration.</p>
-<h5 id="debugcallback">DebugCallback</h5>
+<h5 id="debugcallback">DebugCallback<a class="headerlink" href="#debugcallback" title="Permanent link">&para;</a></h5>
 <p>The debug feature can be enabled by the following callback implementation:</p>
 <div class="codehilite"><pre><span class="n">public</span> <span class="n">class</span> <span class="n">MyDebugCallback</span> <span class="n">implements</span> <span class="n">ODataDebugCallback</span> <span class="p">{</span>
   <span class="p">@</span><span class="n">Override</span>
@@ -108,7 +119,7 @@
 </pre></div>
 
 
-<h5 id="register-debugcallback">Register DebugCallback</h5>
+<h5 id="register-debugcallback">Register DebugCallback<a class="headerlink" href="#register-debugcallback" title="Permanent link">&para;</a></h5>
 <p>In your service factory (<code>ODataServiceFactory</code>) implement the following method to register the callback:</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="o">&lt;</span><span class="n">T</span> <span class="kd">extends</span> <span class="n">ODataCallback</span><span class="o">&gt;</span> <span class="n">T</span> <span class="n">getCallback</span><span class="o">(</span><span class="kd">final</span> <span class="n">Class</span><span class="o">&lt;?</span> <span class="kd">extends</span> <span class="n">ODataCallback</span><span class="o">&gt;</span> <span class="n">callbackInterface</span><span class="o">)</span> <span class="o">{</span> 
   <span class="n">T</span> <span class="n">callback</span>
@@ -125,7 +136,7 @@
 
 
 <p>If this is in place then the url query option odata-debug=json will return detailed error information in json format for each request.</p>
-<h5 id="query-for-debug-information">Query for Debug Information</h5>
+<h5 id="query-for-debug-information">Query for Debug Information<a class="headerlink" href="#query-for-debug-information" title="Permanent link">&para;</a></h5>
 <p><strong> JSON Debug View</strong></p>
 <p>Request url: http://localhost:8080/olingo-odata2-ref-web/ReferenceScenario.svc/?odata-debug=json</p>
 <p>Response:</p>
@@ -186,7 +197,7 @@
 <p>Request url: http://localhost:8080/olingo-odata2-ref-web-incubating/ReferenceScenario.svc/?odata-debug=html
 to get a self-contained HTML document with all information that is in the JSON
 output but can be viewed conveniently in a browser.</p>
-<h5 id="custom-debug-output">Custom Debug Output</h5>
+<h5 id="custom-debug-output">Custom Debug Output<a class="headerlink" href="#custom-debug-output" title="Permanent link">&para;</a></h5>
 <p>Starting with release 1.2, it is possible to create custom debug output.
 The complete formatting of the debug-support information can be implemented
 in a callback method.</p>
@@ -233,14 +244,14 @@ in a callback method.</p>
 the real work.</p>
 <p><strong>Please note</strong> that this callback is not called if the built-in debug output
 is requested as described above.</p>
-<h3 id="log-and-trace-support">Log and Trace Support</h3>
+<h3 id="log-and-trace-support">Log and Trace Support<a class="headerlink" href="#log-and-trace-support" title="Permanent link">&para;</a></h3>
 <p>Apache Olingo has no dependencies to any specific log and trace api (e.g. slf4j, log4j …) and with that it does not trace anything by default. This is to keep the library independent from a specific api so that it can be used on any JEE compliant platform independent from which l&amp;t api is offered there.</p>
 <p>Anyhow log and trace is required for productive use and the following recommendations are given:</p>
-<h5 id="servlet-filter">Servlet Filter</h5>
+<h5 id="servlet-filter">Servlet Filter<a class="headerlink" href="#servlet-filter" title="Permanent link">&para;</a></h5>
 <p>For tracing the http traffic (request url, query parameter, http headers, response code …) to and from the server it is recommended to implement a servlet filter on top of the service. This is completely independent from the Apache Olingo OData library and has no restrictions.</p>
-<h5 id="service-processor-implementation">Service Processor Implementation</h5>
+<h5 id="service-processor-implementation">Service Processor Implementation<a class="headerlink" href="#service-processor-implementation" title="Permanent link">&para;</a></h5>
 <p>To trace OData activities (read/write activities) at the server it is recommended to do that within a custom processor implementation. </p>
-<h5 id="error-callback">Error Callback</h5>
+<h5 id="error-callback">Error Callback<a class="headerlink" href="#error-callback" title="Permanent link">&para;</a></h5>
 <p>Because of OData requires to handle error situations someone can hook into the handling and trace information there.  </p>
 <p>Simply implement another <code>ODataCallback</code> interface and register it within a <code>ODataServiceFactory</code>.</p>
 <p>Callback:</p>

Modified: websites/staging/olingo/trunk/content/doc/odata2/tutorials/delta.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata2/tutorials/delta.html (original)
+++ websites/staging/olingo/trunk/content/doc/odata2/tutorials/delta.html Wed Jul  8 13:49:34 2015
@@ -86,7 +86,18 @@
 
 			</div><!--/.nav-collapse -->
         </div><!--/.container-fluid -->
-      </div><!-- Main component for a primary marketing message or call to action --><h1 id="delta-responses">Delta Responses</h1>
+      </div><!-- Main component for a primary marketing message or call to action --><style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="delta-responses">Delta Responses<a class="headerlink" href="#delta-responses" title="Permanent link">&para;</a></h1>
 <p>Delta responses is a feature on top of OData 2.0 for requesting changes. The feature is defined in OData 4.0 and this is a preliminary and lightweight implementation close to the OData 4.0 specification <a href="http://docs.oasis-open.org/odata/odata/v4.0/cos01/part1-protocol/odata-v4.0-cos01-part1-protocol.html#_Toc372793707">(see here)</a>.</p>
 <p>Because of delta responses are not defined in OData 2.0 this feature is optional.</p>
 <p>Features:</p>
@@ -95,9 +106,9 @@
 <li>Tombstones <a href="http://tools.ietf.org/html/rfc6721">RFC6721</a> for deleted entries in Atom format</li>
 <li>Deleted Entries in Json as a lightweight implementation of <a href="http://docs.oasis-open.org/odata/odata-json-format/v4.0/cos01/odata-json-format-v4.0-cos01.html#_Toc372793080">Delta Responses</a> </li>
 </ul>
-<h3 id="use-case">Use Case</h3>
+<h3 id="use-case">Use Case<a class="headerlink" href="#use-case" title="Permanent link">&para;</a></h3>
 <p>A client requests a (paged) feed. A server can add a delta link on the last feed page. Using the delta link returns only changed data of the feed to the client. Changed data are feed entries with changed properties or deleted entries.</p>
-<h3 id="implementation">Implementation</h3>
+<h3 id="implementation">Implementation<a class="headerlink" href="#implementation" title="Permanent link">&para;</a></h3>
 <p>A server has to implement the <code>TombstoneCallback</code> interface:</p>
 <div class="codehilite"><pre><span class="n">public</span> <span class="n">interface</span> <span class="n">TombstoneCallback</span> <span class="n">extends</span> <span class="n">ODataCallback</span> <span class="p">{</span>
 <span class="p">...</span>
@@ -133,7 +144,7 @@
 </pre></div>
 
 
-<h5 id="json-response">Json Response</h5>
+<h5 id="json-response">Json Response<a class="headerlink" href="#json-response" title="Permanent link">&para;</a></h5>
 <p>This is an example for a Json response:</p>
 <div class="codehilite"><pre>    <span class="p">[...]</span>
      <span class="p">{</span>
@@ -178,7 +189,7 @@
 </pre></div>
 
 
-<h5 id="atom-response">Atom Response</h5>
+<h5 id="atom-response">Atom Response<a class="headerlink" href="#atom-response" title="Permanent link">&para;</a></h5>
 <p>This is an example of an Atom delta response (tombstones, RFC6721)</p>
 <div class="codehilite"><pre><span class="nt">&lt;feed</span> <span class="err">...</span><span class="nt">&gt;</span>