You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2024/03/04 12:45:58 UTC
(camel) branch main updated: Invoke CamelContextCustomizer as part of DefaultConfigurationConfigurer::afterConfigure
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 <lb...@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