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/09/18 15:53:33 UTC

[camel-spring-boot-examples] 10/40: Polished example

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-spring-boot-examples.git

commit d8729f5c3c982ddf66cf2a9c0d1b863daef49021
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon May 25 12:07:51 2020 +0200

    Polished example
---
 .../src/main/java/sample/camel/MyBean.java                |  6 ++++--
 .../src/main/java/sample/camel/MyCamelRouter.java         | 15 ++++++++++-----
 .../src/main/resources/application.properties             |  4 ++--
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java b/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java
index 9651eaa..45b9aa8 100644
--- a/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java
+++ b/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java
@@ -28,11 +28,13 @@ import org.springframework.stereotype.Component;
 @Component("myBean")
 public class MyBean {
 
+    private int counter;
+
     @Value("${greeting}")
     private String say;
 
-    public String saySomething() {
-        return say;
+    public String saySomething(String body) {
+        return String.format("%s I am invoked %d times", say, ++counter);
     }
 
 }
diff --git a/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java b/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
index bc8dc22..8321887 100644
--- a/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
+++ b/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
@@ -17,6 +17,7 @@
 package sample.camel;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
@@ -27,13 +28,17 @@ import org.springframework.stereotype.Component;
 @Component
 public class MyCamelRouter extends RouteBuilder {
 
+    // we can use spring dependency injection
+    @Autowired
+    MyBean myBean;
+
     @Override
     public void configure() throws Exception {
-        from("timer:hello?period={{timer.period}}").routeId("hello")
-                .transform().method("myBean", "saySomething")
-                .filter(simple("${body} contains 'foo'"))
-                    .to("log:foo")
-                .end()
+        // start from a timer
+        from("timer:hello?period={{myPeriod}}").routeId("hello")
+                // and call the bean
+                .bean(myBean, "saySomething")
+                // and print it to system out via stream component
                 .to("stream:out");
     }
 
diff --git a/camel-example-spring-boot/src/main/resources/application.properties b/camel-example-spring-boot/src/main/resources/application.properties
index 7333594..7ec89a3 100644
--- a/camel-example-spring-boot/src/main/resources/application.properties
+++ b/camel-example-spring-boot/src/main/resources/application.properties
@@ -21,8 +21,8 @@ camel.springboot.name = MyCamel
 # what to say
 greeting = Hello World
 
-# how often to trigger the timer
-timer.period = 2000
+# how often to trigger the timer (millis)
+myPeriod = 2000
 
 # to watch bean introspection using java reflection usage
 # camel.springboot.bean-introspection-logging-level=INFO