Author: buildbot
Date: Tue Oct 13 10:50:15 2015
New Revision: 968746
Log:
Staging update by buildbot for olingo
Modified:
websites/staging/olingo/trunk/content/ (props changed)
websites/staging/olingo/trunk/content/doc/odata4/tutorials/media/tutorial_media.html
Propchange: websites/staging/olingo/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Oct 13 10:50:15 2015
@@ -1 +1 @@
-1708321
+1708322
Modified:
websites/staging/olingo/trunk/content/doc/odata4/tutorials/media/tutorial_media.html
==============================================================================
---
websites/staging/olingo/trunk/content/doc/odata4/tutorials/media/tutorial_media.html
(original)
+++
websites/staging/olingo/trunk/content/doc/odata4/tutorials/media/tutorial_media.html
Tue Oct 13 10:50:15 2015
@@ -142,7 +142,7 @@ This tutorial can be found in subdirecto
<li>Implement the interface <code>MediaEntityProcessor</code></li>
</ul>
<h3 id="extend-the-metadata-document">Extend the metadata document<a
class="headerlink" href="#extend-the-metadata-document" title="Permanent
link">¶</a></h3>
-<p>If you have read the prevois tutorials, you should be familiar with the
definition entity types. The only difference to regular (Non media enties) is,
that they have a <code>hasStream</code> Property. If this property is not
provided it defaults to false. So add the following code to class
<code>DemoEdmProvider</code>:</p>
+<p>If you have read the prevois tutorials, you should be familiar with the
definition entity types. The only difference to regular (Non media enties) is,
that they have a <code>hasStream</code> property. If this property is not
provided it defaults to false. So add the following code to class
<code>DemoEdmProvider</code>:</p>
<p>We start with method <code>DemoEdmProvider.getEntityType</code></p>
<div class="codehilite"><pre><span class="kd">public</span> <span
class="n">CsdlEntityType</span> <span class="nf">getEntityType</span><span
class="o">(</span><span class="n">FullQualifiedName</span> <span
class="n">entityTypeName</span><span class="o">)</span> <span class="o">{</span>
<span class="n">CsdlEntityType</span> <span class="n">entityType</span>
<span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
@@ -176,7 +176,7 @@ This tutorial can be found in subdirecto
</pre></div>
-<p>Further a have to create a new entity set. Add the following snipped to
<code>DemoEdmProvider.getEntitySet</code></p>
+<p>Further we have to create a new entity set. Add the following snipped to
<code>DemoEdmProvider.getEntitySet</code></p>
<div class="codehilite"><pre><span class="p">@</span><span
class="n">Override</span>
<span class="n">public</span> <span class="n">CsdlEntitySet</span> <span
class="n">getEntitySet</span><span class="p">(</span><span
class="n">FullQualifiedName</span> <span class="n">entityContainer</span><span
class="p">,</span> <span class="n">String</span> <span
class="n">entitySetName</span><span class="p">)</span> <span class="p">{</span>
<span class="n">CsdlEntitySet</span> <span class="n">entitySet</span>
<span class="p">=</span> <span class="n">null</span><span class="p">;</span>
@@ -218,17 +218,19 @@ This tutorial can be found in subdirecto
<h3 id="enable-the-data-store-to-handle-media-entities">Enable the data store
to handle media entities<a class="headerlink"
href="#enable-the-data-store-to-handle-media-entities" title="Permanent
link">¶</a></h3>
<p>In this tutorial, we will keep things simple. To store the value of media
entities, we create a special property <em>$value</em>. Note this is not a
valid OData Identifier.</p>
-<p>To read the content to a media entity, we simple return the value of the
property <em>$value</em>.
- ::::java
- private static final String MEDIA_PROPERTY_NAME = "$value";</p>
-<div class="codehilite"><pre><span class="n">public</span> <span
class="n">byte</span><span class="p">[]</span> <span
class="n">readMedia</span><span class="p">(</span><span class="n">final</span>
<span class="n">Entity</span> <span class="n">entity</span><span
class="p">)</span> <span class="p">{</span>
- <span class="k">return</span> <span class="p">(</span><span
class="n">byte</span><span class="p">[])</span> <span
class="n">entity</span><span class="p">.</span><span
class="n">getProperty</span><span class="p">(</span><span
class="n">MEDIA_PROPERTY_NAME</span><span class="p">).</span><span
class="n">asPrimitive</span><span class="p">();</span>
-<span class="p">}</span>
+<p>To read the content to a media entity, we simple return the value of the
property <em>$value</em>.</p>
+<div class="codehilite"><pre> <span class="kd">private</span> <span
class="kd">static</span> <span class="kd">final</span> <span
class="n">String</span> <span class="n">MEDIA_PROPERTY_NAME</span> <span
class="o">=</span> <span class="s">"$value"</span><span
class="o">;</span>
+
+<span class="kd">public</span> <span class="kt">byte</span><span
class="o">[]</span> <span class="nf">readMedia</span><span
class="o">(</span><span class="kd">final</span> <span class="n">Entity</span>
<span class="n">entity</span><span class="o">)</span> <span class="o">{</span>
+ <span class="k">return</span> <span class="o">(</span><span
class="kt">byte</span><span class="o">[])</span> <span
class="n">entity</span><span class="o">.</span><span
class="na">getProperty</span><span class="o">(</span><span
class="n">MEDIA_PROPERTY_NAME</span><span class="o">).</span><span
class="na">asPrimitive</span><span class="o">();</span>
+<span class="o">}</span>
</pre></div>
-<p>If we update the content of a media entity, we must also the the Content
Type of the content. </p>
-<div class="codehilite"><pre><span class="kd">public</span> <span
class="kt">void</span> <span class="nf">updateMedia</span><span
class="o">(</span><span class="kd">final</span> <span class="n">Entity</span>
<span class="n">entity</span><span class="o">,</span> <span
class="kd">final</span> <span class="n">String</span> <span
class="n">mediaContentType</span><span class="o">,</span> <span
class="kd">final</span> <span class="kt">byte</span><span class="o">[]</span>
<span class="n">data</span><span class="o">)</span> <span class="o">{</span>
+<p>If we update the content of a media entity, we must also set the the
Content Type of the content.</p>
+<div class="codehilite"><pre><span class="kd">private</span> <span
class="n">List</span><span class="o"><</span><span
class="n">Entity</span><span class="o">></span> <span
class="n">advertisments</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kt">void</span> <span
class="nf">updateMedia</span><span class="o">(</span><span
class="kd">final</span> <span class="n">Entity</span> <span
class="n">entity</span><span class="o">,</span> <span class="kd">final</span>
<span class="n">String</span> <span class="n">mediaContentType</span><span
class="o">,</span> <span class="kd">final</span> <span
class="kt">byte</span><span class="o">[]</span> <span
class="n">data</span><span class="o">)</span> <span class="o">{</span>
<span class="n">entity</span><span class="o">.</span><span
class="na">getProperties</span><span class="o">().</span><span
class="na">remove</span><span class="o">(</span><span
class="n">entity</span><span class="o">.</span><span
class="na">getProperty</span><span class="o">(</span><span
class="n">MEDIA_PROPERTY_NAME</span><span class="o">));</span>
<span class="n">entity</span><span class="o">.</span><span
class="na">addProperty</span><span class="o">(</span><span class="k">new</span>
<span class="n">Property</span><span class="o">(</span><span
class="kc">null</span><span class="o">,</span> <span
class="n">MEDIA_PROPERTY_NAME</span><span class="o">,</span> <span
class="n">ValueType</span><span class="o">.</span><span
class="na">PRIMITIVE</span><span class="o">,</span> <span
class="n">data</span><span class="o">));</span>
<span class="n">entity</span><span class="o">.</span><span
class="na">setMediaContentType</span><span class="o">(</span><span
class="n">mediaContentType</span><span class="o">);</span>
@@ -236,7 +238,7 @@ This tutorial can be found in subdirecto
</pre></div>
-<p>If a client creates a new media entity, the body of the requet contains the
content of the media entity instead the regualr properties! So the other
regular properties defaults to <code>null</code>. The Content Type of the
media content must also be set up.</p>
+<p>If a client creates a new media entity, the body of the requet contains the
content of the media entity instead the regualr properties! So the other
regular properties defaults to <code>null</code>. The Content Type of the
media content must also be set.</p>
<div class="codehilite"><pre><span class="kd">public</span> <span
class="n">Entity</span> <span class="nf">createMediaEntity</span><span
class="o">(</span><span class="kd">final</span> <span
class="n">EdmEntityType</span> <span class="n">edmEntityType</span><span
class="o">,</span> <span class="kd">final</span> <span class="n">String</span>
<span class="n">mediaContentType</span><span class="o">,</span> <span
class="kd">final</span> <span class="kt">byte</span><span class="o">[]</span>
<span class="n">data</span><span class="o">)</span> <span class="o">{</span>
<span class="n">Entity</span> <span class="n">entity</span> <span
class="o">=</span> <span class="kc">null</span><span class="o">;</span>
@@ -258,7 +260,7 @@ This tutorial can be found in subdirecto
<h3 id="implement-the-interface-mediaentityprocessor">Implement the interface
<code>MediaEntityProcessor</code><a class="headerlink"
href="#implement-the-interface-mediaentityprocessor" title="Permanent
link">¶</a></h3>
-<p>As you can see the <a
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/processor/MediaEntityProcessor.html"><code>MediaEntityProcessor</code></a>
extends <a
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/processor/EntityProcessor.html"><code>EntityProcessor</code></a>,
therefore we will implement <code>MediaEntityProcessor</code> in class
<code>DemoEntityProcessor</code>.</p>
+<p>As you can see the <a
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/processor/MediaEntityProcessor.html"><code>MediaEntityProcessor</code>(Javadoc)</a>
extends <a
href="http://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/processor/EntityProcessor.html"><code>EntityProcessor</code></a>,
therefore we will implement <code>MediaEntityProcessor</code> in class
<code>DemoEntityProcessor</code>.</p>
<p>The easiest part is to delete an media entity. The method
<code>deleteMediaEntity</code> is delegated to the method
<code>deleteEntity(...)</code>.</p>
<div class="codehilite"><pre><span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span
class="nf">deleteMediaEntity</span><span class="o">(</span><span
class="n">ODataRequest</span> <span class="n">request</span><span
class="o">,</span> <span class="n">ODataResponse</span> <span
class="n">response</span><span class="o">,</span> <span
class="n">UriInfo</span> <span class="n">uriInfo</span><span class="o">)</span>
@@ -269,7 +271,7 @@ This tutorial can be found in subdirecto
</pre></div>
-<p>Next implement the creation of media entites. First we fetch the addressed
entity set and convert the body of the request to a byte array. Remember the
whole body of the request contains the content of the media entity.</p>
+<p>Next the creation of media entites is implemented. First we fetch the
addressed entity set and convert the body of the request to a byte array.
Remember the whole body of the request contains the content of the media
entity.</p>
<div class="codehilite"><pre><span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span
class="nf">createMediaEntity</span><span class="o">(</span><span
class="n">ODataRequest</span> <span class="n">request</span><span
class="o">,</span> <span class="n">ODataResponse</span> <span
class="n">response</span><span class="o">,</span> <span
class="n">UriInfo</span> <span class="n">uriInfo</span><span class="o">,</span>
<span class="n">ContentType</span> <span
class="n">requestFormat</span><span class="o">,</span> <span
class="n">ContentType</span> <span class="n">responseFormat</span><span
class="o">)</span>
@@ -365,14 +367,14 @@ This tutorial can be found in subdirecto
<h2 id="run-the-implemented-service">Run the implemented service<a
class="headerlink" href="#run-the-implemented-service" title="Permanent
link">¶</a></h2>
<p>After building and deploying the project, we can invoke our OData
service.</p>
-<p>Read media entity set
+<p>Read media entity set <br />
<strong>GET</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments</a></p>
-<p>Read media entity
+<p>Read media entity <br />
<strong>GET</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)</a></p>
-<p>Read media entity content
+<p>Read media entity content <br />
<strong>GET</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value</a></p>
-<p>Create a new Media Entity
-<strong>POST</strong> <a
href="">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments
+<p>Create a new Media Entity <br />
+<strong>POST</strong> <a
href="">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments
<br />
Content-Type: image/svg+xml</a></p>
<div class="codehilite"><pre><span class="cp"><?xml version="1.0"
encoding="UTF-8"?></span>
<span class="nt"><svg</span> <span class="na">xmlns=</span><span
class="s">"http://www.w3.org/2000/svg"</span> <span
class="na">version=</span><span class="s">"1.1"</span> <span
class="na">viewBox=</span><span class="s">"0 0 100 100"</span><span
class="nt">></span>
@@ -383,15 +385,15 @@ Content-Type: image/svg+xml</a></p>
</pre></div>
-<p>Update the content of a media entity
-<strong>PUT</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value</a>
+<p>Update the content of a media entity <br />
+<strong>PUT</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)/$value</a>
<br />
Content-Type: text/plain</p>
<div class="codehilite"><pre>Super super nice content
</pre></div>
-<p>Update the properties of a media entity
-<strong>PUT</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)</a>
+<p>Update the properties of a media entity <br />
+<strong>PUT</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)</a>
<br />
Content-Type: application/json</p>
<div class="codehilite"><pre><span class="p">{</span>
<span class="nt">"Name"</span><span class="p">:</span> <span
class="s2">"New Name"</span><span class="p">,</span>
@@ -400,9 +402,9 @@ Content-Type: application/json</p>
</pre></div>
-<p>Delete a media entity
+<p>Delete a media entity <br />
<strong>DELETE</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(f89dee73-af9f-4cd4-b330-db93c25ff3c7)</a></p>
-<p>Delete a media entity
+<p>Delete a media entity <br />
<strong>DELETE</strong> <a
href="http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(db2d2186-1c29-4d1e-88ef-127f521b9c67)/$value">http://localhost:8080/DemoService-Media/DemoService.svc/Advertisments(db2d2186-1c29-4d1e-88ef-127f521b9c67)/$value</a></p>
<h1 id="5-links">5. Links<a class="headerlink" href="#5-links"
title="Permanent link">¶</a></h1>
<h3 id="tutorials">Tutorials<a class="headerlink" href="#tutorials"
title="Permanent link">¶</a></h3>