Author: buildbot
Date: Tue Sep 16 00:19:51 2014
New Revision: 922332

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/olingo2.html

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/olingo2.html
==============================================================================
--- websites/production/camel/content/olingo2.html (original)
+++ websites/production/camel/content/olingo2.html Tue Sep 16 00:19:51 2014
@@ -93,7 +93,7 @@
 ]]></script>
 </div></div><h3 id="Olingo2-URIformat">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[    
olingo2://endpoint/&lt;resource-path&gt;?[options]]]></script>
-</div></div><h3 id="Olingo2-Olingo2Component.1">Olingo2Component</h3><p>The 
Olingo2 Component can be configured with the options below. These options can 
be provided using the component's bean 
property&#160;<strong><code>configuration</code></strong>&#160;of 
type&#160;<strong><code>org.apache.camel.component.olingo2.Olingo2Configuration</code></strong>.&#160;</p><div
 class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Option</th><th colspan="1" rowspan="1" 
class="confluenceTh">Type</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">serviceUri</td><td colspan="1" rowspan="1" 
class="confluenceTd">String</td><td colspan="1" rowspan="1" 
class="confluenceTd">Target OData service base URI, e.g. <a shape="rect" 
class="external-link" 
href="http://services.odata.org/OData/OData.svc/Products?$orderby=Rating"; 
rel="nofollow">http://services.odata.org/OData/OData.
 svc</a></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">contentType</td><td colspan="1" rowspan="1" 
class="confluenceTd">String</td><td colspan="1" rowspan="1" 
class="confluenceTd">Content-Type header value can be used to specify JSON or 
XML message format<span>, defaults to 
</span><strong>application/json;charset=utf-8</strong></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">connectTimeout</td><td colspan="1" 
rowspan="1" class="confluenceTd">int</td><td colspan="1" rowspan="1" 
class="confluenceTd">HTTP connection creation timeout in milliseconds, defaults 
to 30,000 (30 seconds)</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">socketTimeout</td><td colspan="1" rowspan="1" 
class="confluenceTd">int</td><td colspan="1" rowspan="1" 
class="confluenceTd">HTTP request timeout in milliseconds, defaults to 30,000 
(30 seconds)</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">httpHeaders</td><td colspan="1" rowspan="1" 
class="confluenceTd">
 java.util.Map&lt;String, String&gt;</td><td colspan="1" rowspan="1" 
class="confluenceTd">Custom HTTP headers to inject into every request, this 
could include OAuth tokens, etc.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">proxy</td><td colspan="1" rowspan="1" 
class="confluenceTd">org.apache.http.HttpHost</td><td colspan="1" rowspan="1" 
class="confluenceTd">HTTP proxy server configuration</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">sslContext</td><td colspan="1" 
rowspan="1" class="confluenceTd">javax.net.ssl.SSLContext</td><td colspan="1" 
rowspan="1" class="confluenceTd">HTTP SSL configuration</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">httpAsyncClientBuilder</td><td 
colspan="1" rowspan="1" 
class="confluenceTd">org.apache.http.impl.nio.client.HttpAsyncClientBuilder</td><td
 colspan="1" rowspan="1" class="confluenceTd">Custom HTTP async client builder 
for more complex HTTP client configuration, overrides connectionTimeout, 
socketTime
 out, proxy and sslContext. Note that a socketTimeout <strong>MUST</strong> be 
specified in the builder, otherwise OData requests could block 
indefinitely</td></tr></tbody></table></div><h3 
id="Olingo2-ProducerEndpoints">Producer Endpoints</h3><p>Producer endpoints can 
use endpoint names and options listed next.&#160;<span style="line-height: 
1.4285715;">Producer endpoints can also use a special 
option&#160;</span><strong style="line-height: 
1.4285715;"><code>inBody</code></strong><span style="line-height: 
1.4285715;">&#160;that in turn should contain the name of the endpoint option 
whose value will be contained in the Camel Exchange In message. The 
<strong>inBody</strong>&#160;option defaults to <strong>data</strong>&#160;for 
endpoints that take that&#160;option.&#160;</span></p><p>Any of the endpoint 
options can be provided in either the endpoint URI, or dynamically in a message 
header. The message header name must be of the 
format&#160;<strong><code>CamelOlingo2.&lt;option&gt;</co
 de></strong>. Note that 
the&#160;<strong><code>inBody</code></strong>&#160;option overrides message 
header, i.e. the endpoint 
option&#160;<strong><code>inBody=option</code></strong>&#160;would override 
a&#160;<strong><code>CamelOlingo2.option</code></strong>&#160;header. In 
addition, query parameters can be specified&#160;</p><p>Note that the 
resourcePath option can either in specified in the URI as a part of the URI 
path, as an endpoint option ?resourcePath=&lt;resource-path&gt; or as a header 
value CamelOlingo2.resourcePath. The OData entity key predicate can either be a 
part of the resource path, e.g. <em>Manufacturers('1')</em>, where 
<em>'</em><em>1'</em>&#160;is the key predicate, or be specified separately 
with resource path <em>Manufacturers</em>&#160;and keyPredicate option 
<em>'1'</em>.&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Endpoint</th><th colspan="1" rowspan="1" 
class="confluenceTh">Opt
 ions</th><th colspan="1" rowspan="1" class="confluenceTh">Result Body 
Type</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">batch</td><td colspan="1" rowspan="1" 
class="confluenceTd">data</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>java.util.List&lt;org.apache.camel.component.olingo2.api.batch.Olingo2BatchResponse&gt;</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">create</td><td colspan="1" 
rowspan="1" class="confluenceTd">data, resourcePath</td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.ep.entry.ODataEntry</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">delete</td><td colspan="1" 
rowspan="1" class="confluenceTd">resourcePath</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">merge</td><td colspan="1" 
rowspan="1" class="confluenceTd">data, resourcePat
 h</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">patch</td><td colspan="1" 
rowspan="1" class="confluenceTd">data, resourcePath</td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">read</td><td colspan="1" 
rowspan="1" class="confluenceTd">queryParams, resourcePath</td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Depends on OData resource being queried as 
described next</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">update</td><td colspan="1" rowspan="1" 
class="confluenceTd">data, resourcePath</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr></tbody></table></div><h3
 id="Olingo2-ODataResourceTypeMapping">OData Resource Type Mappin
 g</h3><p>The result of <strong>read</strong> endpoint and data type of 
<strong>data</strong> option depends on the OData resource being queried, 
created or modified.&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">OData Resource Type</th><th colspan="1" rowspan="1" 
class="confluenceTh">Resource URI from resourcePath and keyPredicate</th><th 
colspan="1" rowspan="1" class="confluenceTh">In or Out Body 
Type</th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">Entity data 
model</td><td colspan="1" rowspan="1" class="confluenceTd">$metadata</td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.edm.Edm</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">Service document</td><td 
colspan="1" rowspan="1" class="confluenceTd">/</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.servicedocument.ServiceDocument</pre></td></tr><
 tr><td colspan="1" rowspan="1" class="confluenceTd">OData feed</td><td 
colspan="1" rowspan="1" class="confluenceTd">&lt;entity-set&gt;</td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.ep.feed.ODataFeed</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">OData entry</td><td colspan="1" 
rowspan="1" 
class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;)</td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.ep.entry.ODataEntry for 
Out body (response) and java.util.Map&lt;String, Object&gt; for In body 
(request)</pre></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Simple property</td><td colspan="1" rowspan="1" 
class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;)/&lt;simple-property&gt;</td><td
 colspan="1" rowspan="1" class="confluenceTd">Appropriate Java data type as 
