Author: buildbot Date: Wed Jan 2 14:18:35 2013 New Revision: 844623 Log: Production update by buildbot for camel
Modified: websites/production/camel/content/cache/main.pageCache websites/production/camel/content/camel-2110-release.html websites/production/camel/content/groovy-dsl.html Modified: websites/production/camel/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/camel/content/camel-2110-release.html ============================================================================== --- websites/production/camel/content/camel-2110-release.html (original) +++ websites/production/camel/content/camel-2110-release.html Wed Jan 2 14:18:35 2013 @@ -144,7 +144,7 @@ <h2><a shape="rect" name="Camel2.11.0Release-DependencyUpgrades"></a>Dependency Upgrades</h2> -<ul><li>Aries Blueprint 0.3 to 1.0.0</li><li>Async Http Client 1.7.5 to 1.7.9</li><li>Avro 1.6.2 to 1.7.2</li><li>AWS 1.3.10 to 1.3.14</li><li>Axiom 1.2.10 to 1.2.12</li><li>BeanIO 2.0.0 to 2.0.2</li><li>Commons Exec 1.0.1 to 1.1</li><li>ConcurrentLinkedHashMap 1.2 to 1.3.2</li><li>Ehcache 2.5.1 to 2.6.0</li><li>Groovy 1.8.6 to 2.0.6</li><li>GSon 2.1 to 2.2.2</li><li>Hazelcast 2.0.2 to 2.4</li><li>HTTP Client 4.1.3 to 4.2.2</li><li>Icu4j 4.0.1 to 4.8.1.1</li><li>Jackson 1.9.7 to 1.9.10</li><li>Jaxen 1.1.3 to 1.1.4</li><li>JClouds 1.4.0 to 1.5.4</li><li>Jettison 1.3.1 to 1.3.2</li><li>Jetty 7.5.4 to 7.6.8</li><li>JRuby 1.6.7 to 1.7.1</li><li>JT400 6.0 to 6.7</li><li>Krati 0.4.5 to 0.4.6</li><li>LevelDBJNI 1.2 to 1.3</li><li>Lucene 3.6.0 to 3.6.1</li><li>Mina 2.0.4 to 2.0.7</li><li>MongoDB Java Driver 2.7.3 to 2.9.1</li><li>MQTTClient 1.2 to 1.4</li><li>Netty 3.5.1 to 3.5.11</li><li>Ognl bundle 3.0.4_1 to 3.0.5_1</li><li>OSGi 4.2.0 to 4.3.0</li><li>Pax Logging 1.5.3 to 1.6.10< /li><li>QPid 0.16 to 0.18</li><li>Quartz 1.8.5 to 1.8.6</li><li>Restlet 2.0.14 to 2.0.15</li><li>Saxon 9.3.0.11 to 9.4.0.1</li><li>Scala 2.9.1 to 2.9.2</li><li>Shiro 1.2.0 to 1.2.1</li><li>SLF4J 1.6.6 to 1.7.2</li><li>Solr 3.6.0 to 3.6.1</li><li>Spring Batch 2.1.8 to 2.1.9</li><li>Spring Framework 3.1.1 to 3.1.2</li><li>Spring Integration 2.1.2 to 2.1.4</li><li>Spring Security 3.1.0 to 3.1.3</li><li>SSHD 0.6.0 to 0.8.0</li><li>TestNG 6.0.1 to 6.8</li><li>Woodstox 4.1.2 to 4.1.3</li><li>XStream 1.4.2 to 1.4.3</li></ul> +<ul><li>Aries Blueprint 0.3 to 1.0.0</li><li>Async Http Client 1.7.5 to 1.7.9</li><li>Avro 1.6.2 to 1.7.2</li><li>AWS 1.3.10 to 1.3.14</li><li>Axiom 1.2.10 to 1.2.12</li><li>BeanIO 2.0.0 to 2.0.2</li><li>Commons Exec 1.0.1 to 1.1</li><li>ConcurrentLinkedHashMap 1.2 to 1.3.2</li><li>Ehcache 2.5.1 to 2.6.0</li><li>Groovy 1.8.6 to 2.0.6</li><li>GSon 2.1 to 2.2.2</li><li>Hazelcast 2.0.2 to 2.4</li><li>HBase 0.90.5 to 0.94.2</li><li>HTTP Client 4.1.3 to 4.2.2</li><li>Icu4j 4.0.1 to 4.8.1.1</li><li>Jackson 1.9.7 to 1.9.10</li><li>Jaxen 1.1.3 to 1.1.4</li><li>JClouds 1.4.0 to 1.5.4</li><li>Jettison 1.3.1 to 1.3.2</li><li>Jetty 7.5.4 to 7.6.8</li><li>JRuby 1.6.7 to 1.7.1</li><li>JT400 6.0 to 6.7</li><li>Krati 0.4.5 to 0.4.6</li><li>LevelDBJNI 1.2 to 1.3</li><li>Lucene 3.6.0 to 3.6.1</li><li>Mina 2.0.4 to 2.0.7</li><li>MongoDB Java Driver 2.7.3 to 2.9.1</li><li>MQTTClient 1.2 to 1.4</li><li>Netty 3.5.1 to 3.5.11</li><li>Ognl bundle 3.0.4_1 to 3.0.5_1</li><li>OSGi 4.2.0 to 4.3.0</li>< li>Pax Logging 1.5.3 to 1.6.10</li><li>QPid 0.16 to 0.18</li><li>Quartz 1.8.5 to 1.8.6</li><li>Restlet 2.0.14 to 2.0.15</li><li>Saxon 9.3.0.11 to 9.4.0.1</li><li>Scala 2.9.1 to 2.9.2</li><li>Shiro 1.2.0 to 1.2.1</li><li>SLF4J 1.6.6 to 1.7.2</li><li>Solr 3.6.0 to 3.6.1</li><li>Spring Batch 2.1.8 to 2.1.9</li><li>Spring Framework 3.1.1 to 3.1.2</li><li>Spring Integration 2.1.2 to 2.1.4</li><li>Spring Security 3.1.0 to 3.1.3</li><li>SSHD 0.6.0 to 0.8.0</li><li>StringTemplate 3.2.1 to 4.0.2</li><li>TestNG 6.0.1 to 6.8</li><li>TWitter4j 2.2.5 to 3.0.3</li><li>Woodstox 4.1.2 to 4.1.3</li><li>XStream 1.4.2 to 1.4.3</li></ul> <h2><a shape="rect" name="Camel2.11.0Release-Importantchangestoconsiderwhenupgrading"></a>Important changes to consider when upgrading</h2> Modified: websites/production/camel/content/groovy-dsl.html ============================================================================== --- websites/production/camel/content/groovy-dsl.html (original) +++ websites/production/camel/content/groovy-dsl.html Wed Jan 2 14:18:35 2013 @@ -300,7 +300,78 @@ def x = <span class="code-quote">"It is <p>Because GStrings aren't Strings, camel-groovy adds the necessary <a shape="rect" href="type-converter.html" title="Type Converter">TypeConverter</a> to automatically turn them into the required type.</p> -<h4><a shape="rect" name="GroovyDSL-CustomDSLextensions"></a>Custom DSL extensions</h4></div> +<h4><a shape="rect" name="GroovyDSL-CustomDSLextensions"></a>Custom DSL extensions</h4> + +<p>You can easily define your custom extensions - be it as a Java DSL extension for your Groovy routes or for any other class unrelated to Camel. All you have to do is to write your extension methods and provide a extension module descriptor - the details are described in the <a shape="rect" class="external-link" href="http://docs.codehaus.org/display/GROOVY/Creating+an+extension+module" rel="nofollow">Groovy documentation</a>. And as long as you don't require other extension methods, you can even use plain Java code to achieve this!<br clear="none"> +As an example, let's write two DSL extensions to make commonly used DSL methods more concise:</p> + +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>MyExtension.java</b></div><div class="codeContent panelContent"> +<pre class="code-java"> + +<span class="code-keyword">import</span> org.apache.camel.Endpoint; +<span class="code-keyword">import</span> org.apache.camel.Predicate; + +<span class="code-keyword">public</span> <span class="code-keyword">final</span> class MyExtension { + <span class="code-keyword">private</span> MyExtension() { + <span class="code-comment">// Utility <span class="code-object">Class</span> +</span> } + + <span class="code-comment">// Set the id of a route to its consumer URI +</span> <span class="code-keyword">public</span> <span class="code-keyword">static</span> RouteDefinition fromId(RouteDefinition delegate, <span class="code-object">String</span> uri) { + <span class="code-keyword">return</span> delegate.from(uri).routeId(uri); + } + + <span class="code-keyword">public</span> <span class="code-keyword">static</span> RouteDefinition fromId(RouteDefinition delegate, Endpoint endpoint) { + <span class="code-keyword">return</span> delegate.from(endpoint).routeId(endpoint.getEndpointUri()); + } + + <span class="code-comment">// Make common choice pattern more concise +</span> + <span class="code-keyword">public</span> <span class="code-keyword">static</span> ProcessorDefinition<?> fork(ProcessorDefinition<?> delegate, <span class="code-object">String</span> uri1, <span class="code-object">String</span> uri2, Predicate predicate) { + <span class="code-keyword">return</span> delegate.choice().when(predicate).to(uri1).otherwise().to(uri2); + } + +} +</pre> +</div></div> + +<p>Add a corresponding extension module descriptor to <tt>META-INF/services</tt>:</p> + +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>META-INF/services/org.codehaus.groovy.runtime.ExtensionModule</b></div><div class="codeContent panelContent"> +<pre class="code-java"> +moduleName=my-extension +moduleVersion=2.11 +extensionClasses=MyExtension +staticExtensionClasses= +</pre> +</div></div> + +<p>And now your Groovy route can look like this:</p> + +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>MyRoute.groovy</b></div><div class="codeContent panelContent"> +<pre class="code-java"> +... + fromId('direct:test1') + .fork('direct:<span class="code-keyword">null</span>','direct:not-<span class="code-keyword">null</span>',body().isNull()) +... +</pre> +</div></div> + +<p>Using the plain Java DSL, the route would look something like this:</p> + +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>MyRoute.java</b></div><div class="codeContent panelContent"> +<pre class="code-java"> +... + from(<span class="code-quote">"direct:test1"</span>) + .routeId(<span class="code-quote">"direct:test1"</span>) + .choice() + .when(body().isNull()) + .to(<span class="code-quote">"direct:<span class="code-keyword">null</span>"</span>) + .otherwise() + .to(<span class="code-quote">"direct:not-<span class="code-keyword">null</span>"</span>); +... +</pre> +</div></div></div> </td> <td valign="top"> <div class="navigation">