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 2015/09/27 09:22:26 UTC

camel git commit: CAMEL-9174: Main - Make it easier to configure CamelContext before its started

Repository: camel
Updated Branches:
  refs/heads/master cc9924f41 -> ba631d53c


CAMEL-9174: Main - Make it easier to configure CamelContext before its started


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ba631d53
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ba631d53
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ba631d53

Branch: refs/heads/master
Commit: ba631d53c1a1cac0c45682c6bad6ba851572807d
Parents: cc9924f
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Sep 27 09:11:13 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Sep 27 09:11:13 2015 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/camel/main/MainListener.java | 14 +++++++++++++-
 .../org/apache/camel/main/MainListenerSupport.java    |  6 ++++++
 .../main/java/org/apache/camel/main/MainSupport.java  |  4 ++++
 3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ba631d53/camel-core/src/main/java/org/apache/camel/main/MainListener.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/main/MainListener.java b/camel-core/src/main/java/org/apache/camel/main/MainListener.java
index 3de7668..ac797d5 100644
--- a/camel-core/src/main/java/org/apache/camel/main/MainListener.java
+++ b/camel-core/src/main/java/org/apache/camel/main/MainListener.java
@@ -16,19 +16,31 @@
  */
 package org.apache.camel.main;
 
+import org.apache.camel.CamelContext;
+
 /**
  * A lifecycle listener to receive callbacks when the main is started and stopped.
  */
 public interface MainListener {
 
     /**
-     * Callback before the CamelContext(s) is being started.
+     * Callback before the CamelContext(s) is being created and started.
      *
      * @param main  the main instance
      */
     void beforeStart(MainSupport main);
 
     /**
+     * Callback to configure <b>each</b> created CamelContext.
+     * <p/>
+     * Notice this callback will be invoked for <b>each</b> CamelContext and therefore can be invoked
+     * multiple times if there is 2 or more CamelContext's being created.
+     *
+     * @param context the created CamelContext
+     */
+    void configure(CamelContext context);
+
+    /**
      * Callback after the CamelContext(s) has been started.
      *
      * @param main  the main instance

http://git-wip-us.apache.org/repos/asf/camel/blob/ba631d53/camel-core/src/main/java/org/apache/camel/main/MainListenerSupport.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/main/MainListenerSupport.java b/camel-core/src/main/java/org/apache/camel/main/MainListenerSupport.java
index 6dda55b..1a31b37 100644
--- a/camel-core/src/main/java/org/apache/camel/main/MainListenerSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/main/MainListenerSupport.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.main;
 
+import org.apache.camel.CamelContext;
+
 /**
  * A useful base class for {@link org.apache.camel.main.MainListener} implementations.
  */
@@ -25,6 +27,10 @@ public class MainListenerSupport implements MainListener {
         // noop
     }
 
+    public void configure(CamelContext context) {
+        // noop
+    }
+
     public void afterStart(MainSupport main) {
         // noop
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/ba631d53/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/main/MainSupport.java b/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
index de0fbdf..69d4589 100644
--- a/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/main/MainSupport.java
@@ -419,6 +419,10 @@ public abstract class MainSupport extends ServiceSupport {
         for (RouteBuilder routeBuilder : routeBuilders) {
             camelContext.addRoutes(routeBuilder);
         }
+        // allow to do configuration before its started
+        for (MainListener listener : listeners) {
+            listener.configure(camelContext);
+        }
     }
 
     public void addRouteBuilder(RouteBuilder routeBuilder) {