This is an automated email from the ASF dual-hosted git repository. lburgazzoli 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 55904f97568 Invoke CamelContextCustomizer as part of DefaultConfigurationConfigurer::afterConfigure 55904f97568 is described below commit 55904f975689ee3b1694da59c4374826c8b22511 Author: Luca Burgazzoli <lburgazz...@gmail.com> AuthorDate: Mon Mar 4 12:18:38 2024 +0100 Invoke CamelContextCustomizer as part of DefaultConfigurationConfigurer::afterConfigure --- .../camel/main/DefaultConfigurationConfigurer.java | 10 +++++++++ .../org/apache/camel/main/MainCustomizerTest.java | 24 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java index c727f84f64b..7d62a5f7170 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java @@ -16,6 +16,7 @@ */ package org.apache.camel.main; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -46,6 +47,7 @@ import org.apache.camel.model.ModelLifecycleStrategy; import org.apache.camel.spi.AsyncProcessorAwaitManager; import org.apache.camel.spi.BacklogDebugger; import org.apache.camel.spi.BeanIntrospection; +import org.apache.camel.spi.CamelContextCustomizer; import org.apache.camel.spi.ClassResolver; import org.apache.camel.spi.CliConnectorFactory; import org.apache.camel.spi.CompileStrategy; @@ -605,6 +607,14 @@ public final class DefaultConfigurationConfigurer { vault.setHashicorpVaultConfiguration(hashicorp); } configureVault(camelContext); + + // apply custom configurations if any + Set<CamelContextCustomizer> customizers = registry.findByType(CamelContextCustomizer.class); + if (!customizers.isEmpty()) { + customizers.stream() + .sorted(Comparator.comparing(CamelContextCustomizer::getOrder)) + .forEach(c -> c.configure(camelContext)); + } } /** diff --git a/core/camel-main/src/test/java/org/apache/camel/main/MainCustomizerTest.java b/core/camel-main/src/test/java/org/apache/camel/main/MainCustomizerTest.java index f0769331d75..917f9c6f7de 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/MainCustomizerTest.java +++ b/core/camel-main/src/test/java/org/apache/camel/main/MainCustomizerTest.java @@ -18,12 +18,15 @@ package org.apache.camel.main; import org.apache.camel.BindToRegistry; import org.apache.camel.CamelConfiguration; +import org.apache.camel.CamelContext; import org.apache.camel.component.log.LogComponent; +import org.apache.camel.spi.CamelContextCustomizer; import org.apache.camel.spi.ComponentCustomizer; import org.apache.camel.support.CustomizersSupport; import org.apache.camel.support.processor.DefaultExchangeFormatter; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -76,6 +79,27 @@ public class MainCustomizerTest { } } + @Test + public void testContextCustomizer() { + Main main = new Main(); + + try { + main.configure().addConfiguration(MyConfiguration.class); + main.bind("name-customizer", new CamelContextCustomizer() { + @Override + public void configure(CamelContext camelContext) { + camelContext.getCamelContextExtension().setName("customized-name"); + } + }); + + main.start(); + + assertEquals("customized-name", main.getCamelContext().getName()); + } finally { + main.stop(); + } + } + // **************************** // // Helpers