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 dcb33f0  CAMEL-16861: Cleanup and update EIP docs
dcb33f0 is described below

commit dcb33f089d14793a897dd4b738821793410e9e82
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Oct 11 12:23:43 2021 +0200

    CAMEL-16861: Cleanup and update EIP docs
---
 .../modules/eips/pages/point-to-point-channel.adoc |  2 +
 .../docs/modules/eips/pages/process-manager.adoc   | 21 ++++---
 .../eips/pages/publish-subscribe-channel.adoc      | 69 +++++++++++-----------
 3 files changed, 52 insertions(+), 40 deletions(-)

diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/point-to-point-channel.adoc
 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/point-to-point-channel.adoc
index 2643815..92a9347 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/point-to-point-channel.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/point-to-point-channel.adoc
@@ -21,6 +21,8 @@ The Point to Point Channel is supported in Camel by messaging 
based xref:compone
 
 There are also messaging based in the cloud from cloud providers such as 
Amazon, Google and Azure.
 
+TIP: See also the related xref:publish-subscribe-channel.adoc[Publish Scribe 
Channel] EIP
+
 == Example
 
 The following example demonstrates point to point messaging using
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/process-manager.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/process-manager.adoc
index af6ceed..60a06d0 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/process-manager.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/process-manager.adoc
@@ -4,12 +4,6 @@ Camel supports the
 
https://www.enterpriseintegrationpatterns.com/patterns/messaging/ProcessManager.html[Process
 Manager]
 from the xref:enterprise-integration-patterns.adoc[EIP patterns] book.
 
-The xref:routingSlip-eip.adoc[Routing Slip] demonstrates how a message can be 
routed through a dynamic series of processing steps.
-The solution of the Routing Slip is based on two key assumptions: the sequence 
of processing steps has
-to be determined up-front and the sequence is linear. In many cases, these 
assumptions may not be fulfilled.
-For example, routing decisions might have to be made based on intermediate 
results.
-Or, the processing steps may not be sequential, but multiple steps might be 
executed in parallel.
-
 How do we route a message through multiple processing steps when the required 
steps may not be known
 at design-time and may not be sequential?
 
@@ -18,7 +12,20 @@ image::eip/ProcessManager.gif[image]
 Use a central processing unit, a Process Manager, to maintain the state of the 
sequence and determine
 the next processing step based on intermediate results.
 
-With Camel this pattern is implemented by using the 
xref:dynamicRouter-eip.adoc[Dynamic Router] pattern.
+With Camel this pattern is implemented by using the 
xref:dynamicRouter-eip.adoc[Dynamic Router] EIP.
 Camel's implementation of the dynamic router maintains the state of the 
sequence, and allows
 to determine the next processing step based dynamically.
 
+== Routing Slip vs Dynamic Router
+
+On the other hand the xref:routingSlip-eip.adoc[Routing Slip] EIP demonstrates 
how a message can be routed
+through a dynamic series of processing steps. The solution of the Routing Slip 
is based on two key assumptions:
+
+- the sequence of processing steps has to be determined up-front
+- and the sequence is linear.
+
+In many cases, these assumptions may not be fulfilled.
+For example, routing decisions might have to be made based on intermediate 
results.
+Or, the processing steps may not be sequential, but multiple steps might be 
executed in parallel.
+
+
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/publish-subscribe-channel.adoc
 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/publish-subscribe-channel.adoc
index 8e8c774..aeead0b 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/publish-subscribe-channel.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/publish-subscribe-channel.adoc
@@ -1,53 +1,56 @@
 = Publish Subscribe Channel
 
 Camel supports the
-http://www.enterpriseintegrationpatterns.com/PublishSubscribeChannel.html[Publish
-Subscribe Channel] from the
-xref:enterprise-integration-patterns.adoc[EIP patterns] using for
-example the following components:
-
-* xref:components::jms-component.adoc[JMS] for working with JMS Topics for 
high performance,
-clustering and load balancing
-* xref:components::xmpp-component.adoc[XMPP] when using rooms for group 
communication
-* xref:components::seda-component.adoc[SEDA] for working with SEDA in the same
-xref:latest@manual:ROOT:camelcontext.adoc[CamelContext] which can work in 
pub-sub, but
-allowing multiple consumers.
-* xref:components::vm-component.adoc[VM] as SEDA but for intra-JVM.
+http://www.enterpriseintegrationpatterns.com/PublishSubscribeChannel.html[Publish
 Subscribe Channel]
+from the xref:enterprise-integration-patterns.adoc[EIP patterns].
+
+How can the sender broadcast an event to all interested receivers?
 
 image::eip/PublishSubscribeSolution.gif[image]
 
-[[PublishSubscribeChannel-Samples]]
-== Samples
+Send the event on a Publish-Subscribe Channel, which delivers a copy of a 
particular event to each receiver.
+
+The Publish-Subscribe Channel is supported in Camel by messaging based 
xref:components::index.adoc[Components], such as:
+
+* xref:components::amqp-component.adoc[AMQP] for working with AMQP Queues
+* xref:components::jms-component.adoc[ActiveMQ], or 
xref:components::jms-component.adoc[JMS] for working with JMS Queues
+* xref:components::seda-component.adoc[SEDA] for internal Camel seda queue 
based messaging
+* xref:components::spring-rabbitmq-component.adoc[Spring RabbitMQ] for working 
with AMQP Queues (RabbitMQ)
+
+There are also messaging based in the cloud from cloud providers such as 
Amazon, Google and Azure.
+
+TIP: See also the related xref:point-to-point-channel.adoc[Point to Point 
Channel] EIP
 
-Another option is to explicitly list the publish-subscribe relationship
-in your routing logic; this keeps the producer and consumer decoupled
-but lets you control the fine grained routing configuration using the
-xref:latest@manual:ROOT:dsl.adoc[DSL].
+== Example
 
-In Java code:
+The following example demonstrates publish sbuscriber messaging using
+the xref:components::jms-component.adoc[JMS] component with JMS topics:
 
 [source,java]
 ----
-from("direct:a")
-    .multicast()
-      .to("direct:b")
-      .to("direct:c")
-      .to("direct:d")
-    .end() // end multicast
+from("direct:start")
+    .to("jms:topic:cheese");
+
+from("jms:topic:cheese")
+    .to("bean:foo");
+
+from("jms:topic:cheese")
+    .to("bean:bar");
 ----
 
 And in XML:
 
 [source,xml]
 ----
-<camelContext xmlns="http://camel.apache.org/schema/spring";>
+<routes>
     <route>
-        <from uri="direct:a"/>
-        <multicast>
-            <to uri="direct:b"/>
-            <to uri="direct:c"/>
-            <to uri="direct:d"/>
-        </multicast>
+        <from uri="direct:start"/>
+        <to uri="jms:queue:foo"/>
     </route>
-</camelContext>
+    <route>
+        <from uri="jms:queue:foo"/>
+        <to uri="bean:foo"/>
+    </route>
+</routes>
 ----
+

Reply via email to