You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pa...@apache.org on 2019/09/12 09:38:13 UTC

[camel] branch master updated: Delete documentation of the Groovy DSL which was removed in Camel 3.

This is an automated email from the ASF dual-hosted git repository.

pascalschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 2d17610  Delete documentation of the Groovy DSL which was removed in Camel 3.
2d17610 is described below

commit 2d1761094367f8127d4a0009bf818a5f0a15be6b
Author: Pascal Schumacher <pa...@gmx.net>
AuthorDate: Thu Sep 12 11:37:42 2019 +0200

    Delete documentation of the Groovy DSL which was removed in Camel 3.
---
 docs/user-manual/modules/ROOT/nav.adoc             |   1 -
 .../modules/ROOT/pages/camel-maven-archetypes.adoc |   3 -
 docs/user-manual/modules/ROOT/pages/dsl.adoc       |   2 -
 .../faq/how-does-camel-compare-to-synapse.adoc     |   3 +-
 ...se-when-or-otherwise-in-a-java-camel-route.adoc |   2 +-
 .../user-manual/modules/ROOT/pages/groovy-dsl.adoc | 396 ---------------------
 docs/user-manual/modules/ROOT/pages/index.adoc     |   1 -
 7 files changed, 2 insertions(+), 406 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/nav.adoc b/docs/user-manual/modules/ROOT/nav.adoc
index 1c40a35..cdff415 100644
--- a/docs/user-manual/modules/ROOT/nav.adoc
+++ b/docs/user-manual/modules/ROOT/nav.adoc
@@ -49,7 +49,6 @@
  ** xref:dsl.adoc[Camel Domain Specific Language]
  ** xref:java-dsl.adoc[Java DSL]
  ** xref:spring.adoc[Spring support]
- ** xref:groovy-dsl.adoc[Groovy DSL]
 * xref:using-osgi-blueprint-with-camel.adoc[Using OSGi blueprint with Camel]
 * Supported expression languages
  ** xref:constant-language.adoc[Constant Language]
diff --git a/docs/user-manual/modules/ROOT/pages/camel-maven-archetypes.adoc b/docs/user-manual/modules/ROOT/pages/camel-maven-archetypes.adoc
index d820a96..3d08522 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-maven-archetypes.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-maven-archetypes.adoc
@@ -41,9 +41,6 @@ creating a new Maven project for Camel xref:data-format.adoc[Data
 Format]s. Use this if there is a data format missing in Camel that you
 want to create yourself.
 
-|camel-archetype-groovy |*Camel 2.11:* This archetype is used to create
-a new Maven project for Camel using Groovy DSL.
-
 |camel-archetype-java |This archetype is used to create a new Maven
 project for Camel routes using Java DSL.
 
diff --git a/docs/user-manual/modules/ROOT/pages/dsl.adoc b/docs/user-manual/modules/ROOT/pages/dsl.adoc
index 925d4a0..a4456dc 100644
--- a/docs/user-manual/modules/ROOT/pages/dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/dsl.adoc
@@ -13,8 +13,6 @@ builder style.
 DSL in OSGi Blueprint XML files
 * Rest DSL - A DSL to define REST services using a
 REST style in either Java or XML.
-* xref:groovy-dsl.adoc[Groovy DSL] - A Groovy based DSL using Groovy
-programming language
 * xref:bean-integration.adoc[Annotation DSL] - Use annotations in Java
 beans.
 * https://github.com/koolio/kool/tree/master/kool-camel[Kotlin DSL] -
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc
index c8baf1b..f251806 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc
@@ -22,8 +22,7 @@ http://www.nabble.com/Apache-f90.html[very popular too].
 * Camel is designed from the ground up around
 xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] -- having an EIP pattern language implemented in
-xref:dsl.adoc[Java], xref:components::spring.adoc[Spring XML]
-and xref:groovy-dsl.adoc[Groovy].
+xref:dsl.adoc[Java] and xref:components::spring.adoc[Spring XML].
 * Camel is designed to work with pretty much all kinds of
 xref:transport.adoc[transport] as well as working with any
 xref:data-format.adoc[Data Format]. When we first looked at Synapse it
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc
index f0c2581..6cdbc6d 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc
@@ -56,7 +56,7 @@ from("direct:start")
 But the code will still not compile. The reason is we have stretched how
 far we can take the good old Java language in terms of
 xref:dsl.adoc[DSL]. In a more modern language such as
-Scala or xref:groovy-dsl.adoc[Groovy] you would be able
+Scala or Groovy you would be able
 to let it be stack based, so the `.end()` will pop the last type of the
 stack, and you would return back to the scope of the
 xref:content-based-router-eip.adoc[Content Based Router]. However that's not
