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

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


The following commit(s) were added to refs/heads/main by this push:
     new 65aff78  CAMEL-16861: Cleanup and update EIP docs
65aff78 is described below

commit 65aff784280f466983dbf89356ba2e68009abbe8
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Sep 16 08:47:59 2021 +0200

    CAMEL-16861: Cleanup and update EIP docs
---
 .../docs/modules/eips/pages/content-enricher.adoc  |  4 +-
 .../modules/eips/pages/content-filter-eip.adoc     | 80 ++++++++++++++--------
 .../docs/modules/eips/pages/convertBodyTo-eip.adoc | 29 +++++++-
 3 files changed, 81 insertions(+), 32 deletions(-)

diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc
index cc62b0f..4d73a23 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc
@@ -79,8 +79,8 @@ explicit Java to enrich the message:
 from("direct:start")
     .process(new Processor() {
         public void process(Exchange exchange) {
-            Message in = exchange.getIn();
-            in.setBody(in.getBody(String.class) + " World!");
+            Message msg = exchange.getMessage();
+            msg.setBody(msg.getBody(String.class) + " World!");
         }
     })
     .to("mock:result");
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc
 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc
index f437ef0..604e404 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc
@@ -8,55 +8,77 @@ xref:enterprise-integration-patterns.adoc[EIP patterns]
 using one of the following mechanisms in the routing logic to transform
 content from the inbound message.
 
-* xref:message-translator.adoc[Message Translator]
-* invoking a xref:latest@manual:ROOT:bean-integration.adoc[Java bean]
-* xref:latest@manual:ROOT:processor.adoc[Processor] object
-
 image::eip/ContentFilter.gif[image]
 
-A common way to filter messages is to use an
-xref:latest@manual:ROOT:expression.adoc[Expression] in the 
xref:latest@manual:ROOT:dsl.adoc[DSL] like
-xref:components:languages:xquery-language.adoc[XQuery].
+* Using a xref:message-translator.adoc[Message Translator]
+* Invoking a xref:bean-eip.adoc[Bean] with the filtering programmed in Java
+* Using a xref:latest@manual:ROOT:processor.adoc[Processor] with the filtering 
programmed in Java
+* Using an xref:latest@manual:ROOT:expression.adoc[Expression]
+
+== Message Content filtering using a Processor
 
-Here is a simple example using the xref:latest@manual:ROOT:dsl.adoc[DSL] 
directly
+In this example we add our own 
xref:latest@manual:ROOT:processor.adoc[Processor] using
+explicit Java to filter the message:
+
+[source,java]
+----
+from("direct:start")
+    .process(new Processor() {
+        public void process(Exchange exchange) {
+            String body = exchange.getMessage().getBody(String.class);
+            // do something with the body
+            // and replace it back
+            exchange.getMessage().setBody(body);
+        }
+    })
+    .to("mock:result");
+----
 
-In this example we add our own 
xref:latest@manual:ROOT:processor.adoc[Processor]
+== Message Content filtering using a Bean EIP
 
-For further examples of this pattern in use you could look at one of the
-JUnit tests
+we can use xref:bean-eip.adoc[Bean EIP] to use any Java
+method on any bean to act as content filter:
 
-* 
https://github.com/apache/camel/blob/main/core/camel-core/src/test/java/org/apache/camel/processor/TransformTest.java[TransformTest]
-* 
https://github.com/apache/camel/blob/main/core/camel-core/src/test/java/org/apache/camel/processor/TransformViaDSLTest.java[TransformViaDSLTest]
+[source,java]
+----
+from("activemq:My.Queue")
+    .bean("myBeanName", "doFilter")
+    .to("activemq:Another.Queue");
+----
 
-== Using Spring XML
+And in XML DSL:
 
 [source,xml]
 ----
 <route>
-  <from uri="activemq:Input"/>
-  <bean ref="myBeanName" method="doTransform"/>
-  <to uri="activemq:Output"/>
+    <from uri="activemq:Input"/>
+    <bean ref="myBeanName" method="doFilter"/>
+    <to uri="activemq:Output"/>
 </route>
 ----
 
-You can also use XPath to filter out part of the message you are
-interested in:
+== Message Content filtering using expression
+
+Some languages like xref:components:languages:xpath-language.adoc[XPath], and 
xref:components:languages:xquery-language.adoc[XQuery]
+can be used to transform and filter content from messages.
+
+In the example we use xpath to filter a XML message to select all the 
`<foo><bar>` elements:
+
+[source,java]
+----
+from("activemq:Input")
+  .setBody().xpath("//foo:bar")
+  .to("activemq:Output");
+----
+
+And in XML DSL:
 
 [source,xml]
 ----
 <route>
   <from uri="activemq:Input"/>
-  <setBody><xpath resultType="org.w3c.dom.Document">//foo:bar</xpath></setBody>
+  <setBody><xpath>//foo:bar</xpath></setBody>
   <to uri="activemq:Output"/>
 </route> 
 ----
 
-[[ContentFilter-UsingThisPattern]]
-== Using This Pattern
-
-If you would like to use this EIP Pattern then please read the
-xref:latest@manual:ROOT:getting-started.adoc[Getting Started], you may also 
find the
-xref:latest@manual:ROOT:architecture.adoc[Architecture] useful particularly 
the description
-of xref:latest@manual:ROOT:endpoint.adoc[Endpoint] and 
xref:latest@manual:ROOT:uris.adoc[URIs]. Then you could
-try out some of the xref:latest@manual:ROOT:examples.adoc[Examples] first 
before trying
-this pattern out.
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/convertBodyTo-eip.adoc
 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/convertBodyTo-eip.adoc
index 8e9a0e84..a1525cc 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/convertBodyTo-eip.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/convertBodyTo-eip.adoc
@@ -5,7 +5,7 @@
 :since: 
 :supportLevel: Stable
 
-The ConvertBodyTo EIP allows you to transform your body to a different type.
+The ConvertBodyTo EIP allows you to transform the message body to a different 
type.
 
 // eip options: START
 The Convert Body To EIP supports 3 options which are listed below:
@@ -18,3 +18,30 @@ The Convert Body To EIP supports 3 options which are listed 
below:
 | *charset* | To use a specific charset when converting |  | String
 |===
 // eip options: END
+
+The type is a FQN classname (fully qualified), so for example 
`java.lang.String`, `com.foo.MyBean` etc.
+However, Camel has shorthand for common Java types, most noticeable `String` 
can be used instead of `java.lang.String`.
+You can also use `byte[]` for a byte array.
+
+== Example
+
+A common use-case is for converting the message body to a `String`:
+
+[source,java]
+----
+from("file:inbox")
+  .convertBodyTo(String.class)
+  .log("The file content: ${body}");
+----
+
+And in XML DSL:
+
+[source,xml]
+----
+<route>
+  <from uri="file:inbox"/>
+  <convertBodyTo type="String"/>
+  <log message="The file content: ${body}"/>
+</route>
+----
+

Reply via email to