Added: 
websites/staging/olingo/trunk/content/doc/odata4/tutorials/batchClientApi.html
==============================================================================
--- 
websites/staging/olingo/trunk/content/doc/odata4/tutorials/batchClientApi.html 
(added)
+++ 
websites/staging/olingo/trunk/content/doc/odata4/tutorials/batchClientApi.html 
Tue Sep 16 12:34:18 2014
@@ -0,0 +1,179 @@
+<!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 --><h2 id="batch-request-construction">Batch Request construction</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>
+<li>method(String) </li>
+<li>uri(String) </li>
+<li>contentId(String) </li>
+<li>headers(List<String>)</li>
+</ul>
+<pre><code>
+BatchQueryPart request = BatchQueryPart.method("GET").uri("$metadata").build();
+</pre>
+
+<p></code>
+<strong>Note:</strong> The valid method value is GET.</p>
+<p><strong>ChangeSet construction</strong>
+A BatchChangeSetPart is a representation of a single change request. You can 
use the following methods in order to fill out a change request:</p>
+<ul>
+<li>method(String)</li>
+<li>uri(String)</li>
+<li>headers(List<String>)</li>
+<li>contentId(String)</li>
+<li>body(String)</li>
+</ul>
+<pre><code>Map<String, String> changeSetHeaders = new HashMap<String, 
String>();
+changeSetHeaders.put("content-type", "application/json;odata=verbose");
+BatchChangeSetPart changeRequest = BatchChangeSetPart.method("PUT")
+.uri("Employees('2')/EmployeeName")
+.headers(changeSetHeaders)
+.body("{\"EmployeeName\":\"Frederic Fall MODIFIED\"}")
+.build();
+...
+</pre>
+
+<p></code>
+<strong>Note:</strong> The valid method values are POST, PUT, DELETE or 
MERGE.</p>
+<p>The change request has to become a part of a changeSet. For that you need 
to create a changeSet object and to attach the change request to this 
object.</p>
+<div class="codehilite"><pre><span class="p">...</span>
+<span class="n">BatchChangeSet</span> <span class="n">changeSet</span> <span 
class="p">=</span> <span class="n">BatchChangeSet</span><span 
class="p">.</span><span class="n">newBuilder</span><span 
class="p">().</span><span class="n">build</span><span class="p">();</span>
+<span class="n">changeSet</span><span class="p">.</span><span 
class="n">add</span><span class="p">(</span><span 
class="n">changeRequest</span><span class="p">);</span>
+</pre></div>
+
+
+<p><strong>Batch request payload construction</strong>
+After you collected all created parts, you can call the method 
writeBatchRequestBody(..) provided by EntityProvider</p>
+<div class="codehilite"><pre><span class="p">...</span>
+<span class="n">List</span><span class="o">&lt;</span><span 
class="n">BatchPart</span><span class="o">&gt;</span> <span 
class="n">batchParts</span> <span class="p">=</span> <span class="n">new</span> 
<span class="n">ArrayList</span><span class="o">&lt;</span><span 
class="n">BatchPart</span><span class="o">&gt;</span><span class="p">();</span>
+<span class="n">batchParts</span><span class="p">.</span><span 
class="n">add</span><span class="p">(</span><span class="n">request</span><span 
class="p">);</span>
+<span class="n">batchParts</span><span class="p">.</span><span 
class="n">add</span><span class="p">(</span><span 
class="n">changeSet</span><span class="p">);</span>
+
+<span class="n">InputStream</span> <span class="n">payload</span> <span 
class="p">=</span> <span class="n">EntityProvider</span><span 
class="p">.</span><span class="n">writeBatchRequest</span><span 
class="p">(</span><span class="n">batchParts</span><span class="p">,</span> 
<span class="n">BOUNDARY</span><span class="p">);</span>
+</pre></div>
+
+
+<p>The second parameter BOUNDARY is necessary information for the construction 
of the batch request payload. It is the value of the boundary parameter, that 
is set in Content-Type header of the batch request.</p>
+<p><strong>Batch Response interpretation</strong>
+Interpretation of the batch response payload
+You receive a list of single response by calling 
EntityProvider.parseBatchResponse(..)</p>
+<div class="codehilite"><pre><span class="n">List</span><span 
class="o">&lt;</span><span class="n">BatchSingleResponse</span><span 
class="o">&gt;</span> <span class="n">responses</span> <span class="p">=</span> 
<span class="n">EntityProvider</span><span class="p">.</span><span 
class="n">parseBatchResponse</span><span class="p">(</span><span 
class="n">responseBody</span><span class="p">,</span> <span 
class="n">contentType</span><span class="p">);</span>
+<span class="k">for</span> <span class="p">(</span><span 
class="n">BatchSingleResponse</span> <span class="n">response</span> <span 
class="p">:</span> <span class="n">responses</span><span class="p">)</span> 
<span class="p">{</span>
+      <span class="n">response</span><span class="p">.</span><span 
class="n">getStatusCode</span><span class="p">());</span>
+      <span class="n">response</span><span class="p">.</span><span 
class="n">getStatusInfo</span><span class="p">());</span>
+      <span class="n">response</span><span class="p">.</span><span 
class="n">getHeader</span><span class="p">(</span><span 
class="n">HttpHeaders</span><span class="p">.</span><span 
class="n">CONTENT_TYPE</span><span class="p">);</span>
+      <span class="n">response</span><span class="p">.</span><span 
class="n">getBody</span><span class="p">();</span>
+      <span class="n">response</span><span class="p">.</span><span 
class="n">getContentId</span><span class="p">();</span>
+<span class="p">}</span>
+</pre></div><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/odata4/tutorials/debug.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata4/tutorials/debug.html 
(added)
+++ websites/staging/olingo/trunk/content/doc/odata4/tutorials/debug.html Tue 
Sep 16 12:34:18 2014
@@ -0,0 +1,295 @@
+<!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="debug-support-and-error-handling">Debug Support and Error 
Handling</h1>
+<hr />
+<h3 id="odata-error-conditions">OData Error Conditions</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>
+<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>
+<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>
+  <span class="n">public</span> <span class="n">boolean</span> <span 
class="n">isDebugEnabled</span><span class="p">()</span> <span 
class="p">{</span>  
+    <span class="n">boolean</span> <span class="n">isDebug</span> <span 
class="p">=</span> …<span class="p">;</span> <span class="o">//</span> <span 
class="n">true</span><span class="o">|</span><span 
class="n">configuration</span><span class="o">|</span><span 
class="n">user</span> <span class="n">role</span> <span class="n">check</span>
+    <span class="k">return</span> <span class="n">isDebug</span><span 
class="p">;</span> 
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h5 id="register-debugcallback">Register DebugCallback</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>
+
+  <span class="nf">if</span> <span class="o">(</span><span 
class="n">callbackInterface</span><span class="o">.</span><span 
class="na">isAssignableFrom</span><span class="o">(</span><span 
class="n">MyDebugCallback</span><span class="o">.</span><span 
class="na">class</span><span class="o">))</span> <span class="o">{</span>
+    <span class="n">callback</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">T</span><span class="o">)</span> <span 
class="k">new</span> <span class="n">MyDebugCallback</span><span 
class="o">();</span>
+  <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
+    <span class="n">callback</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">T</span><span class="o">)</span> <span 
class="kd">super</span><span class="o">.</span><span 
class="na">getCallback</span><span class="o">(</span><span 
class="n">callbackInterface</span><span class="o">);</span>
+  <span class="o">}</span>
+
+  <span class="k">return</span> <span class="n">callback</span><span 
class="o">;</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<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>
+<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>
+<div class="codehilite"><pre><span class="p">{</span>
+  <span class="nt">&quot;body&quot;</span><span class="p">:</span> <span 
class="s2">&quot;&lt;?xml version=&#39;1.0&#39; 
encoding=&#39;utf-8&#39;?&gt;&lt;service 
xml:base=\&quot;http://localhost:8080/olingo-odata2-ref-web/ReferenceScenario.svc/\&quot;
 xmlns=\&quot;http://www.w3.org/2007/app\&quot; 
xmlns:atom=\&quot;http://www.w3.org/2005/Atom\&quot;&gt;&lt;workspace&gt;&lt;atom:title&gt;Default&lt;/atom:title&gt;&lt;collection
 
href=\&quot;Employees\&quot;&gt;&lt;atom:title&gt;Employees&lt;/atom:title&gt;&lt;/collection&gt;&lt;collection
 
href=\&quot;Teams\&quot;&gt;&lt;atom:title&gt;Teams&lt;/atom:title&gt;&lt;/collection&gt;&lt;collection
 
href=\&quot;Rooms\&quot;&gt;&lt;atom:title&gt;Rooms&lt;/atom:title&gt;&lt;/collection&gt;&lt;collection
 
href=\&quot;Managers\&quot;&gt;&lt;atom:title&gt;Managers&lt;/atom:title&gt;&lt;/collection&gt;&lt;collection
 
href=\&quot;Buildings\&quot;&gt;&lt;atom:title&gt;Buildings&lt;/atom:title&gt;&lt;/collection&gt;&lt;collection
 href=\&quot;Container2.P
 
hotos\&quot;&gt;&lt;atom:title&gt;Photos&lt;/atom:title&gt;&lt;/collection&gt;&lt;/workspace&gt;&lt;/service&gt;&quot;</span><span
 class="p">,</span>
+  <span class="nt">&quot;request&quot;</span><span class="p">:</span> <span 
class="p">{</span>
+    <span class="nt">&quot;method&quot;</span><span class="p">:</span> <span 
class="s2">&quot;GET&quot;</span><span class="p">,</span>
+    <span class="nt">&quot;uri&quot;</span><span class="p">:</span> <span 
class="s2">&quot;https://localhost:8080/olingo-odata2-ref-web/ReferenceScenario.svc/?odata-debug=json&quot;</span><span
 class="p">,</span>
+    <span class="nt">&quot;headers&quot;</span><span class="p">:</span> <span 
class="p">{</span>
+      <span class="nt">&quot;Accept&quot;</span><span class="p">:</span> <span 
class="s2">&quot;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&quot;</span><span
 class="p">,</span>
+      <span class="nt">&quot;accept-encoding&quot;</span><span 
class="p">:</span> <span class="s2">&quot;gzip, deflate&quot;</span><span 
class="p">,</span>
+      <span class="nt">&quot;accept-language&quot;</span><span 
class="p">:</span> <span 
class="s2">&quot;de-de,de;q=0.8,en-us;q=0.5,en;q=0.3&quot;</span><span 
class="p">,</span>
+      <span class="nt">&quot;connection&quot;</span><span class="p">:</span> 
<span class="s2">&quot;keep-alive&quot;</span><span class="p">,</span>
+      <span class="nt">&quot;Content-Type&quot;</span><span class="p">:</span> 
<span class="kc">null</span><span class="p">,</span>
+      <span class="nt">&quot;cookie&quot;</span><span class="p">:</span> <span 
class="s2">&quot;JSESSIONID=C6A2403F354B61B1E645744FABCB7FB6C6BC5DA41BC841823647CF2DFF001556;
 BIGipServerlocalhost=3543090186.26911.0000&quot;</span><span class="p">,</span>
+      <span class="nt">&quot;host&quot;</span><span class="p">:</span> <span 
class="s2">&quot;localhost:8080&quot;</span><span class="p">,</span>
+      <span class="nt">&quot;user-agent&quot;</span><span class="p">:</span> 
<span class="s2">&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) 
Gecko/20100101 Firefox/24.0&quot;</span><span class="p">,</span>
+      <span class="nt">&quot;x-forwarded-for&quot;</span><span 
class="p">:</span> <span class="s2">&quot;173.12.210.11&quot;</span>
+    <span class="p">}</span>
+  <span class="p">},</span>
+  <span class="nt">&quot;response&quot;</span><span class="p">:</span> <span 
class="p">{</span>
+    <span class="nt">&quot;status&quot;</span><span class="p">:</span> <span 
class="p">{</span>
+      <span class="nt">&quot;code&quot;</span><span class="p">:</span> <span 
class="mi">200</span><span class="p">,</span>
+      <span class="nt">&quot;info&quot;</span><span class="p">:</span> <span 
class="s2">&quot;OK&quot;</span>
+    <span class="p">},</span>
+    <span class="nt">&quot;headers&quot;</span><span class="p">:</span> <span 
class="p">{</span>
+      <span class="nt">&quot;DataServiceVersion&quot;</span><span 
class="p">:</span> <span class="s2">&quot;1.0&quot;</span><span 
class="p">,</span>
+      <span class="nt">&quot;Content-Type&quot;</span><span class="p">:</span> 
<span class="s2">&quot;application/xml;charset=utf-8&quot;</span>
+    <span class="p">}</span>
+  <span class="p">},</span>
+  <span class="nt">&quot;runtime&quot;</span><span class="p">:</span> <span 
class="p">[{</span>
+      <span class="nt">&quot;class&quot;</span><span class="p">:</span> <span 
class="s2">&quot;ODataRequestHandler&quot;</span><span class="p">,</span>
+      <span class="nt">&quot;method&quot;</span><span class="p">:</span> <span 
class="s2">&quot;handle&quot;</span><span class="p">,</span>
+      <span class="nt">&quot;duration&quot;</span><span class="p">:</span> 
<span class="mi">1911</span><span class="p">,</span>
+      <span class="nt">&quot;memory&quot;</span><span class="p">:</span> <span 
class="mi">191</span><span class="p">,</span>
+      <span class="nt">&quot;children&quot;</span><span class="p">:</span> 
<span class="p">[</span>
+        <span class="p">{</span>
+          <span class="nt">&quot;class&quot;</span><span class="p">:</span> 
<span class="s2">&quot;UriParserImpl&quot;</span><span class="p">,</span>
+          <span class="nt">&quot;method&quot;</span><span class="p">:</span> 
<span class="s2">&quot;parse&quot;</span><span class="p">,</span>
+          <span class="nt">&quot;duration&quot;</span><span class="p">:</span> 
<span class="mi">66</span><span class="p">,</span>
+          <span class="nt">&quot;memory&quot;</span><span class="p">:</span> 
<span class="mi">0</span><span class="p">,</span>
+          <span class="nt">&quot;children&quot;</span><span class="p">:</span> 
<span class="p">{}</span>
+        <span class="p">},</span>
+        <span class="p">{</span>
+          <span class="nt">&quot;class&quot;</span><span class="p">:</span> 
<span class="s2">&quot;Dispatcher&quot;</span><span class="p">,</span>
+          <span class="nt">&quot;method&quot;</span><span class="p">:</span> 
<span class="s2">&quot;dispatch&quot;</span><span class="p">,</span>
+          <span class="nt">&quot;duration&quot;</span><span class="p">:</span> 
<span class="mi">1029</span><span class="p">,</span>
+          <span class="nt">&quot;memory&quot;</span><span class="p">:</span> 
<span class="mi">95</span><span class="p">,</span>
+          <span class="nt">&quot;children&quot;</span><span class="p">:</span> 
<span class="p">{}</span>
+        <span class="p">}</span>
+      <span class="p">]</span>
+    <span class="p">}]</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p><strong> HTML Debug View</strong></p>
+<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>
+<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>
+<p>Add to the already existing <code>getCallback</code> method before the line 
with <code>else</code> a condition check whether the given 
<code>ODataCallback</code> is a <code>DebugWrapperCallback</code>.</p>
+<div class="codehilite"><pre><span class="o">}</span> <span 
class="k">else</span> <span class="k">if</span> <span class="o">(</span><span 
class="n">callbackInterface</span><span class="o">.</span><span 
class="na">isAssignableFrom</span><span class="o">(</span><span 
class="n">ODataDebugResponseWrapperCallback</span><span class="o">.</span><span 
class="na">class</span><span class="o">))</span> <span class="o">{</span>
+  <span class="n">callback</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">T</span><span class="o">)</span> <span 
class="k">new</span> <span class="n">DebugWrapperCallback</span><span 
class="o">();</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>which then results in following method</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>
+
+  <span class="nf">if</span> <span class="o">(</span><span 
class="n">callbackInterface</span><span class="o">.</span><span 
class="na">isAssignableFrom</span><span class="o">(</span><span 
class="n">MyDebugCallback</span><span class="o">.</span><span 
class="na">class</span><span class="o">))</span> <span class="o">{</span>
+    <span class="n">callback</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">T</span><span class="o">)</span> <span 
class="k">new</span> <span class="n">MyDebugCallback</span><span 
class="o">();</span>
+  <span class="o">}</span> <span class="k">else</span> <span 
class="k">if</span> <span class="o">(</span><span 
class="n">callbackInterface</span><span class="o">.</span><span 
class="na">isAssignableFrom</span><span class="o">(</span><span 
class="n">ODataDebugResponseWrapperCallback</span><span class="o">.</span><span 
class="na">class</span><span class="o">))</span> <span class="o">{</span>
+    <span class="n">callback</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">T</span><span class="o">)</span> <span 
class="k">new</span> <span class="n">DebugWrapperCallback</span><span 
class="o">();</span>
+  <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
+    <span class="n">callback</span> <span class="o">=</span> <span 
class="o">(</span><span class="n">T</span><span class="o">)</span> <span 
class="kd">super</span><span class="o">.</span><span 
class="na">getCallback</span><span class="o">(</span><span 
class="n">callbackInterface</span><span class="o">);</span>
+  <span class="o">}</span>
+
+  <span class="k">return</span> <span class="n">callback</span><span 
class="o">;</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>and implement the callback class</p>
+<div class="codehilite"><pre><span class="kd">private</span> <span 
class="kd">final</span> <span class="kd">class</span> <span 
class="nc">DebugWrapperCallback</span> <span class="kd">implements</span> <span 
class="n">ODataDebugResponseWrapperCallback</span> <span class="o">{</span>
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="n">ODataResponse</span> <span 
class="nf">handle</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">final</span> <span 
class="n">ODataRequest</span> <span class="n">request</span><span 
class="o">,</span> <span class="kd">final</span> <span 
class="n">ODataResponse</span> <span class="n">response</span><span 
class="o">,</span>
+      <span class="kd">final</span> <span class="n">UriInfo</span> <span 
class="n">uriInfo</span><span class="o">,</span> <span class="kd">final</span> 
<span class="n">Exception</span> <span class="n">exception</span><span 
class="o">)</span> <span class="o">{</span>
+    <span class="k">if</span> <span class="o">(</span><span 
class="s">&quot;true&quot;</span><span class="o">.</span><span 
class="na">equals</span><span class="o">(</span><span 
class="n">request</span><span class="o">.</span><span 
class="na">getQueryParameters</span><span class="o">().</span><span 
class="na">get</span><span class="o">(</span><span 
class="s">&quot;my-debug&quot;</span><span class="o">)))</span> <span 
class="o">{</span>
+      <span class="k">return</span> <span 
class="n">DebugResponseWrapper</span><span class="o">.</span><span 
class="na">handle</span><span class="o">(</span><span 
class="n">context</span><span class="o">,</span> <span 
class="n">request</span><span class="o">,</span> <span 
class="n">response</span><span class="o">,</span> <span 
class="n">uriInfo</span><span class="o">,</span> <span 
class="n">exception</span><span class="o">);</span>
+    <span class="o">}</span> <span class="k">else</span> <span 
class="o">{</span>
+      <span class="k">return</span> <span class="n">response</span><span 
class="o">;</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>where <code>DebugResponseWrapper</code> is a class you have to implement 
which does
+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>
+<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>
+<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>
+<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>
+<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>
+<div class="codehilite"><pre><span class="n">public</span> <span 
class="n">class</span> <span class="n">MyErrorCallback</span> <span 
class="n">implements</span> <span class="n">ODataErrorCallback</span> <span 
class="p">{</span>
+  <span class="p">@</span><span class="n">Override</span>
+  <span class="n">public</span> <span class="n">ODataResponse</span> <span 
class="n">handleError</span><span class="p">(</span><span 
class="n">ODataErrorContext</span> <span class="n">context</span><span 
class="p">)</span> <span class="n">throws</span> <span 
class="n">ODataApplicationException</span> <span class="p">{</span> 
+    <span class="n">LOGGER</span><span class="p">.</span><span 
class="n">severe</span><span class="p">(</span><span 
class="n">context</span><span class="p">.</span><span 
class="n">getException</span><span class="p">().</span><span 
class="n">getClass</span><span class="p">().</span><span 
class="n">getName</span><span class="p">()</span> <span class="o">+</span> 
&quot;<span class="p">:</span>&quot; <span class="o">+</span> <span 
class="n">context</span><span class="p">.</span><span 
class="n">getMessage</span><span class="p">());</span> 
+        <span class="k">return</span> <span 
class="n">EntityProvider</span><span class="p">.</span><span 
class="n">writeErrorDocument</span><span class="p">(</span><span 
class="n">context</span><span class="p">);</span> 
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>Register Callback:</p>
+<div class="codehilite"><pre><span class="kr">public</span> <span 
class="o">&lt;</span><span class="nx">T</span> <span class="kr">extends</span> 
<span class="nx">ODataCallback</span><span class="o">&gt;</span> <span 
class="nx">T</span> <span class="nx">getCallback</span><span 
class="p">(</span><span class="kr">final</span> <span 
class="nx">Class</span><span class="cp">&lt;?</span> <span 
class="k">extends</span> <span class="nx">ODataCallback</span><span 
class="o">&gt;</span> <span class="nx">callbackInterface</span><span 
class="p">)</span> <span class="p">{</span> 
+  <span class="nx">T</span> <span class="nx">callback</span>
+
+  <span class="k">if</span> <span class="p">(</span><span 
class="nx">callbackInterface</span><span class="o">.</span><span 
class="nx">isAssignableFrom</span><span class="p">(</span><span 
class="nx">MyDebugCallback</span><span class="o">.</span><span 
class="nx">class</span><span class="p">))</span> <span class="p">{</span>
+    <span class="nx">callback</span> <span class="o">=</span> <span 
class="p">(</span><span class="nx">T</span><span class="p">)</span> <span 
class="k">new</span> <span class="nx">MyDebugCallback</span><span 
class="p">();</span>
+  <span class="p">}</span> <span class="k">else</span> <span 
class="k">if</span> <span class="p">(</span><span 
class="nx">callbackInterface</span><span class="o">.</span><span 
class="nx">isAssignableFrom</span><span class="p">(</span><span 
class="nx">MyErrorCallback</span><span class="o">.</span><span 
class="nx">class</span><span class="p">))</span> <span class="p">{</span>
+    <span class="nx">callback</span> <span class="o">=</span> <span 
class="p">(</span><span class="nx">T</span><span class="p">)</span> <span 
class="k">new</span> <span class="nx">MyErrorCallback</span><span 
class="p">();</span>
+  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+    <span class="nx">callback</span> <span class="o">=</span> <span 
class="p">(</span><span class="nx">T</span><span class="p">)</span> <span 
class="nx">super</span><span class="o">.</span><span 
class="nx">getCallback</span><span class="p">(</span><span 
class="nx">callbackInterface</span><span class="p">);</span>
+  <span class="p">}</span>
+
+  <span class="k">return</span> <span class="nx">callback</span><span 
class="p">;</span>
+<span class="p">}</span>
+</pre></div><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/odata4/tutorials/delta.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata4/tutorials/delta.html 
(added)
+++ websites/staging/olingo/trunk/content/doc/odata4/tutorials/delta.html Tue 
Sep 16 12:34:18 2014
@@ -0,0 +1,231 @@
+<!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="delta-responses">Delta Responses</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>
+<ul>
+<li>Delta Links (for Atom and Json)</li>
+<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>
+<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>
+<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>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>Basically the implementation of this interface has to carry information 
about deleted data and the delta link which is realized as custom query 
option:</p>
+<div class="codehilite"><pre><span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span>?!<span 
class="n">deltatoken</span><span class="p">=</span>1234
+</pre></div>
+
+
+<p>Finally the following code has to go into a 
<code>ODataSingleProcessor</code> implementation:</p>
+<div class="codehilite"><pre><span class="cm">/**</span>
+<span class="cm"> * @see EntitySetProcessor</span>
+<span class="cm"> */</span>
+<span class="p">@</span><span class="n">Override</span>
+<span class="n">public</span> <span class="n">ODataResponse</span> <span 
class="n">readEntitySet</span><span class="p">(</span><span 
class="k">final</span> <span class="n">GetEntitySetUriInfo</span> <span 
class="n">uriInfo</span><span class="p">,</span> <span class="k">final</span> 
<span class="n">String</span> <span class="n">contentType</span><span 
class="p">)</span> <span class="n">throws</span> <span 
class="n">ODataException</span> <span class="p">{</span>
+
+  <span class="p">[...]</span>
+
+  <span class="n">Map</span><span class="o">&lt;</span><span 
class="n">String</span><span class="p">,</span> <span 
class="n">ODataCallback</span><span class="o">&gt;</span> <span 
class="n">callbacks</span> <span class="o">=</span> <span class="k">new</span> 
<span class="n">HashMap</span><span class="o">&lt;</span><span 
class="n">String</span><span class="p">,</span> <span 
class="n">ODataCallback</span><span class="o">&gt;</span><span 
class="p">();</span>
+  <span class="n">callbacks</span><span class="p">.</span><span 
class="n">put</span><span class="p">(</span><span 
class="n">TombstoneCallback</span><span class="p">.</span><span 
class="no">CALLBACK_KEY_TOMBSTONE</span><span class="p">,</span> <span 
class="n">tombstoneCallback</span><span class="p">);</span>
+
+  <span class="n">EntityProviderWriteProperties</span> <span 
class="n">properties</span> <span class="o">=</span> <span 
class="n">EntityProviderWriteProperties</span><span class="p">.</span><span 
class="n">serviceRoot</span><span class="p">(</span><span class="k">new</span> 
<span class="no">URI</span><span class="p">(</span><span 
class="no">BASE_URI</span><span class="p">)).</span><span 
class="n">callbacks</span><span class="p">(</span><span 
class="n">callbacks</span><span class="p">).</span><span 
class="n">build</span><span class="p">();</span>
+
+  <span class="k">final</span> <span class="n">ODataResponse</span> <span 
class="n">response</span> <span class="o">=</span> <span class="k">new</span> 
<span class="n">JsonEntityProvider</span><span class="p">().</span><span 
class="n">writeFeed</span><span class="p">(</span><span 
class="n">entitySet</span><span class="p">,</span> <span 
class="n">roomsData</span><span class="p">,</span> <span 
class="n">properties</span><span class="p">);</span>
+
+  <span class="p">[...]</span>
+
+  <span class="k">return</span> <span class="n">response</span><span 
class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h5 id="json-response">Json Response</h5>
+<p>This is an example for a Json response:</p>
+<div class="codehilite"><pre>    <span class="p">[...]</span>
+     <span class="p">{</span>
+        &quot;<span class="n">__metadata</span>&quot;<span class="p">:{</span>
+           &quot;<span class="n">id</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span><span class="p">(</span><span 
class="s">&#39;2&#39;</span><span class="p">)</span>&quot;<span 
class="p">,</span>
+           &quot;<span class="n">uri</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span><span class="p">(</span><span 
class="s">&#39;2&#39;</span><span class="p">)</span>&quot;<span 
class="p">,</span>
+           &quot;<span class="n">type</span>&quot;<span 
class="p">:</span>&quot;<span class="n">RefScenario</span><span 
class="p">.</span><span class="n">Room</span>&quot;<span class="p">,</span>
+           &quot;<span class="n">etag</span>&quot;<span 
class="p">:</span>&quot;<span class="n">W</span><span 
class="o">/\</span>&quot;2<span class="o">\</span>&quot;&quot;
+        <span class="p">},</span>
+        &quot;<span class="n">Id</span>&quot;<span 
class="p">:</span>&quot;2&quot;<span class="p">,</span>
+        &quot;<span class="n">Name</span>&quot;<span class="p">:</span><span 
class="n">null</span><span class="p">,</span>
+        &quot;<span class="n">Seats</span>&quot;<span 
class="p">:</span>66<span class="p">,</span>
+        &quot;<span class="n">Version</span>&quot;<span 
class="p">:</span>2<span class="p">,</span>
+        &quot;<span class="n">nr_Employees</span>&quot;<span 
class="p">:{</span>
+           &quot;<span class="n">__deferred</span>&quot;<span 
class="p">:{</span>
+              &quot;<span class="n">uri</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span><span class="p">(</span><span 
class="s">&#39;2&#39;</span><span class="p">)</span><span 
class="o">/</span><span class="n">nr_Employees</span>&quot;
+           <span class="p">}</span>
+        <span class="p">},</span>
+        &quot;<span class="n">nr_Building</span>&quot;<span class="p">:{</span>
+           &quot;<span class="n">__deferred</span>&quot;<span 
class="p">:{</span>
+              &quot;<span class="n">uri</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span><span class="p">(</span><span 
class="s">&#39;2&#39;</span><span class="p">)</span><span 
class="o">/</span><span class="n">nr_Building</span>&quot;
+           <span class="p">}</span>
+        <span class="p">}</span>
+     <span class="p">},</span>
+     <span class="p">{</span>
+        &quot;<span class="p">@</span><span class="n">odata</span><span 
class="p">.</span><span class="n">context</span>&quot;<span 
class="p">:</span>&quot;$<span class="n">metadata</span>#<span 
class="n">Rooms</span><span class="o">/</span>$<span 
class="n">deletedEntity</span>&quot;<span class="p">,</span>
+        &quot;<span class="n">id</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span><span class="p">(</span><span 
class="s">&#39;3&#39;</span><span class="p">)</span>&quot;
+     <span class="p">},</span>
+     <span class="p">{</span>
+        &quot;<span class="p">@</span><span class="n">odata</span><span 
class="p">.</span><span class="n">context</span>&quot;<span 
class="p">:</span>&quot;$<span class="n">metadata</span>#<span 
class="n">Rooms</span><span class="o">/</span>$<span 
class="n">deletedEntity</span>&quot;<span class="p">,</span>
+        &quot;<span class="n">id</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span><span class="p">(</span><span 
class="s">&#39;4&#39;</span><span class="p">)</span>&quot;
+     <span class="p">},</span>
+     <span class="p">{</span>
+        &quot;<span class="p">@</span><span class="n">odata</span><span 
class="p">.</span><span class="n">context</span>&quot;<span 
class="p">:</span>&quot;$<span class="n">metadata</span>#<span 
class="n">Rooms</span><span class="o">/</span>$<span 
class="n">deletedEntity</span>&quot;<span class="p">,</span>
+        &quot;<span class="n">id</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span><span class="p">(</span><span 
class="s">&#39;5&#39;</span><span class="p">)</span>&quot;
+     <span class="p">},</span>
+
+  <span class="p">],</span>
+  &quot;<span class="n">__delta</span>&quot;<span 
class="p">:</span>&quot;<span class="n">http</span><span 
class="p">:</span><span class="o">//</span><span class="n">host</span><span 
class="p">:</span>80<span class="o">/</span><span class="n">service</span><span 
class="o">/</span><span class="n">Rooms</span>?!<span 
class="n">deltatoken</span><span class="p">=</span>1234&quot;
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h5 id="atom-response">Atom Response</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>
+
+[..]
+
+<span class="nt">&lt;entry</span> <span class="na">m:etag=</span><span 
class="s">&quot;W/&amp;quot;3&amp;quot;&quot;</span><span class="nt">&gt;</span>
+    <span 
class="nt">&lt;id&gt;</span>http://host:80/service/Rooms(&#39;2&#39;)<span 
class="nt">&lt;/id&gt;</span>
+    <span class="nt">&lt;title</span> <span class="na">type=</span><span 
class="s">&quot;text&quot;</span><span class="nt">&gt;</span>Rooms<span 
class="nt">&lt;/title&gt;</span>
+    <span class="nt">&lt;updated&gt;</span>2014-01-14T18:11:06.681+01:00<span 
class="nt">&lt;/updated&gt;</span>
+    <span class="nt">&lt;category</span> <span class="na">term=</span><span 
class="s">&quot;RefScenario.Room&quot;</span> <span 
class="na">scheme=</span><span 
class="s">&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/scheme&quot;</span><span
 class="nt">/&gt;</span>
+    <span class="nt">&lt;link</span> <span class="na">href=</span><span 
class="s">&quot;Rooms(&#39;2&#39;)&quot;</span> <span 
class="na">rel=</span><span class="s">&quot;edit&quot;</span> <span 
class="na">title=</span><span class="s">&quot;Room&quot;</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;link</span> <span class="na">href=</span><span 
class="s">&quot;Rooms(&#39;2&#39;)/nr_Employees&quot;</span> <span 
class="na">rel=</span><span 
class="s">&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/related/nr_Employees&quot;</span>
 <span class="na">title=</span><span class="s">&quot;nr_Employees&quot;</span> 
<span class="na">type=</span><span 
class="s">&quot;application/atom+xml;type=feed&quot;</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;link</span> <span class="na">href=</span><span 
class="s">&quot;Rooms(&#39;2&#39;)/nr_Building&quot;</span> <span 
class="na">rel=</span><span 
class="s">&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/related/nr_Building&quot;</span>
 <span class="na">title=</span><span class="s">&quot;nr_Building&quot;</span> 
<span class="na">type=</span><span 
class="s">&quot;application/atom+xml;type=entry&quot;</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;content</span> <span class="na">type=</span><span 
class="s">&quot;application/xml&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;m:properties&gt;</span>
+        <span class="nt">&lt;d:Id&gt;</span>2<span 
class="nt">&lt;/d:Id&gt;</span>
+        <span class="nt">&lt;d:Name&gt;</span>Neu Schwanstein2<span 
class="nt">&lt;/d:Name&gt;</span>
+        <span class="nt">&lt;d:Seats&gt;</span>20<span 
class="nt">&lt;/d:Seats&gt;</span>
+        <span class="nt">&lt;d:Version&gt;</span>3<span 
class="nt">&lt;/d:Version&gt;</span>
+    <span class="nt">&lt;/m:properties&gt;</span>
+    <span class="nt">&lt;/content&gt;</span>
+<span class="nt">&lt;/entry&gt;</span>
+<span class="nt">&lt;at:deleted-entry</span> <span class="na">ref=</span><span 
class="s">&quot;http://host:80/service/Rooms(&#39;2&#39;)&quot;</span> <span 
class="na">when=</span><span 
class="s">&quot;2014-01-14T18:11:06.682+01:00&quot;</span><span 
class="nt">/&gt;</span>
+<span class="nt">&lt;link</span> <span class="na">rel=</span><span 
class="s">&quot;delta&quot;</span> <span class="na">href=</span><span 
class="s">&quot;http://host:80/service/Rooms?!deltatoken=1234&quot;</span><span 
class="nt">/&gt;</span>
+<span class="nt">&lt;/feed&gt;</span>
+</pre></div><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/odata4/tutorials/deltaClient.html
==============================================================================
--- websites/staging/olingo/trunk/content/doc/odata4/tutorials/deltaClient.html 
(added)
+++ websites/staging/olingo/trunk/content/doc/odata4/tutorials/deltaClient.html 
Tue Sep 16 12:34:18 2014
@@ -0,0 +1,161 @@
+<!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="consuming-delta-responses">Consuming Delta Responses</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>How delta responses can be produced by an OData service is documented here: 
<a href="/doc/odata2/tutorials/delta.html">server side delta responses</a>.</p>
+<h3 id="use-case">Use Case</h3>
+<p>A client reads a feed and later wants to get only the update of changed and 
deleted entries. </p>
+<h3 id="principle">Principle</h3>
+<p>A client has to read a complete (paged) feed. With the last feed page the 
service has to provide a delta link instead of a next link. A delta link us 
usually the same feed url containing a delta token as proprietary query 
parameter. With the delta link the client can query the service again and gets 
back a delta feed containing entries which were changed or deleted since the 
complete feed was received.</p>
+<p><img alt="Class Diagram Delta Feeds" src="/img/DeltaFeedClassDiagram.png" 
/></p>
+<h3 id="examples">Examples</h3>
+<p>Example for a delta link: 
<code>http://&lt;host&gt;:&lt;port&gt;/odata/Rooms?!deltatoken=123</code></p>
+<h5 id="delta-feed-handling">Delta Feed Handling</h5>
+<p>Depends on the general client sample <a href="...">here</a></p>
+<div class="codehilite"><pre><span class="c1">// retrieve a feed</span>
+<span class="n">ODataFeed</span> <span class="n">feed</span> <span 
class="o">=</span> <span class="n">client</span><span class="p">.</span><span 
class="n">readFeed</span><span class="p">(</span><span 
class="s">&quot;Container1&quot;</span><span class="p">,</span> <span 
class="s">&quot;Rooms&quot;</span><span class="p">,</span> <span 
class="n">contentType</span><span class="p">);</span>
+<span class="n">String</span> <span class="n">deltaLink</span> <span 
class="o">=</span> <span class="n">feed</span><span class="p">.</span><span 
class="n">getFeedMetadata</span><span class="p">().</span><span 
class="n">getDeltaLink</span><span class="p">();</span>
+
+<span class="c1">// store feed data</span>
+<span class="n">List</span><span class="o">&lt;</span><span 
class="n">ODataEntry</span><span class="o">&gt;</span> <span 
class="n">entries</span> <span class="o">=</span> <span 
class="n">feed</span><span class="p">.</span><span 
class="n">getEntries</span><span class="p">();</span>
+
+<span class="c1">// get delta link from feed</span>
+<span class="n">String</span> <span class="n">deltaLink</span> <span 
class="o">=</span> <span class="n">feed</span><span class="p">.</span><span 
class="n">getFeedMetadata</span><span class="p">().</span><span 
class="n">getDeltaLink</span><span class="p">();</span>
+
+<span class="c1">// query delta feed using delta link</span>
+<span class="n">ODataDeltaFeed</span> <span class="n">deltaFeed</span> <span 
class="o">=</span> <span class="n">client</span><span class="p">.</span><span 
class="n">readDeltaFeed</span><span class="p">(</span><span 
class="s">&quot;Container1&quot;</span><span class="p">,</span> <span 
class="s">&quot;Rooms&quot;</span><span class="p">,</span> <span 
class="n">contentType</span><span class="p">,</span> <span 
class="n">deltaLink</span><span class="p">);</span>
+
+<span class="n">List</span><span class="o">&lt;</span><span 
class="n">ODataEntry</span><span class="o">&gt;</span> <span 
class="n">changedEntries</span> <span class="o">=</span> <span 
class="n">deltaFeed</span><span class="p">.</span><span 
class="n">getEntries</span><span class="p">();</span>
+<span class="n">List</span><span class="o">&lt;</span><span 
class="n">DeletedEntryMetada</span><span class="p">)</span> <span 
class="n">deletedEntries</span> <span class="o">=</span> <span 
class="n">deltaFeed</span><span class="p">.</span><span 
class="n">getDeletedEntries</span><span class="p">();</span>
+
+<span class="c1">// proceed with data handling of entries, changedEntries and 
deletedEntries</span>
+</pre></div>
+
+
+<h5 id="response-deserialization">Response Deserialization</h5>
+<p>Precondition: Query the delta link using any HTTP client.</p>
+<div class="codehilite"><pre><span class="n">InputStream</span> <span 
class="n">content</span> <span class="p">=</span> <span class="p">...;</span> 
<span class="o">//</span> <span class="n">retrieve</span> <span 
class="n">content</span>
+
+<span class="n">EdmEntityContainer</span> <span 
class="n">entityContainer</span> <span class="p">=</span> <span 
class="n">edm</span><span class="p">.</span><span 
class="n">getEntityContainer</span><span class="p">(</span>&quot;<span 
class="n">Container1</span>&quot;<span class="p">);</span>
+
+<span class="n">ODataFeed</span> <span class="n">deltaFeed</span> <span 
class="p">=</span> <span class="n">EntityProvider</span><span 
class="p">.</span><span class="n">readDeltaFeed</span><span 
class="p">(</span><span class="n">contentType</span><span class="p">,</span> 
<span class="n">entityContainer</span><span class="p">.</span><span 
class="n">getEntitySet</span><span class="p">(</span>&quot;<span 
class="n">Rooms</span>&quot;<span class="p">),</span> 
+  <span class="n">content</span><span class="p">,</span> <span 
class="n">EntityProviderReadProperties</span><span class="p">.</span><span 
class="n">init</span><span class="p">().</span><span 
class="n">build</span><span class="p">());</span>
+</pre></div>
+
+
+<h3 id="links">Links</h3>
+<ul>
+<li>Delta Links (for Atom and Json)</li>
+<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><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