diff --git a/docs/user-manual/modules/ROOT/pages/groovy-dsl.adoc b/docs/user-manual/modules/ROOT/pages/groovy-dsl.adoc
deleted file mode 100644
index e04fc0a..0000000
--- a/docs/user-manual/modules/ROOT/pages/groovy-dsl.adoc
+++ /dev/null
@@ -1,396 +0,0 @@
-[[GroovyDSL-AbouttheGroovyDSL]]
-= About the Groovy DSL
-
-The Groovy DSL implementation is built on top of the existing Java-based
-DSL, but it additionally allows to use Groovy language
-features in your routes, particularly
-http://www.groovy-lang.org/closures.html[Closures] acting as
-Processor, Expression,
-Predicate, or xref:aggregate-eip.adoc[Aggregation
-Strategy]. +
- With the Groovy DSL you write your RouteBuilder classes entirely in
-Groovy, while the scripting component
-allows to embed small scripts into Java routes. The Groovy DSL requires
-Groovy 2.0 or newer and is available as of *Camel 2.11*.
-
-[[GroovyDSL-Introduction]]
-== Introduction
-
-Because Groovy is syntactically very similar to Java, you can write your
-Groovy routes just like Java routes. The same Java DSL classes are being
-used, with the exception that some of the DSL classes get extended with
-a bunch of new methods at runtime. This is achieved by turning
-camel-groovy into a Groovy
-http://docs.codehaus.org/display/GROOVY/Creating+an+extension+module[Extension
-Module] that defines extension methods on existing classes.
-
-The majority of the extension methods allow
-http://www.groovy-lang.org/closures.html[Closures] to be used as
-parameters e.g. for expressions, predicates, processors. The following
-example reverses a string in the message body and then prints the value
-to System.out:
-
-*MyRouteBuilder.groovy*
-
-[source,java]
------------------------------------------
-...
-   from('direct:test')
-      .transform { it.in.body.reverse() }
-      .process { println it.in.body }
-...
------------------------------------------
-
-The corresponding route in Java would look something like this:
-
-*MyRouteBuilder.java*
-
-[source,java]
------------------------------------------------------------------------------------------
-...
-   from("direct:test")
-      .transform(new Expression() {
-         @Override
-         public Object evaluate(Exchange e) {
-            return new StringBuffer(e.getIn().getBody().toString()).reverse().toString();
-         }
-      })
-      .process(new Processor() {
-         @Override
-         public void process(Exchange e) {
-           System.out.println(e.getIn().getBody());
-         }
-      });
-...
------------------------------------------------------------------------------------------
-
-[[GroovyDSL-DevelopingwiththeGroovyDSL]]
-== Developing with the Groovy DSL
-
-To be able to use the Groovy DSL in your camel routes you need to add
-the a dependency on *camel-groovy* which implements the Groovy DSL.
-
-If you use Maven you can just add the following to your pom.xml,
-substituting the version number for the latest & greatest release (see
-the download page for the latest versions).
-
-[source,xml]
----------------------------------------
-<dependency>
-  <groupId>org.apache.camel</groupId>
-  <artifactId>camel-groovy</artifactId>
-  <version>2.11.0</version>
-</dependency>
----------------------------------------
-
-Additionally you need to make sure that the Groovy classes will be
-compiled. You can either use gmaven for this or, particularly with mixed
-projects containing Java and Groovy code, you might want to use the
-http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven[Groovy
-Eclipse compiler]:
-
-[source,xml]
---------------------------------------------------------
-  <plugin>
-    <artifactId>maven-compiler-plugin</artifactId>
-    <configuration>
-      <compilerId>groovy-eclipse-compiler</compilerId>
-    </configuration>
-    <dependencies>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-eclipse-compiler</artifactId>
-    <version>2.7.0-01</version>
-      </dependency>
-    </dependencies>
-  </plugin>
---------------------------------------------------------
-
-As Eclipse user, you might want to configure the Maven Eclipse plugin in
-a way so that your project is set up correctly for using
-http://groovy.codehaus.org/Eclipse+Plugin[Eclipse Plugin for Groovy]
-when `mvn eclipse:eclipse` is executed:
-
-[source,xml]
-----------------------------------------------------------------------------------------
-  <plugin>
-    <groupId>org.apache.maven.plugins</groupId>
-    <artifactId>maven-eclipse-plugin</artifactId>
-    <configuration>
-      <additionalProjectnatures>
-        <projectnature>org.eclipse.jdt.groovy.core.groovyNature</projectnature>
-      </additionalProjectnatures>
-      <classpathContainers>
-        <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
-        <classpathContainer>GROOVY_DSL_SUPPORT</classpathContainer>
-      </classpathContainers>              
-    </configuration>
-  </plugin>     
-----------------------------------------------------------------------------------------
-
-[[GroovyDSL-UsingClosuresinyourroutes]]
-== Using Closures in your routes
-
-Groovy closures can be used to write concise implementations of Camel
-processors, expressions, predicates, and aggregation strategies. It is
-recommended to keep more complicated implementations of these objects in
-their own classes, e.g. to be able to test them more easily and not to
-clutter up your routes with business logic.
-
-[[GroovyDSL-ProcessorClosures]]
-Processor Closures
-
-All Java DSL parameters of type `org.apache.camel.Processor` can be
-replaced by a closure that accepts an object of type
-`org.apache.camel.Exchange` as only parameter. The return value of the
-closure is disregarded. All closures may also refer to variables not
-listed in their parameter list. Example:
-
-[source,java]
-------------------------------------------------------------------------------
-...
-   private String someValue
-...
-   from('direct:test')
-      .process { Exchange exchange -> println (exchange.in.body + someValue) }
-      .process { println (it.in.body + someValue) } // equivalent
-...
-------------------------------------------------------------------------------
-
-[[GroovyDSL-ExpressionClosures]]
-Expression Closures
-
-All Java DSL parameters of type `org.apache.camel.Expression` can be
-replaced by a closure that accepts an object of type
-`org.apache.camel.Exchange` as only parameter. The return value of the
-closure is the result of the expression. Example:
-
-[source,java]
------------------------------------------------------
-...
-   private String someValue
-...
-   from('direct:test')
-      .transform { it.in.body.reverse() + someValue }
-      .setHeader("myHeader") { someValue.reverse() }
-...
------------------------------------------------------
-
-[[GroovyDSL-PredicateClosures]]
-Predicate Closures
-
-All Java DSL parameters of type `org.apache.camel.Predicate` can be
-replaced by a closure that accepts an object of type
-`org.apache.camel.Exchange` as only parameter. The return value of the
-closure is translated into a boolean value representing the result of
-the predicate. Example:
-
-[source,java]
-------------------------------------------------------
-...
-   private String someValue
-
-   // This time, the closure is stored in a variable
-   def pred = { Exchange e -> e.in.body != someValue }
-...
-   from('direct:test')
-      .filter(pred)
-...
-------------------------------------------------------
-
-[[GroovyDSL-AggregationStrategyClosures]]
-Aggregation Strategy Closures
-
-Java DSL parameters of type
-`org.apache.camel.AggregationStrategy` can be
-replaced by a closure that accepts two objects of type
-`org.apache.camel.Exchange` representing the two Exchanges to be
-aggregated. The return value of the closure must be the aggregated
-Exchange. Example:
-
-[source,java]
--------------------------------------------------------------------------
-...
-   private String separator
-...
-   from('direct:test1')
-      .enrich('direct:enrich') { Exchange original, Exchange resource -> 
-         original.in.body += resource.in.body + separator
-         original  // don't forget to return resulting exchange
-      }
-...
--------------------------------------------------------------------------
-
-[[GroovyDSL-Genericclosurebridges]]
-Generic closure bridges
-
-In addition to the above-mentioned DSL extensions, you can use closures
-even if no DSL method signature with closure parameters is available.
-Assuming there's no `filter(Closure)` method, you could instead write:
-
-[source,java]
----------------------------------------------------------
-...
-   private String someValue
-
-   // This time, the closure is stored in a variable
-   def pred = { Exchange e -> e.in.body != someValue }
-...
-   from('direct:test')
-      // predicate(Closure) -> org.apache.camel.Predicate
-      .filter(predicate(pred))
-...
----------------------------------------------------------
-
-Similarly, `expression(Closure)` returns a Camel expression,
-`processor(Closure)` returns a Processor, and `aggregator(Closure)`
-returns an AggregationStrategy.
-
-[[GroovyDSL-UsingGroovyXMLprocessing]]
-== Using Groovy XML processing
-
-Groovy provides special http://groovy-lang.org/processing-xml.html[XML
-processing support] through its `XmlParser`, `XmlNodePrinter` and
-`XmlSlurper` classes. camel-groovy provides two
-data formats to use these classes directly in
-your routes.
-
-*Unmarshal XML with XmlParser*
-
-[source,java]
------------------------------------------------------
-...
-   from('direct:test1')
-      .unmarshal().gnode() 
-      // message body is now of type groovy.util.Node
-...
------------------------------------------------------
-
-By default, XML processing is _namespace-aware_. You can change this by
-providing a boolean `false` parameter.
-
-*Unmarshal XML with XmlSlurper*
-
-[source,java]
----------------------------------------------------------------------------
-...
-   from('direct:test1')
-      .unmarshal().gpath(false) // explicitly namespace-unaware
-      // message body is now of type groovy.util.slurpersupport.GPathResult
-...
----------------------------------------------------------------------------
-
-Currently, marshalling is only supported for `groovy.util.Node` objects.
-
-*Marshal XML with XmlNodePrinter*
-
-[source,java]
-------------------------------------------------------
-...
-   from('direct:test1')
-      // message body must be of type groovy.util.Node
-      .marshal().gnode()
-...
-------------------------------------------------------
-
-[[GroovyDSL-UsingGroovyGStrings]]
-== Using Groovy GStrings
-
-Groovy
-http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings[GStrings]
-are declared inside double-quotes and can contain arbitrary Groovy
-expressions like accessing properties or calling methods, e.g.
-
-[source,java]
------------------------------------------
-def x = "It is currently ${ new Date() }"
------------------------------------------
-
-Because GStrings aren't Strings, camel-groovy adds the necessary
-TypeConverter to automatically turn them into
-the required type.
-
-[[GroovyDSL-CustomDSLextensions]]
-== Custom DSL extensions
-
-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
-http://www.groovy-lang.org/metaprogramming.html#_extension_modules[Groovy
-documentation]. And as long as you don't require other extension
-methods, you can even use plain Java code to achieve this! +
- As an example, let's write two DSL extensions to make commonly used DSL
-methods more concise:
-
-*MyExtension.java*
-
-[source,java]
--------------------------------------------------------------------------------------------------------------------------------
-import org.apache.camel.Endpoint;
-import org.apache.camel.Predicate;
-
-public final class MyExtension {
-    private MyExtension() {
-        // Utility Class
-    }
-
-    // Set the id of a route to its consumer URI
-    public static RouteDefinition fromId(RouteDefinition delegate, String uri) {
-       return delegate.from(uri).routeId(uri);
-    }
-
-    public static RouteDefinition fromId(RouteDefinition delegate, Endpoint endpoint) {
-       return delegate.from(endpoint).routeId(endpoint.getEndpointUri());
-    }
-
-    // Make common choice pattern more concise
-
-    public static ProcessorDefinition<?> fork(ProcessorDefinition<?> delegate, String uri1, String uri2, Predicate predicate) {
-       return delegate.choice().when(predicate).to(uri1).otherwise().to(uri2);
-    }
-
-}
--------------------------------------------------------------------------------------------------------------------------------
-
-Add a corresponding extension module descriptor to `META-INF/services`:
-
-*META-INF/services/org.codehaus.groovy.runtime.ExtensionModule*
-
-[source,java]
-----------------------------
-moduleName=my-extension
-moduleVersion=2.11
-extensionClasses=MyExtension
-staticExtensionClasses=
-----------------------------
-
-And now your Groovy route can look like this:
-
-*MyRoute.groovy*
-
-[source,java]
-------------------------------------------------------------
-...
-   fromId('direct:test1')
-      .fork('direct:null','direct:not-null',body().isNull())
-...
-------------------------------------------------------------
-
-Using the plain Java DSL, the route would look something like this:
-
-*MyRoute.java*
-
-[source,java]
------------------------------------
-...
-   from("direct:test1")
-      .routeId("direct:test1")
-      .choice()
-         .when(body().isNull())
-            .to("direct:null")
-         .otherwise()
-            .to("direct:not-null");
-...
------------------------------------
-
diff --git a/docs/user-manual/modules/ROOT/pages/index.adoc b/docs/user-manual/modules/ROOT/pages/index.adoc
index a18351b..91f102e 100644
--- a/docs/user-manual/modules/ROOT/pages/index.adoc
+++ b/docs/user-manual/modules/ROOT/pages/index.adoc
@@ -126,7 +126,6 @@ camel routes without them knowing
 * xref:components::spring.adoc[Spring DSL]
 * xref:using-osgi-blueprint-with-camel.adoc[Blueprint DSL]
 * xref:rest-dsl.adoc[Rest DSL]
-* xref:groovy-dsl.adoc[Groovy DSL]
 * xref:bean-integration.adoc[Annotation DSL]
 * Kotlin DSL