Author: buildbot Date: Sun Feb 15 17:18:07 2015 New Revision: 940267 Log: Production update by buildbot for camel
Modified: websites/production/camel/content/cache/main.pageCache websites/production/camel/content/kestrel.html Modified: websites/production/camel/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/camel/content/kestrel.html ============================================================================== --- websites/production/camel/content/kestrel.html (original) +++ websites/production/camel/content/kestrel.html Sun Feb 15 17:18:07 2015 @@ -85,75 +85,32 @@ <tbody> <tr> <td valign="top" width="100%"> -<div class="wiki-content maincontent"><h2 id="Kestrel-KestrelComponent">Kestrel Component</h2> - -<p>The Kestrel component allows messages to be sent to a <a shape="rect" class="external-link" href="https://github.com/robey/kestrel" rel="nofollow">Kestrel</a> queue, or messages to be consumed from a Kestrel queue. This component uses the <a shape="rect" class="external-link" href="http://code.google.com/p/spymemcached/" rel="nofollow">spymemcached</a> client for memcached protocol communication with Kestrel servers.</p> - -<h3 id="Kestrel-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[ -kestrel://[addresslist/]queuename[?options] +<div class="wiki-content maincontent"><h2 id="Kestrel-KestrelComponent">Kestrel Component</h2><p>The Kestrel component allows messages to be sent to a <a shape="rect" class="external-link" href="https://github.com/robey/kestrel" rel="nofollow">Kestrel</a> queue, or messages to be consumed from a Kestrel queue. This component uses the <a shape="rect" class="external-link" href="http://code.google.com/p/spymemcached/" rel="nofollow">spymemcached</a> client for memcached protocol communication with Kestrel servers.</p> <div class="aui-message problem shadowed information-macro"> + <span class="aui-icon icon-problem">Icon</span> + <div class="message-content"> + <p>The kestrel project is inactive and the Camel team regard this components as deprecated.</p> + </div> + </div> +<p> </p><h3 id="Kestrel-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[kestrel://[addresslist/]queuename[?options] ]]></script> -</div></div> - -<p>Where <strong>queuename</strong> is the name of the queue on Kestrel. The <strong>addresslist</strong> part of the URI may include one or more <code>host:port</code> pairs. For example, to connect to the queue <code>foo</code> on <code>kserver01:22133</code>, use:</p> - -<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[ -kestrel://kserver01:22133/foo +</div></div><p>Where <strong>queuename</strong> is the name of the queue on Kestrel. The <strong>addresslist</strong> part of the URI may include one or more <code>host:port</code> pairs. For example, to connect to the queue <code>foo</code> on <code>kserver01:22133</code>, use:</p><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[kestrel://kserver01:22133/foo ]]></script> -</div></div> - -<p>If the addresslist is omitted, <code>localhost:22133</code> is assumed, i.e.:</p> - -<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[ -kestrel://foo +</div></div><p>If the addresslist is omitted, <code>localhost:22133</code> is assumed, i.e.:</p><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[kestrel://foo ]]></script> -</div></div> - -<p>Likewise, if a port is omitted from a <code>host:port</code> pair in addresslist, the default port 22133 is assumed, i.e.:</p> - -<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[ -kestrel://kserver01/foo +</div></div><p>Likewise, if a port is omitted from a <code>host:port</code> pair in addresslist, the default port 22133 is assumed, i.e.:</p><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[kestrel://kserver01/foo ]]></script> -</div></div> - -<p>Here is an example of a Kestrel endpoint URI used for producing to a clustered queue:</p> - -<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[ -kestrel://kserver01:22133,kserver02:22133,kserver03:22133/massive +</div></div><p>Here is an example of a Kestrel endpoint URI used for producing to a clustered queue:</p><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[kestrel://kserver01:22133,kserver02:22133,kserver03:22133/massive ]]></script> -</div></div> - -<p>Here is an example of a Kestrel endpoint URI used for consuming concurrently from a queue:</p> - -<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[ -kestrel://kserver03:22133/massive?concurrentConsumers=25&waitTimeMs=500 +</div></div><p>Here is an example of a Kestrel endpoint URI used for consuming concurrently from a queue:</p><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[kestrel://kserver03:22133/massive?concurrentConsumers=25&waitTimeMs=500 ]]></script> -</div></div> - -<h3 id="Kestrel-Options">Options</h3> - -<p>You can configure properties on each Kestrel endpoint individually by specifying them in the <code>?parameters</code> portion of the endpoint URI. Any <code>?parameters</code> that are omitted will default to what is configured on the KestrelComponent's base KestrelConfiguration. The following properties may be set on KestrelConfiguration and/or each individual endpoint:</p> - -<div class="confluenceTableSmall"> -<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>concurrentConsumers</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>1</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Specifies the number of concurrent consumer threads. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>waitTimeMs</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>100</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Specifies the <code>/t=...</code> wait time passed to Kestrel on GET requests. </p></td></tr></tbody></table></div> -</div> - -<p><strong>NOTE:</strong> If <strong>waitTimeMs</strong> is set to zero (or negative), the <code>/t=...</code> specifier does <strong>not</strong> get passed to the server on GET requests. When a queue is empty, the GET call returns immediately with no value. In order to prevent "tight looping" in the polling phase, this component will do a <code>Thread.sleep(100)</code> whenever nothing is returned from the GET request (only when nothing is returned). You are <strong>highly encouraged</strong> to configure a positive non-zero value for waitTimeMs.</p> - -<h3 id="Kestrel-ConfiguringtheKestrelcomponentusingSpringXML">Configuring the Kestrel component using Spring XML</h3> - -<p>The simplest form of explicit configuration is as follows:</p> - -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> -<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[ -<beans xmlns="http://www.springframework.org/schema/beans" +</div></div><h3 id="Kestrel-Options">Options</h3><p>You can configure properties on each Kestrel endpoint individually by specifying them in the <code>?parameters</code> portion of the endpoint URI. Any <code>?parameters</code> that are omitted will default to what is configured on the KestrelComponent's base KestrelConfiguration. The following properties may be set on KestrelConfiguration and/or each individual endpoint:</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>concurrentConsumers</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies the number of co ncurrent consumer threads.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>waitTimeMs</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>100</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies the <code>/t=...</code> wait time passed to Kestrel on GET requests.</p></td></tr></tbody></table></div></div><p><strong>NOTE:</strong> If <strong>waitTimeMs</strong> is set to zero (or negative), the <code>/t=...</code> specifier does <strong>not</strong> get passed to the server on GET requests. When a queue is empty, the GET call returns immediately with no value. In order to prevent "tight looping" in the polling phase, this component will do a <code>Thread.sleep(100)</code> whenever nothing is returned from the GET request (only when nothing is returned). You are <strong>highly encouraged</strong> to configure a positive non-zero value for waitTimeMs.</p><h3 id="Kestrel-ConfiguringtheKestrelcomponentusingSpringXML"> Configuring the Kestrel component using Spring XML</h3><p>The simplest form of explicit configuration is as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd @@ -166,15 +123,8 @@ kestrel://kserver03:22133/massive?concur </beans> ]]></script> -</div></div> - -<p>That will enable the Kestrel component with all default settings, i.e. it will use <code>localhost:22133</code>, 100ms wait time, and a single non-concurrent consumer by default.</p> - -<p>To use specific options in the base configuration (which supplies configuration to endpoints whose <code>?properties</code> are not specified), you can set up a KestrelConfiguration POJO as follows:</p> - -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> -<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[ -<beans xmlns="http://www.springframework.org/schema/beans" +</div></div><p>That will enable the Kestrel component with all default settings, i.e. it will use <code>localhost:22133</code>, 100ms wait time, and a single non-concurrent consumer by default.</p><p>To use specific options in the base configuration (which supplies configuration to endpoints whose <code>?properties</code> are not specified), you can set up a KestrelConfiguration POJO as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd @@ -195,34 +145,19 @@ kestrel://kserver03:22133/massive?concur </beans> ]]></script> -</div></div> - -<h3 id="Kestrel-UsageExamples">Usage Examples</h3> - -<h4 id="Kestrel-Example1:Consuming">Example 1: Consuming</h4> - -<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[ -from("kestrel://kserver02:22133/massive?concurrentConsumers=10&waitTimeMs=500") +</div></div><h3 id="Kestrel-UsageExamples">Usage Examples</h3><h4 id="Kestrel-Example1:Consuming">Example 1: Consuming</h4><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[from("kestrel://kserver02:22133/massive?concurrentConsumers=10&waitTimeMs=500") .bean("myConsumer", "onMessage"); ]]></script> -</div></div> - -<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[ -public class MyConsumer { +</div></div><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[public class MyConsumer { public void onMessage(String message) { ... } } ]]></script> -</div></div> - -<h4 id="Kestrel-Example2:Producing">Example 2: Producing</h4> - -<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[ -public class MyProducer { +</div></div><h4 id="Kestrel-Example2:Producing">Example 2: Producing</h4><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[public class MyProducer { @EndpointInject(uri = "kestrel://kserver01:22133,kserver02:22133/myqueue") ProducerTemplate producerTemplate; @@ -231,13 +166,8 @@ public class MyProducer { } } ]]></script> -</div></div> - -<h4 id="Kestrel-Example3:SpringXMLConfiguration">Example 3: Spring XML Configuration</h4> - -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> -<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[ - <camelContext xmlns="http://camel.apache.org/schema/spring"> +</div></div><h4 id="Kestrel-Example3:SpringXMLConfiguration">Example 3: Spring XML Configuration</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[ <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="kestrel://ks01:22133/sequential?concurrentConsumers=1&waitTimeMs=500"/> <bean ref="myBean" method="onMessage"/> @@ -248,53 +178,28 @@ public class MyProducer { </route> </camelContext> ]]></script> -</div></div> - -<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[ -public class MyBean { +</div></div><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[public class MyBean { public void onMessage(String message) { ... } } ]]></script> -</div></div> - -<h3 id="Kestrel-Dependencies">Dependencies</h3> - -<p>The Kestrel component has the following dependencies:</p> -<ul class="alternate"><li><code>spymemcached</code> 2.5 (or greater)</li></ul> - - -<h4 id="Kestrel-spymemcached">spymemcached</h4> -<p>You <strong>must</strong> have the <code>spymemcached</code> jar on your classpath. Here is a snippet you can use in your pom.xml:</p> -<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[ -<dependency> +</div></div><h3 id="Kestrel-Dependencies">Dependencies</h3><p>The Kestrel component has the following dependencies:</p><ul class="alternate"><li><code>spymemcached</code> 2.5 (or greater)</li></ul><h4 id="Kestrel-spymemcached">spymemcached</h4><p>You <strong>must</strong> have the <code>spymemcached</code> jar on your classpath. Here is a snippet you can use in your pom.xml:</p><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[<dependency> <groupId>spy</groupId> <artifactId>memcached</artifactId> <version>2.5</version> </dependency> ]]></script> -</div></div> -<p>Alternatively, you can <a shape="rect" class="external-link" href="http://code.google.com/p/spymemcached/downloads/list" rel="nofollow">download the jar</a> directly.</p> - - <div class="aui-message problem shadowed information-macro"> +</div></div><p>Alternatively, you can <a shape="rect" class="external-link" href="http://code.google.com/p/spymemcached/downloads/list" rel="nofollow">download the jar</a> directly.</p> <div class="aui-message problem shadowed information-macro"> <p class="title">Limitations</p> <span class="aui-icon icon-problem">Icon</span> <div class="message-content"> - -<p><strong>NOTE:</strong> The spymemcached client library does <strong>not</strong> work properly with kestrel when JVM assertions are enabled. There is a known issue with spymemcached when assertions are enabled and a requested key contains the <code>/t=...</code> extension (i.e. if you're using the <code>waitTimeMs</code> option on an endpoint URI, which is highly encouraged).</p> - -<p>Fortunately, JVM assertions are <strong>disabled by default</strong>, unless you <a shape="rect" class="external-link" href="http://download.oracle.com/javase/1.4.2/docs/guide/lang/assert.html" rel="nofollow">explicitly enable them</a>, so this should not present a problem under normal circumstances.</p> - -<p>Something to note is that Maven's Surefire test plugin <strong>enables</strong> assertions. If you're using this component in a Maven test environment, you may need to set <code>enableAssertions</code> to <code>false</code>. Please refer to the <a shape="rect" class="external-link" href="http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html">surefire:test reference</a> for details.</p> + <p><strong>NOTE:</strong> The spymemcached client library does <strong>not</strong> work properly with kestrel when JVM assertions are enabled. There is a known issue with spymemcached when assertions are enabled and a requested key contains the <code>/t=...</code> extension (i.e. if you're using the <code>waitTimeMs</code> option on an endpoint URI, which is highly encouraged).</p><p>Fortunately, JVM assertions are <strong>disabled by default</strong>, unless you <a shape="rect" class="external-link" href="http://download.oracle.com/javase/1.4.2/docs/guide/lang/assert.html" rel="nofollow">explicitly enable them</a>, so this should not present a problem under normal circumstances.</p><p>Something to note is that Maven's Surefire test plugin <strong>enables</strong> assertions. If you're using this component in a Maven test environment, you may need to set <code>enableAssertions</code> to <code>false</code>. Please refer to the <a shape="rect" class="exter nal-link" href="http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html">surefire:test reference</a> for details.</p> </div> </div> - - - -<h3 id="Kestrel-SeeAlso">See Also</h3> +<p></p><h3 id="Kestrel-SeeAlso">See Also</h3> <ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul></div> </td> <td valign="top">