You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/05/18 14:17:05 UTC

[camel-examples] 02/02: CAMEL-15068: camel-example-main-endpointdsl - Add example using Endpoing DSL

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

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

commit 55e4281339ea907cb2be6d94dd1734530cdef908
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon May 18 16:16:47 2020 +0200

    CAMEL-15068: camel-example-main-endpointdsl - Add example using Endpoing DSL
---
 examples/README.adoc                                     |  4 +++-
 .../src/main/java/org/apache/camel/example/MyBean.java   |  6 ++----
 .../java/org/apache/camel/example/MyRouteBuilder.java    | 16 ++++++++++++++--
 .../src/main/resources/application.properties            |  3 ---
 4 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/examples/README.adoc b/examples/README.adoc
index 3d235bc..27c6321 100644
--- a/examples/README.adoc
+++ b/examples/README.adoc
@@ -11,7 +11,7 @@ View the individual example READMEs for details.
 == Examples
 
 // examples: START
-Number of Examples: 84 (0 deprecated)
+Number of Examples: 85 (0 deprecated)
 
 [width="100%",cols="4,2,4",options="header"]
 |===
@@ -37,6 +37,8 @@ Number of Examples: 84 (0 deprecated)
 
 | link:camel-example-main/readme.adoc[Main] (camel-example-main) | Beginner | An example for showing standalone Camel
 
+| link:camel-example-main-endpointdsl/readme.adoc[Main Endpointdsl] (camel-example-main-endpointdsl) | Beginner | An example for showing standalone Camel with Endpoint DSL
+
 | link:camel-example-main-tiny/readme.adoc[Main Tiny] (camel-example-main-tiny) | Beginner | An example for showing standalone Camel with as few JARs on classpath as possible
 
 | link:camel-example-main-xml/readme.adoc[Main Xml] (camel-example-main-xml) | Beginner | An example for showing standalone Camel using XML
diff --git a/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyBean.java b/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyBean.java
index 348a0a6..c8f350f 100644
--- a/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyBean.java
+++ b/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyBean.java
@@ -16,12 +16,10 @@
  */
 package org.apache.camel.example;
 
-import org.apache.camel.spi.Configurer;
-
-@Configurer
 public class MyBean {
 
     private String hi;
+    private int counter;
 
     public String getHi() {
         return hi;
@@ -32,7 +30,7 @@ public class MyBean {
     }
 
     public String hello() {
-        return hi + " how are you?";
+        return hi + " how are you? I am called " + ++counter + " times";
     }
 
 }
diff --git a/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyRouteBuilder.java
index 41e0bf9..c1c14cd 100644
--- a/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyRouteBuilder.java
+++ b/examples/camel-example-main-endpointdsl/src/main/java/org/apache/camel/example/MyRouteBuilder.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.example;
 
+import org.apache.camel.BeanScope;
 import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
 
 /**
@@ -25,8 +26,19 @@ public class MyRouteBuilder extends EndpointRouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        from(timer("foo").period("{{myPeriod}}"))
-            .to(bean("myBean").method("hello"))
+        // the endpoint-dsl allows to define endpoints in type safe fluent builders
+        // here we configure the time and bean endpoint
+
+        from(timer("foo")
+                .period("{{myPeriod}}") // here we use {{ }} to refer to properties from application.properties
+                .includeMetadata(false)
+                .repeatCount(123))
+            .to(bean("org.apache.camel.example.MyBean")
+                    .method("hello")
+                    // try change this to Prototype scope
+                    .scope(BeanScope.Singleton)
+                    // we can configure advanced options
+                    .advanced().parameters("hi", "Davs"))
             .log("${body}");
     }
 }
diff --git a/examples/camel-example-main-endpointdsl/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl/src/main/resources/application.properties
index 0726a51..5d62b5d 100644
--- a/examples/camel-example-main-endpointdsl/src/main/resources/application.properties
+++ b/examples/camel-example-main-endpointdsl/src/main/resources/application.properties
@@ -31,7 +31,4 @@ camel.main.name = MyCoolCamel
 # properties used in the route
 myPeriod = 1000
 
-# configure beans
-camel.beans.myBean = #class:org.apache.camel.example.MyBean
-camel.beans.myBean.hi = Hello