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 2021/02/12 16:24:51 UTC

[camel] branch camel-3.7.x updated: CAMEL-16196: camel-main - Configure via java only does not work for health check, circuit breaker, rest etc.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.7.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.7.x by this push:
     new a46f978  CAMEL-16196: camel-main - Configure via java only does not work for health check, circuit breaker, rest etc.
a46f978 is described below

commit a46f97869eeba4469795bbc24b4802db58a22664
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 12 17:22:13 2021 +0100

    CAMEL-16196: camel-main - Configure via java only does not work for health check, circuit breaker, rest etc.
---
 .../org/apache/camel/main/BaseMainSupport.java     |  8 +--
 .../camel/main/MainConfigurationProperties.java    | 63 +++++++++++++++++++---
 .../camel/main/MainSupportModelConfigurer.java     |  6 +--
 3 files changed, 63 insertions(+), 14 deletions(-)

diff --git a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
index 1eb9f1d..9dd8b6e 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
@@ -669,7 +669,7 @@ public abstract class BaseMainSupport extends BaseService {
                     mainConfigurationProperties.isAutoConfigurationFailFast(), true, autoConfiguredProperties);
         }
 
-        if (!restProperties.isEmpty()) {
+        if (!restProperties.isEmpty() || mainConfigurationProperties.hasRestConfiguration()) {
             RestConfigurationProperties rest = mainConfigurationProperties.rest();
             LOG.debug("Auto-configuring Rest DSL from loaded properties: {}", restProperties.size());
             setPropertiesOnTarget(camelContext, rest, restProperties, "camel.rest.",
@@ -677,12 +677,12 @@ public abstract class BaseMainSupport extends BaseService {
             camelContext.setRestConfiguration(rest);
         }
 
-        if (!threadPoolProperties.isEmpty()) {
+        if (!threadPoolProperties.isEmpty() || mainConfigurationProperties.hasThreadPoolConfiguration()) {
             LOG.debug("Auto-configuring Thread Pool from loaded properties: {}", threadPoolProperties.size());
             MainSupportModelConfigurer.setThreadPoolProperties(camelContext, mainConfigurationProperties, threadPoolProperties,
                     mainConfigurationProperties.isAutoConfigurationFailFast(), autoConfiguredProperties);
         }
-        if (!healthProperties.isEmpty()) {
+        if (!healthProperties.isEmpty() || mainConfigurationProperties.hasHealthCheckConfiguration()) {
             LOG.debug("Auto-configuring HealthCheck from loaded properties: {}", healthProperties.size());
             setHealthCheckProperties(camelContext, healthProperties, mainConfigurationProperties.isAutoConfigurationFailFast(),
                     autoConfiguredProperties);
@@ -692,7 +692,7 @@ public abstract class BaseMainSupport extends BaseService {
             setRouteTemplateProperties(camelContext, routeTemplateProperties,
                     mainConfigurationProperties.isAutoConfigurationFailFast(), autoConfiguredProperties);
         }
-        if (!lraProperties.isEmpty()) {
+        if (!lraProperties.isEmpty() || mainConfigurationProperties.hasLraConfiguration()) {
             LOG.debug("Auto-configuring Saga LRA from loaded properties: {}", lraProperties.size());
             setLraCheckProperties(camelContext, lraProperties, mainConfigurationProperties.isAutoConfigurationFailFast(),
                     autoConfiguredProperties);
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
index b883d62..f883ea4 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
@@ -48,7 +48,7 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
     // extended configuration
     private HealthConfigurationProperties healthConfigurationProperties;
     private LraConfigurationProperties lraConfigurationProperties;
-    private ThreadPoolConfigurationProperties threadPool;
+    private ThreadPoolConfigurationProperties threadPoolProperties;
     private HystrixConfigurationProperties hystrixConfigurationProperties;
     private Resilience4jConfigurationProperties resilience4jConfigurationProperties;
     private FaultToleranceConfigurationProperties faultToleranceConfigurationProperties;
@@ -64,9 +64,9 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
             lraConfigurationProperties.close();
             lraConfigurationProperties = null;
         }
-        if (threadPool != null) {
-            threadPool.close();
-            threadPool = null;
+        if (threadPoolProperties != null) {
+            threadPoolProperties.close();
+            threadPoolProperties = null;
         }
         if (hystrixConfigurationProperties != null) {
             hystrixConfigurationProperties.close();
@@ -104,6 +104,13 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
     }
 
     /**
+     * Whether there has been any health check configuration specified
+     */
+    public boolean hasHealthCheckConfiguration() {
+        return healthConfigurationProperties != null;
+    }
+
+    /**
      * To configure Saga LRA
      */
     public LraConfigurationProperties lra() {
@@ -114,13 +121,27 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
     }
 
     /**
+     * Whether there has been any Saga LRA configuration specified
+     */
+    public boolean hasLraConfiguration() {
+        return lraConfigurationProperties != null;
+    }
+
+    /**
      * To configure thread pools
      */
     public ThreadPoolConfigurationProperties threadPool() {
-        if (threadPool == null) {
-            threadPool = new ThreadPoolConfigurationProperties(this);
+        if (threadPoolProperties == null) {
+            threadPoolProperties = new ThreadPoolConfigurationProperties(this);
         }
-        return threadPool;
+        return threadPoolProperties;
+    }
+
+    /**
+     * Whether there has been any thread pool configuration specified
+     */
+    public boolean hasThreadPoolConfiguration() {
+        return threadPoolProperties != null;
     }
 
     /**
@@ -135,6 +156,13 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
     }
 
     /**
+     * Whether there has been any Hystrix EIP configuration specified
+     */
+    public boolean hasHystrixConfiguration() {
+        return hystrixConfigurationProperties != null;
+    }
+
+    /**
      * To configure Circuit Breaker EIP with Resilience4j
      */
     public Resilience4jConfigurationProperties resilience4j() {
@@ -145,6 +173,13 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
     }
 
     /**
+     * Whether there has been any Resilience4j EIP configuration specified
+     */
+    public boolean hasResilience4jConfiguration() {
+        return resilience4jConfigurationProperties != null;
+    }
+
+    /**
      * To configure Circuit Breaker EIP with MicroProfile Fault Tolerance
      */
     public FaultToleranceConfigurationProperties faultTolerance() {
@@ -155,6 +190,13 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
     }
 
     /**
+     * Whether there has been any MicroProfile Fault Tolerance EIP configuration specified
+     */
+    public boolean hasFaultToleranceConfiguration() {
+        return faultToleranceConfigurationProperties != null;
+    }
+
+    /**
      * To configure Rest DSL
      */
     public RestConfigurationProperties rest() {
@@ -164,6 +206,13 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
         return restConfigurationProperties;
     }
 
+    /**
+     * Whether there has been any rest configuration specified
+     */
+    public boolean hasRestConfiguration() {
+        return restConfigurationProperties != null;
+    }
+
     // getter and setters
     // --------------------------------------------------------------
 
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainSupportModelConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/MainSupportModelConfigurer.java
index 40d3909..0c5ce12 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainSupportModelConfigurer.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainSupportModelConfigurer.java
@@ -54,7 +54,7 @@ public final class MainSupportModelConfigurer {
 
         ModelCamelContext model = camelContext.adapt(ModelCamelContext.class);
 
-        if (!hystrixProperties.isEmpty()) {
+        if (!hystrixProperties.isEmpty() || mainConfigurationProperties.hasHystrixConfiguration()) {
             HystrixConfigurationProperties hystrix = mainConfigurationProperties.hystrix();
             LOG.debug("Auto-configuring Hystrix Circuit Breaker EIP from loaded properties: {}", hystrixProperties.size());
             setPropertiesOnTarget(camelContext, hystrix, hystrixProperties, "camel.hystrix.",
@@ -69,7 +69,7 @@ public final class MainSupportModelConfigurer {
             }
         }
 
-        if (!resilience4jProperties.isEmpty()) {
+        if (!resilience4jProperties.isEmpty() || mainConfigurationProperties.hasResilience4jConfiguration()) {
             Resilience4jConfigurationProperties resilience4j = mainConfigurationProperties.resilience4j();
             LOG.debug("Auto-configuring Resilience4j Circuit Breaker EIP from loaded properties: {}",
                     resilience4jProperties.size());
@@ -83,7 +83,7 @@ public final class MainSupportModelConfigurer {
             setPropertiesOnTarget(camelContext, resilience4jModel, resilience4j);
         }
 
-        if (!faultToleranceProperties.isEmpty()) {
+        if (!faultToleranceProperties.isEmpty() || mainConfigurationProperties.hasFaultToleranceConfiguration()) {
             FaultToleranceConfigurationProperties faultTolerance = mainConfigurationProperties.faultTolerance();
             LOG.debug("Auto-configuring MicroProfile Fault Tolerance Circuit Breaker EIP from loaded properties: {}",
                     faultToleranceProperties.size());