Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 94BD517871 for ; Sun, 27 Sep 2015 07:22:26 +0000 (UTC) Received: (qmail 45754 invoked by uid 500); 27 Sep 2015 07:22:26 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 45705 invoked by uid 500); 27 Sep 2015 07:22:26 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 45696 invoked by uid 99); 27 Sep 2015 07:22:26 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Sep 2015 07:22:26 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 35228DFCE4; Sun, 27 Sep 2015 07:22:26 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: davsclaus@apache.org To: commits@camel.apache.org Message-Id: <1561711026d74d5b9f40bc516114e5e2@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: camel git commit: CAMEL-9174: Main - Make it easier to configure CamelContext before its started Date: Sun, 27 Sep 2015 07:22:26 +0000 (UTC) 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 Authored: Sun Sep 27 09:11:13 2015 +0200 Committer: Claus Ibsen 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 each created CamelContext. + *

+ * Notice this callback will be invoked for each 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) {