described by <a shape="rect" class="external-link" 
href="http://olingo.apache.org/javadoc/odata2/index.
 html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html">Olingo 
EdmProperty</a></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Simple property value</td><td colspan="1" rowspan="1" 
class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;)/&lt;simple-property&gt;/$value</td><td
 colspan="1" rowspan="1" class="confluenceTd"><span>Appropriate Java data type 
as described by </span><a shape="rect" class="external-link" 
href="http://olingo.apache.org/javadoc/odata2/index.html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html";>Olingo
 EdmProperty</a></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Complex property</td><td colspan="1" rowspan="1" 
class="confluenceTd"><span>&lt;entity-set&gt;(&lt;key-predicate&gt;)/&lt;complex-property&gt;</span></td><td
 colspan="1" rowspan="1" class="confluenceTd"><pre>java.util.Map&lt;String, 
Object&gt;</pre></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Zero or one association link</td><td
  colspan="1" rowspan="1" 
class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;/$link/&lt;one-to-one-entity-set-property&gt;</td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><pre>String</pre></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Zero or many association links</td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><span>&lt;entity-set&gt;(&lt;key-predicate&gt;/$link/&lt;one-to-many-entity-set-property&gt;</span></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><pre>java.util.List&lt;String&gt;</pre></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">Count</td><td colspan="1" 
rowspan="1" class="confluenceTd">&lt;resource-uri&gt;/$count</td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><pre>java.lang.Long</pre></td></tr></tbody></table></div><h3
 id="Olingo2-URIOptions">URI Options</h3><p>If a value is not provided for 
<strong>queryParams</strong> either in the endpoint URI or in a message header, 
it will be assumed to be&#160;<strong>
 <code>null</code></strong>. Note that 
the&#160;<strong><code>null</code></strong>&#160;value will only be used if 
other options do not satisfy matching endpoints.</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Name</th><th colspan="1" rowspan="1" 
class="confluenceTh">Type</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">data</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>Object</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">Data with appropriate type used to create or modify the 
OData resource</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">keyPredicate</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>String</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">Key predicate to create a parameterized OData resource 
endpoint. Useful for create/update operations where the key predicate va
 lue is dynamically provided in a header</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">queryParams</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>java.util.Map&lt;String, String&gt;</pre></td><td 
colspan="1" rowspan="1" class="confluenceTd">OData system options and custom 
query options. For more information see <a shape="rect" class="external-link" 
href="http://www.odata.org/documentation/odata-version-2-0/uri-conventions"; 
rel="nofollow">OData 2.0 URI Conventions</a></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">resourcePath</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>String</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">OData resource path, may or may not contain key 
predicate</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">*</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>String</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">Any other URI option is treated as a query parameter a
 nd added to query parameter map, overwriting entries in a 
<strong>queryParams</strong> option, if also 
specified</td></tr></tbody></table></div><h3 
id="Olingo2-ConsumerEndpoints">Consumer Endpoints</h3><p>Only the 
<strong>read</strong> endpoint can be used as a consumer endpoint. Consumer 
endpoints can use&#160;<a shape="rect" class="external-link" 
href="http://camel.apache.org/polling-consumer.html#PollingConsumer-ScheduledPollConsumerOptions";>Scheduled
 Poll Consumer Options</a>&#160;with 
a&#160;<strong><code>consumer.</code></strong>&#160;prefix to schedule endpoint 
invocation. By default consumer endpoints that return an array or collection 
will generate one exchange per element, and their routes will be executed once 
for each exchange. This behavior can be disabled by setting the endpoint 
property <strong>consumer.splitResult=false</strong>.&#160;</p><h3 
id="Olingo2-MessageHeaders">Message Headers</h3><p>Any URI option can be 
provided in a message header for producer endpoints w
 ith a&#160;<strong><code>CamelOlingo2.</code></strong>&#160;prefix.</p><h3 
id="Olingo2-MessageBody">Message Body</h3><p>All result message bodies utilize 
objects provided by the underlying <a shape="rect" class="external-link" 
href="http://olingo.apache.org/javadoc/odata2/index.html";>Apache Olingo 2.0 
API</a> used by the Olingo2Component. Producer endpoints can specify the option 
name for incoming message body in 
the&#160;<strong><code>inBody</code></strong>&#160;endpoint URI parameter. For 
endpoints that return an array or collection, a consumer endpoint will map 
every element to distinct messages, unless 
<strong>consumer.splitResult</strong> is set to <strong>false</strong>.</p><h3 
id="Olingo2-Usecases"><span style="font-size: 16.0px;line-height: 1.5625;">Use 
cases</span></h3><div class="wiki-content"><p>The following route reads top 5 
entries from the Manufacturer feed ordered by ascending Name 
property.&#160;</p><div class="syntaxhighlighter nogutter 
java"><p>&#160;</p><div clas
 s="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="container" title="Hint: 
double-click to select code"><div class="line number1 index0 alt2"><code 
class="java plain">from(</code><code class="java 
string">"direct:..."</code><code class="java plain">)</code></div><div 
class="line number1 index0 alt2"><code class="java 
spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.setHeader("CamelOlingo2.$top", "5"</code><code class="java 
plain">);</code></div><div class="line number1 index0 alt2"><code class="java 
spaces" style="line-height: 1.4285715;">&#160;&#160;&#160;&#160;</code><code 
class="java plain" style="line-height: 1.4285715;">.to(</code><code class="java 
string" style="line-height: 1.4285715;">"<a shape="rect" 
href="box://files/upload/inBody=fileUploadRequest" 
rel="nofollow">olingo2://read/Manufacturers?</a>orderBy=Name%20asc"</code><code 
class="java plain" style="line-height: 1.4285715;">);</code></di
 v></div></td></tr></tbody></table></div><p>&#160;</p></div><p>The following 
route reads Manufacturer entry using the key property value in 
incoming&#160;<strong>id</strong> header.&#160;</p><div 
class="syntaxhighlighter nogutter java"><p>&#160;</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="container" title="Hint: 
double-click to select code"><div class="line number1 index0 alt2"><code 
class="java plain">from(</code><code class="java 
string">"direct:..."</code><code class="java plain">)</code></div><div 
class="line number1 index0 alt2"><code class="java 
spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.setHeader("<span>C</span><span>amelOlingo2.keyPredicate</span>", 
<span>header("id")</span></code><code class="java plain">)</code></div><div 
class="line number2 index1 alt1"><code class="java 
spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.to(</code><code class="java stri
 ng">"<a shape="rect" href="box://files/upload/inBody=fileUploadRequest" 
rel="nofollow">olingo2://read/M</a>anufacturers"</code><code class="java 
plain">);</code></div></div></td></tr></tbody></table></div><p>The following 
route creates Manufacturer entry using the <strong>java.util.Map&lt;String, 
Object&gt;</strong> in body message.&#160;</p><div class="syntaxhighlighter 
nogutter java"><p>&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="container" title="Hint: double-click to select 
code"><div class="line number1 index0 alt2"><code class="java 
plain">from(</code><code class="java string">"direct:..."</code><code 
class="java plain">)</code></div><div class="line number1 index0 alt2"><code 
class="java spaces" style="line-height: 
1.4285715;">&#160;&#160;&#160;&#160;</code><code class="java plain" 
style="line-height: 1.4285715;">.to(</code><code class="java string" 
style="line-height: 1.4285715;">"<a
  shape="rect" href="box://files/upload/inBody=fileUploadRequest" 
rel="nofollow">olingo2://create/M</a>anufacturers"</code><code class="java 
plain" style="line-height: 
1.4285715;">);</code></div></div></td></tr></tbody></table></div><p>&#160;</p></div></div><p>The
 following route polls Manufacturer <a shape="rect" class="external-link" 
href="http://olingo.apache.org/doc/tutorials/deltaClient.html";>delta 
feed</a>&#160;every 30 seconds. The bean <strong>blah</strong>&#160;updates the 
bean&#160;<strong>paramsBean</strong>&#160;to add an 
updated&#160;<strong>!deltatoken</strong> property with the value returned in 
the <strong>ODataDeltaFeed</strong> result. Since the initial delta token is 
not known, the consumer endpoint will produce 
an&#160;<strong>ODataFeed</strong> value the first time, and 
<strong>ODataDeltaFeed</strong> on subsequent polls.&#160;</p><div 
class="syntaxhighlighter nogutter java"><p>&#160;</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspa
 n="1" rowspan="1" class="confluenceTd"><div class="container" title="Hint: 
double-click to select code"><div class="line number1 index0 alt2"><code 
class="java plain">from(</code><code class="java string">"<a shape="rect" 
rel="nofollow">olingo2://read/Manufacturers?queryParams=#paramsBean&amp;consumer.timeUnit=SECONDS&amp;consumer.delay=30</a>"</code><code
 class="java plain">)</code></div><div class="line number2 index1 alt1"><code 
class="java spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.to(</code><code class="java string">"<a shape="rect" 
class="external-link" href="http://beanblah"; 
rel="nofollow">bean:blah</a>"</code><code class="java 
plain">);</code></div></div></td></tr></tbody></table></div></div></div></div>
+</div></div><h3 id="Olingo2-Olingo2Component.1">Olingo2Component</h3><p>The 
Olingo2 Component can be configured with the options below. These options can 
be provided using the component's bean 
property&#160;<strong><code>configuration</code></strong>&#160;of 
type&#160;<strong><code>org.apache.camel.component.olingo2.Olingo2Configuration</code></strong>.&#160;</p><div
 class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Option</th><th colspan="1" rowspan="1" 
class="confluenceTh">Type</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">serviceUri</td><td colspan="1" rowspan="1" 
class="confluenceTd">String</td><td colspan="1" rowspan="1" 
class="confluenceTd">Target OData service base URI, e.g. <a shape="rect" 
class="external-link" 
href="http://services.odata.org/OData/OData.svc/Products?$orderby=Rating"; 
rel="nofollow">http://services.odata.org/OData/OData.
 svc</a></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">contentType</td><td colspan="1" rowspan="1" 
class="confluenceTd">String</td><td colspan="1" rowspan="1" 
class="confluenceTd">Content-Type header value can be used to specify JSON or 
XML message format<span>, defaults to 
</span><strong>application/json;charset=utf-8</strong></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">connectTimeout</td><td colspan="1" 
rowspan="1" class="confluenceTd">int</td><td colspan="1" rowspan="1" 
class="confluenceTd">HTTP connection creation timeout in milliseconds, defaults 
to 30,000 (30 seconds)</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">socketTimeout</td><td colspan="1" rowspan="1" 
class="confluenceTd">int</td><td colspan="1" rowspan="1" 
class="confluenceTd">HTTP request timeout in milliseconds, defaults to 30,000 
(30 seconds)</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">httpHeaders</td><td colspan="1" rowspan="1" 
class="confluenceTd">
 java.util.Map&lt;String, String&gt;</td><td colspan="1" rowspan="1" 
class="confluenceTd">Custom HTTP headers to inject into every request, this 
could include OAuth tokens, etc.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">proxy</td><td colspan="1" rowspan="1" 
class="confluenceTd">org.apache.http.HttpHost</td><td colspan="1" rowspan="1" 
class="confluenceTd">HTTP proxy server configuration</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">sslContext</td><td colspan="1" 
rowspan="1" class="confluenceTd">javax.net.ssl.SSLContext</td><td colspan="1" 
rowspan="1" class="confluenceTd">HTTP SSL configuration</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">httpAsyncClientBuilder</td><td 
colspan="1" rowspan="1" 
class="confluenceTd">org.apache.http.impl.nio.client.HttpAsyncClientBuilder</td><td
 colspan="1" rowspan="1" class="confluenceTd">Custom HTTP async client builder 
for more complex HTTP client configuration, overrides connectionTimeout, 
socketTime
 out, proxy and sslContext. Note that a socketTimeout <strong>MUST</strong> be 
specified in the builder, otherwise OData requests could block 
indefinitely</td></tr></tbody></table></div><h3 
id="Olingo2-ProducerEndpoints">Producer Endpoints</h3><p>Producer endpoints can 
use endpoint names and options listed next.&#160;<span style="line-height: 
1.4285715;">Producer endpoints can also use a special 
option&#160;</span><strong style="line-height: 
1.4285715;"><code>inBody</code></strong><span style="line-height: 
1.4285715;">&#160;that in turn should contain the name of the endpoint option 
whose value will be contained in the Camel Exchange In message. The 
<strong>inBody</strong>&#160;option defaults to <strong>data</strong>&#160;for 
endpoints that take that&#160;option.&#160;</span></p><p>Any of the endpoint 
options can be provided in either the endpoint URI, or dynamically in a message 
header. The message header name must be of the 
format&#160;<strong><code>CamelOlingo2.&lt;option&gt;</co
 de></strong>. Note that 
the&#160;<strong><code>inBody</code></strong>&#160;option overrides message 
header, i.e. the endpoint 
option&#160;<strong><code>inBody=option</code></strong>&#160;would override 
a&#160;<strong><code>CamelOlingo2.option</code></strong>&#160;header. In 
addition, query parameters can be specified&#160;</p><p>Note that the 
resourcePath option can either in specified in the URI as a part of the URI 
path, as an endpoint option ?resourcePath=&lt;resource-path&gt; or as a header 
value CamelOlingo2.resourcePath. The OData entity key predicate can either be a 
part of the resource path, e.g. <em>Manufacturers('1')</em>, where 
<em>'</em><em>1'</em>&#160;is the key predicate, or be specified separately 
with resource path <em>Manufacturers</em>&#160;and keyPredicate option 
<em>'1'</em>.&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Endpoint</th><th colspan="1" rowspan="1" 
class="confluenceTh">Opt
 ions</th><th colspan="1" rowspan="1" class="confluenceTh">HTTP Method</th><th 
colspan="1" rowspan="1" class="confluenceTh">Result Body Type</th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">batch</td><td colspan="1" 
rowspan="1" class="confluenceTd">data</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>POST with multipart/mixed batch request</pre></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><pre>java.util.List&lt;org.apache.camel.component.olingo2.api.batch.Olingo2BatchResponse&gt;</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">create</td><td colspan="1" 
rowspan="1" class="confluenceTd">data, resourcePath</td><td colspan="1" 
rowspan="1" class="confluenceTd"><pre>POST</pre></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.ep.entry.ODataEntry for 
new entries</pre><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes for 
other OData resources</pre></td></tr><tr><td colspan="1" rowspan="1" class=
 "confluenceTd">delete</td><td colspan="1" rowspan="1" 
class="confluenceTd">resourcePath</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>DELETE</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">merge</td><td colspan="1" 
rowspan="1" class="confluenceTd">data, resourcePath</td><td colspan="1" 
rowspan="1" class="confluenceTd"><pre>MERGE</pre></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">patch</td><td colspan="1" 
rowspan="1" class="confluenceTd">data, resourcePath</td><td colspan="1" 
rowspan="1" class="confluenceTd"><pre>PATCH</pre></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">read<
 /td><td colspan="1" rowspan="1" class="confluenceTd">queryParams, 
resourcePath</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>GET</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Depends on OData resource being queried as described 
next</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">update</td><td colspan="1" rowspan="1" 
class="confluenceTd">data, resourcePath</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>PUT</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.commons.HttpStatusCodes</pre></td></tr></tbody></table></div><h3
 id="Olingo2-ODataResourceTypeMapping">OData Resource Type Mapping</h3><p>The 
result of <strong>read</strong> endpoint and data type of <strong>data</strong> 
option depends on the OData resource being queried, created or 
modified.&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">OData Resource Ty
 pe</th><th colspan="1" rowspan="1" class="confluenceTh">Resource URI from 
resourcePath and keyPredicate</th><th colspan="1" rowspan="1" 
class="confluenceTh">In or Out Body Type</th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">Entity data model</td><td colspan="1" 
rowspan="1" class="confluenceTd">$metadata</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.edm.Edm</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">Service document</td><td 
colspan="1" rowspan="1" class="confluenceTd">/</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.servicedocument.ServiceDocument</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">OData feed</td><td colspan="1" 
rowspan="1" class="confluenceTd">&lt;entity-set&gt;</td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><pre>org.apache.olingo.odata2.api.ep.feed.ODataFeed</pre></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"
 >OData entry</td><td colspan="1" rowspan="1" 
 >class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;)</td><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><pre>org.apache.olingo.odata2.api.ep.entry.ODataEntry 
 >for Out body (response)</pre><pre>java.util.Map&lt;String, Object&gt; for In 
 >body (request)</pre></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd">Simple property</td><td colspan="1" rowspan="1" 
 >class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;)/&lt;simple-property&gt;</td><td
 > colspan="1" rowspan="1" class="confluenceTd">Appropriate Java data type as 
 >described by <a shape="rect" class="external-link" 
 >href="http://olingo.apache.org/javadoc/odata2/index.html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html";>Olingo
 > EdmProperty</a></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd">Simple property value</td><td colspan="1" rowspan="1" 
 >class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;)/&lt;simple-property&gt;/$value</t
 d><td colspan="1" rowspan="1" class="confluenceTd"><span>Appropriate Java data 
type as described by </span><a shape="rect" class="external-link" 
href="http://olingo.apache.org/javadoc/odata2/index.html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html";>Olingo
 EdmProperty</a></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Complex property</td><td colspan="1" rowspan="1" 
class="confluenceTd"><span>&lt;entity-set&gt;(&lt;key-predicate&gt;)/&lt;complex-property&gt;</span></td><td
 colspan="1" rowspan="1" class="confluenceTd"><pre>java.util.Map&lt;String, 
Object&gt;</pre></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Zero or one association link</td><td colspan="1" 
rowspan="1" 
class="confluenceTd">&lt;entity-set&gt;(&lt;key-predicate&gt;/$link/&lt;one-to-one-entity-set-property&gt;</td><td
 colspan="1" rowspan="1" class="confluenceTd"><pre>String for 
response</pre><pre>java.util.Map&lt;String, Object&gt; with key property names 
and values for reques
 t</pre></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">Zero or 
many association links</td><td colspan="1" rowspan="1" 
class="confluenceTd"><span>&lt;entity-set&gt;(&lt;key-predicate&gt;/$link/&lt;one-to-many-entity-set-property&gt;</span></td><td
 colspan="1" rowspan="1" class="confluenceTd"><pre>java.util.List&lt;String&gt; 
for response</pre><pre>java.util.List&lt;java.util.Map&lt;String, 
Object&gt;&gt; containing list of key property names and values for 
request</pre></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Count</td><td colspan="1" rowspan="1" 
class="confluenceTd">&lt;resource-uri&gt;/$count</td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><pre>java.lang.Long</pre></td></tr></tbody></table></div><h3
 id="Olingo2-URIOptions">URI Options</h3><p>If a value is not provided for 
<strong>queryParams</strong> either in the endpoint URI or in a message header, 
it will be assumed to be&#160;<strong><code>null</code></strong>. Note that 
the&#160;<stron
 g><code>null</code></strong>&#160;value will only be used if other options do 
not satisfy matching endpoints.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Name</th><th colspan="1" rowspan="1" 
class="confluenceTh">Type</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">data</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>Object</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">Data with appropriate type used to create or modify the 
OData resource</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">keyPredicate</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>String</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">Key predicate to create a parameterized OData resource 
endpoint. Useful for create/update operations where the key predicate value is 
dynamically provided in a header</td></tr><tr>
 <td colspan="1" rowspan="1" class="confluenceTd">queryParams</td><td 
colspan="1" rowspan="1" class="confluenceTd"><pre>java.util.Map&lt;String, 
String&gt;</pre></td><td colspan="1" rowspan="1" class="confluenceTd">OData 
system options and custom query options. For more information see <a 
shape="rect" class="external-link" 
href="http://www.odata.org/documentation/odata-version-2-0/uri-conventions"; 
rel="nofollow">OData 2.0 URI Conventions</a></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">resourcePath</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>String</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">OData resource path, may or may not contain key 
predicate</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">*</td><td colspan="1" rowspan="1" 
class="confluenceTd"><pre>String</pre></td><td colspan="1" rowspan="1" 
class="confluenceTd">Any other URI option is treated as a query parameter and 
added to query parameter map, overwriting entries 
 in a <strong>queryParams</strong> option, if also 
specified</td></tr></tbody></table></div><h3 
id="Olingo2-ConsumerEndpoints">Consumer Endpoints</h3><p>Only the 
<strong>read</strong> endpoint can be used as a consumer endpoint. Consumer 
endpoints can use&#160;<a shape="rect" class="external-link" 
href="http://camel.apache.org/polling-consumer.html#PollingConsumer-ScheduledPollConsumerOptions";>Scheduled
 Poll Consumer Options</a>&#160;with 
a&#160;<strong><code>consumer.</code></strong>&#160;prefix to schedule endpoint 
invocation. By default consumer endpoints that return an array or collection 
will generate one exchange per element, and their routes will be executed once 
for each exchange. This behavior can be disabled by setting the endpoint 
property <strong>consumer.splitResult=false</strong>.&#160;</p><h3 
id="Olingo2-MessageHeaders">Message Headers</h3><p>Any URI option can be 
provided in a message header for producer endpoints with 
a&#160;<strong><code>CamelOlingo2.</code></strong
 >&#160;prefix.</p><h3 id="Olingo2-MessageBody">Message Body</h3><p>All result 
 >message bodies utilize objects provided by the underlying <a shape="rect" 
 >class="external-link" 
 >href="http://olingo.apache.org/javadoc/odata2/index.html";>Apache Olingo 2.0 
 >API</a> used by the Olingo2Component. Producer endpoints can specify the 
 >option name for incoming message body in 
 >the&#160;<strong><code>inBody</code></strong>&#160;endpoint URI parameter. 
 >For endpoints that return an array or collection, a consumer endpoint will 
 >map every element to distinct messages, unless 
 ><strong>consumer.splitResult</strong> is set to 
 ><strong>false</strong>.</p><h3 id="Olingo2-Usecases"><span style="font-size: 
 >16.0px;line-height: 1.5625;">Use cases</span></h3><div 
 >class="wiki-content"><p>The following route reads top 5 entries from the 
 >Manufacturer feed ordered by ascending Name property.&#160;</p><div 
 >class="syntaxhighlighter nogutter java"><p>&#160;</p><div 
 >class="table-wrap"><table class="confluenceTable"><tbody>
 <tr><td colspan="1" rowspan="1" class="confluenceTd"><div class="container" 
title="Hint: double-click to select code"><div class="line number1 index0 
alt2"><code class="java plain">from(</code><code class="java 
string">"direct:..."</code><code class="java plain">)</code></div><div 
class="line number1 index0 alt2"><code class="java 
spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.setHeader("CamelOlingo2.$top", "5"</code><code class="java 
plain">);</code></div><div class="line number1 index0 alt2"><code class="java 
spaces" style="line-height: 1.4285715;">&#160;&#160;&#160;&#160;</code><code 
class="java plain" style="line-height: 1.4285715;">.to(</code><code class="java 
string" style="line-height: 1.4285715;">"<a shape="rect" 
href="box://files/upload/inBody=fileUploadRequest" 
rel="nofollow">olingo2://read/Manufacturers?</a>orderBy=Name%20asc"</code><code 
class="java plain" style="line-height: 
1.4285715;">);</code></div></div></td></tr></tbody></table></div><p>&#160;</p>
 </div><p>The following route reads Manufacturer entry using the key property 
value in incoming&#160;<strong>id</strong> header.&#160;</p><div 
class="syntaxhighlighter nogutter java"><p>&#160;</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="container" title="Hint: 
double-click to select code"><div class="line number1 index0 alt2"><code 
class="java plain">from(</code><code class="java 
string">"direct:..."</code><code class="java plain">)</code></div><div 
class="line number1 index0 alt2"><code class="java 
spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.setHeader("<span>C</span><span>amelOlingo2.keyPredicate</span>", 
<span>header("id")</span></code><code class="java plain">)</code></div><div 
class="line number2 index1 alt1"><code class="java 
spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.to(</code><code class="java string">"<a shape="rect" 
href="box://files/upload/inBody=
 fileUploadRequest" 
rel="nofollow">olingo2://read/M</a>anufacturers"</code><code class="java 
plain">);</code></div></div></td></tr></tbody></table></div><p>The following 
route creates Manufacturer entry using the <strong>java.util.Map&lt;String, 
Object&gt;</strong> in body message.&#160;</p><div class="syntaxhighlighter 
nogutter java"><p>&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="container" title="Hint: double-click to select 
code"><div class="line number1 index0 alt2"><code class="java 
plain">from(</code><code class="java string">"direct:..."</code><code 
class="java plain">)</code></div><div class="line number1 index0 alt2"><code 
class="java spaces" style="line-height: 
1.4285715;">&#160;&#160;&#160;&#160;</code><code class="java plain" 
style="line-height: 1.4285715;">.to(</code><code class="java string" 
style="line-height: 1.4285715;">"<a shape="rect" 
href="box://files/upload/inBody=fileUpl
 oadRequest" rel="nofollow">olingo2://create/M</a>anufacturers"</code><code 
class="java plain" style="line-height: 
1.4285715;">);</code></div></div></td></tr></tbody></table></div><p>&#160;</p></div></div><p>The
 following route polls Manufacturer <a shape="rect" class="external-link" 
href="http://olingo.apache.org/doc/tutorials/deltaClient.html";>delta 
feed</a>&#160;every 30 seconds. The bean <strong>blah</strong>&#160;updates the 
bean&#160;<strong>paramsBean</strong>&#160;to add an 
updated&#160;<strong>!deltatoken</strong> property with the value returned in 
the <strong>ODataDeltaFeed</strong> result. Since the initial delta token is 
not known, the consumer endpoint will produce 
an&#160;<strong>ODataFeed</strong> value the first time, and 
<strong>ODataDeltaFeed</strong> on subsequent polls.&#160;</p><div 
class="syntaxhighlighter nogutter java"><p>&#160;</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="co
 ntainer" title="Hint: double-click to select code"><div class="line number1 
index0 alt2"><code class="java plain">from(</code><code class="java string">"<a 
shape="rect" 
rel="nofollow">olingo2://read/Manufacturers?queryParams=#paramsBean&amp;consumer.timeUnit=SECONDS&amp;consumer.delay=30</a>"</code><code
 class="java plain">)</code></div><div class="line number2 index1 alt1"><code 
class="java spaces">&#160;&#160;&#160;&#160;</code><code class="java 
plain">.to(</code><code class="java string">"<a shape="rect" 
class="external-link" href="http://beanblah"; 
rel="nofollow">bean:blah</a>"</code><code class="java 
plain">);</code></div></div></td></tr></tbody></table></div></div></div></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to