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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5f44053  CAMEL-15134: camel-health - Make routes health check 
discoverable via classpath. And remove JMX evaluators and make it simpler API 
to use.
5f44053 is described below

commit 5f44053535189ab6d3b1bd0b53b4c42266013ba3
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri May 29 12:34:15 2020 +0200

    CAMEL-15134: camel-health - Make routes health check discoverable via 
classpath. And remove JMX evaluators and make it simpler API to use.
---
 .../src/main/docs/spring-boot.adoc                 |  15 +-
 .../health/AbstractHealthCheckConfiguration.java   |  34 ----
 .../health/HealthCheckRoutesAutoConfiguration.java | 108 +----------
 .../health/HealthCheckRoutesConfiguration.java     | 212 ---------------------
 .../health/HealthCheckVerboseConfiguration.java    |   1 +
 .../boot/health/HealthCheckRegistryTest.java       |  90 ---------
 6 files changed, 6 insertions(+), 454 deletions(-)

diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.adoc 
b/core/camel-spring-boot/src/main/docs/spring-boot.adoc
index e94f1eb..cd25c38 100644
--- a/core/camel-spring-boot/src/main/docs/spring-boot.adoc
+++ b/core/camel-spring-boot/src/main/docs/spring-boot.adoc
@@ -92,7 +92,7 @@ When using spring-boot with Spring Boot make sure to use the 
following Maven dep
 ----
 
 
-The component supports 139 options, which are listed below.
+The component supports 126 options, which are listed below.
 
 
 
@@ -137,19 +137,6 @@ The component supports 139 options, which are listed below.
 | *camel.component.properties.system-properties-mode* | Sets the JVM system 
property mode (0 = never, 1 = fallback, 2 = override). The default mode 
(override) is to use system properties if present, and override any existing 
properties. OS environment variable mode is checked before JVM system property 
mode | 2 | Integer
 | *camel.dataformat.enabled* | Global option to enable/disable dataformat 
auto-configuration, default is true. | true | Boolean
 | *camel.health.check.routes.enabled* | Global option to enable/disable Camel 
extended health check for routes, default is false. | false | Boolean
-| *camel.health.check.routes.threshold* | General health check configurations. 
|  | Map
-| *camel.health.check.routes.thresholds.exchanges-failed* | Number of failed 
exchanges. |  | Long
-| *camel.health.check.routes.thresholds.exchanges-inflight* | Number of 
inflight exchanges. |  | Long
-| *camel.health.check.routes.thresholds.external-redeliveries* | Number of 
external initiated redeliveries (such as from JMS broker). |  | Long
-| *camel.health.check.routes.thresholds.last-processing-time.failures* | The 
threshold of number of failures. |  | Integer
-| *camel.health.check.routes.thresholds.last-processing-time.threshold* | The 
threshold value. |  | String
-| *camel.health.check.routes.thresholds.max-processing-time.failures* | The 
threshold of number of failures. |  | Integer
-| *camel.health.check.routes.thresholds.max-processing-time.threshold* | The 
threshold value. |  | String
-| *camel.health.check.routes.thresholds.mean-processing-time.failures* | The 
threshold of number of failures. |  | Integer
-| *camel.health.check.routes.thresholds.mean-processing-time.threshold* | The 
threshold value. |  | String
-| *camel.health.check.routes.thresholds.min-processing-time.failures* | The 
threshold of number of failures. |  | Integer
-| *camel.health.check.routes.thresholds.min-processing-time.threshold* | The 
threshold value. |  | String
-| *camel.health.check.routes.thresholds.redeliveries* | Number of redeliveries 
(internal only). |  | Long
 | *camel.health.enabled* | Global option to enable/disable camel health bean, 
default is true. | true | Boolean
 | *camel.language.enabled* | Global option to enable/disable language 
auto-configuration, default is true. | true | Boolean
 | *camel.springboot.allow-use-original-message* | Sets whether to allow access 
to the original message from Camel's error handler, or from 
org.apache.camel.spi.UnitOfWork.getOriginalInMessage(). Turning this off can 
optimize performance, as defensive copy of the original message is not needed. 
Default is false. | false | Boolean
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/AbstractHealthCheckConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/AbstractHealthCheckConfiguration.java
index 9b04eb3..09304f0 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/AbstractHealthCheckConfiguration.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/AbstractHealthCheckConfiguration.java
@@ -25,16 +25,6 @@ public abstract class AbstractHealthCheckConfiguration {
     private Boolean enabled;
 
     /**
-     * Set the check interval.
-     */
-    private String interval;
-
-    /**
-     * Set the number of failure before reporting the service as un-healthy.
-     */
-    private Integer failureThreshold;
-
-    /**
      * Set if the check associated to this configuration is enabled or not.
      */
     public Boolean isEnabled() {
@@ -48,36 +38,12 @@ public abstract class AbstractHealthCheckConfiguration {
         this.enabled = enabled;
     }
 
-    public String getInterval() {
-        return interval;
-    }
-
-    /**
-     * Set the check interval.
-     */
-    public void setInterval(String interval) {
-        this.interval = interval;
-    }
-
-    public Integer getFailureThreshold() {
-        return failureThreshold;
-    }
-
-    /**
-     * Set the number of failure before reporting the service as un-healthy.
-     */
-    public void setFailureThreshold(Integer failureThreshold) {
-        this.failureThreshold = failureThreshold;
-    }
-
     /**
      * Convert this configuration to a {@link HealthCheckConfiguration} using 
default values.
      */
     public HealthCheckConfiguration asHealthCheckConfiguration() {
         return HealthCheckConfiguration.builder()
             .enabled(this.isEnabled())
-            .interval(this.getInterval())
-            .failureThreshold(this.getFailureThreshold())
             .build();
     }
 }
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesAutoConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesAutoConfiguration.java
index f4c1296..e9fc712 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesAutoConfiguration.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesAutoConfiguration.java
@@ -16,13 +16,10 @@
  */
 package org.apache.camel.spring.boot.health;
 
-import org.apache.camel.catalog.impl.TimePatternConverter;
 import org.apache.camel.health.HealthCheckRepository;
-import org.apache.camel.impl.health.RoutePerformanceCounterEvaluators;
 import org.apache.camel.impl.health.RoutesHealthCheckRepository;
 import org.apache.camel.spring.boot.CamelAutoConfiguration;
 import org.apache.camel.spring.boot.util.GroupCondition;
-import org.apache.camel.util.ObjectHelper;
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
 import org.springframework.boot.autoconfigure.AutoConfigureBefore;
 import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -42,108 +39,11 @@ public class HealthCheckRoutesAutoConfiguration {
     @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
     @ConditionalOnMissingBean(RoutesHealthCheckRepository.class)
     public HealthCheckRepository 
routesHealthCheckRepository(HealthCheckRoutesConfiguration configuration) {
-        final RoutesHealthCheckRepository repository = new 
RoutesHealthCheckRepository();
-        final HealthCheckRoutesConfiguration.ThresholdsConfiguration 
thresholds = configuration.getThresholds();
-
-        if (thresholds.getExchangesFailed() != null) {
-            
repository.addEvaluator(RoutePerformanceCounterEvaluators.exchangesFailed(thresholds.getExchangesFailed()));
-        }
-        if (thresholds.getExchangesInflight() != null) {
-            
repository.addEvaluator(RoutePerformanceCounterEvaluators.exchangesInflight(thresholds.getExchangesInflight()));
-        }
-        if (thresholds.getRedeliveries() != null) {
-            
repository.addEvaluator(RoutePerformanceCounterEvaluators.redeliveries(thresholds.getRedeliveries()));
-        }
-        if (thresholds.getExternalRedeliveries() != null) {
-            
repository.addEvaluator(RoutePerformanceCounterEvaluators.redeliveries(thresholds.getExternalRedeliveries()));
-        }
-        if (thresholds.getLastProcessingTime() != null) {
-            final String time = 
thresholds.getLastProcessingTime().getThreshold();
-            final Integer failures = 
thresholds.getLastProcessingTime().getFailures();
-
-            if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                
repository.addEvaluator(RoutePerformanceCounterEvaluators.lastProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-            }
-        }
-        if (thresholds.getMinProcessingTime() != null) {
-            final String time = 
thresholds.getMinProcessingTime().getThreshold();
-            final Integer failures = 
thresholds.getMinProcessingTime().getFailures();
-
-            if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                
repository.addEvaluator(RoutePerformanceCounterEvaluators.minProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-            }
-        }
-        if (thresholds.getMeanProcessingTime() != null) {
-            final String time = 
thresholds.getMeanProcessingTime().getThreshold();
-            final Integer failures = 
thresholds.getMeanProcessingTime().getFailures();
-
-            if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                
repository.addEvaluator(RoutePerformanceCounterEvaluators.meanProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-            }
-        }
-        if (thresholds.getMaxProcessingTime() != null) {
-            final String time = 
thresholds.getMaxProcessingTime().getThreshold();
-            final Integer failures = 
thresholds.getMaxProcessingTime().getFailures();
-
-            if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                
repository.addEvaluator(RoutePerformanceCounterEvaluators.maxProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-            }
+        if (configuration.isEnabled()) {
+            return new RoutesHealthCheckRepository();
+        } else {
+            return null;
         }
-
-        if (configuration.getThreshold() != null) {
-            for (String key: configuration.getThreshold().keySet()) {
-
-                final HealthCheckRoutesConfiguration.ThresholdsConfiguration 
threshold = configuration.getThreshold(key);
-
-                if (threshold.getExchangesFailed() != null) {
-                    repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.exchangesFailed(threshold.getExchangesFailed()));
-                }
-                if (threshold.getExchangesInflight() != null) {
-                    repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.exchangesInflight(threshold.getExchangesInflight()));
-                }
-                if (threshold.getRedeliveries() != null) {
-                    repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.redeliveries(threshold.getRedeliveries()));
-                }
-                if (threshold.getExternalRedeliveries() != null) {
-                    repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.redeliveries(threshold.getExternalRedeliveries()));
-                }
-
-                if (threshold.getLastProcessingTime() != null) {
-                    final String time = 
threshold.getLastProcessingTime().getThreshold();
-                    final Integer failures = 
threshold.getLastProcessingTime().getFailures();
-
-                    if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                        repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.lastProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-                    }
-                }
-                if (threshold.getMinProcessingTime() != null) {
-                    final String time = 
threshold.getMinProcessingTime().getThreshold();
-                    final Integer failures = 
threshold.getMinProcessingTime().getFailures();
-
-                    if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                        repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.minProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-                    }
-                }
-                if (threshold.getMeanProcessingTime() != null) {
-                    final String time = 
threshold.getMeanProcessingTime().getThreshold();
-                    final Integer failures = 
threshold.getMeanProcessingTime().getFailures();
-
-                    if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                        repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.meanProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-                    }
-                }
-                if (threshold.getMaxProcessingTime() != null) {
-                    final String time = 
threshold.getMaxProcessingTime().getThreshold();
-                    final Integer failures = 
threshold.getMaxProcessingTime().getFailures();
-
-                    if (ObjectHelper.isNotEmpty(time) && 
ObjectHelper.isNotEmpty(failures)) {
-                        repository.addRouteEvaluator(key, 
RoutePerformanceCounterEvaluators.maxProcessingTime(TimePatternConverter.toMilliSeconds(time),
 failures));
-                    }
-                }
-            }
-        }
-
-        return repository;
     }
 
     // ***************************************
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesConfiguration.java
index 2cbcf65..09e3248 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesConfiguration.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckRoutesConfiguration.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.spring.boot.health;
 
-import java.util.Map;
-
-import org.apache.camel.util.ObjectHelper;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 @ConfigurationProperties(prefix = HealthConstants.HEALTH_CHECK_ROUTES_PREFIX)
@@ -28,16 +25,6 @@ public class HealthCheckRoutesConfiguration {
      */
     private boolean enabled;
 
-    /**
-     * Threshold healthc check configurations.
-     */
-    private ThresholdsConfiguration thresholds = new ThresholdsConfiguration();
-
-    /**
-     * General health check configurations.
-     */
-    private Map<String, RouteThresholdsConfiguration> threshold;
-
     public boolean isEnabled() {
         return enabled;
     }
@@ -46,203 +33,4 @@ public class HealthCheckRoutesConfiguration {
         this.enabled = enabled;
     }
 
-    public ThresholdsConfiguration getThresholds() {
-        return thresholds;
-    }
-
-    public Map<String, RouteThresholdsConfiguration> getThreshold() {
-        return threshold;
-    }
-
-    public void setThreshold(Map<String, RouteThresholdsConfiguration> 
threshold) {
-        this.threshold = threshold;
-    }
-
-    public ThresholdsConfiguration getThreshold(String id) {
-        ThresholdsConfiguration cfg;
-
-        if (this.threshold == null) {
-            cfg = this.thresholds.copy();
-        } else {
-            RouteThresholdsConfiguration routeCfg = this.threshold.get(id);
-            //cfg = this.threshold.get(id);
-
-            if (routeCfg == null) {
-                cfg = this.thresholds.copy();
-            } else {
-                cfg = routeCfg;
-
-                if (routeCfg.isInherit()) {
-                    routeCfg.exchangesFailed = 
ObjectHelper.supplyIfEmpty(cfg.exchangesFailed, thresholds::getExchangesFailed);
-                    routeCfg.exchangesInflight = 
ObjectHelper.supplyIfEmpty(cfg.exchangesInflight, 
thresholds::getExchangesInflight);
-                    routeCfg.redeliveries = 
ObjectHelper.supplyIfEmpty(cfg.redeliveries, thresholds::getRedeliveries);
-                    routeCfg.externalRedeliveries = 
ObjectHelper.supplyIfEmpty(cfg.externalRedeliveries, 
thresholds::getExternalRedeliveries);
-                    routeCfg.externalRedeliveries = 
ObjectHelper.supplyIfEmpty(cfg.externalRedeliveries, 
thresholds::getExternalRedeliveries);
-                    routeCfg.lastProcessingTime = 
ObjectHelper.supplyIfEmpty(cfg.lastProcessingTime, 
thresholds::getLastProcessingTime);
-                    routeCfg.minProcessingTime = 
ObjectHelper.supplyIfEmpty(cfg.minProcessingTime, 
thresholds::getMinProcessingTime);
-                    routeCfg.meanProcessingTime = 
ObjectHelper.supplyIfEmpty(cfg.meanProcessingTime, 
thresholds::getMeanProcessingTime);
-                    routeCfg.maxProcessingTime = 
ObjectHelper.supplyIfEmpty(cfg.maxProcessingTime, 
thresholds::getMaxProcessingTime);
-                }
-            }
-        }
-
-        return cfg;
-    }
-
-    public static class ThresholdsConfiguration implements Cloneable {
-        /**
-         * Number of failed exchanges.
-         */
-        protected Long exchangesFailed;
-
-        /**
-         * Number of inflight exchanges.
-         */
-        protected Long exchangesInflight;
-
-        /**
-         * Number of redeliveries (internal only).
-         */
-        protected Long redeliveries;
-
-        /**
-         * Number of external initiated redeliveries (such as from JMS broker).
-         */
-        protected Long externalRedeliveries;
-
-        /**
-         * Last processing time
-         */
-        protected ThresholdsWithFailuresConfiguration lastProcessingTime;
-
-        /**
-         * Min processing time
-         */
-        protected ThresholdsWithFailuresConfiguration minProcessingTime;
-
-        /**
-         * Mean processing time
-         */
-        protected ThresholdsWithFailuresConfiguration meanProcessingTime;
-
-        /**
-         * Max processing time
-         */
-        protected ThresholdsWithFailuresConfiguration maxProcessingTime;
-
-        public Long getExchangesFailed() {
-            return exchangesFailed;
-        }
-
-        public void setExchangesFailed(Long exchangesFailed) {
-            this.exchangesFailed = exchangesFailed;
-        }
-
-        public Long getExchangesInflight() {
-            return exchangesInflight;
-        }
-
-        public void setExchangesInflight(Long exchangesInflight) {
-            this.exchangesInflight = exchangesInflight;
-        }
-
-        public Long getRedeliveries() {
-            return redeliveries;
-        }
-
-        public void setRedeliveries(Long redeliveries) {
-            this.redeliveries = redeliveries;
-        }
-
-        public Long getExternalRedeliveries() {
-            return externalRedeliveries;
-        }
-
-        public void setExternalRedeliveries(Long externalRedeliveries) {
-            this.externalRedeliveries = externalRedeliveries;
-        }
-
-        public ThresholdsWithFailuresConfiguration getLastProcessingTime() {
-            return lastProcessingTime;
-        }
-
-        public void setLastProcessingTime(ThresholdsWithFailuresConfiguration 
lastProcessingTime) {
-            this.lastProcessingTime = lastProcessingTime;
-        }
-
-        public ThresholdsWithFailuresConfiguration getMinProcessingTime() {
-            return minProcessingTime;
-        }
-
-        public void setMinProcessingTime(ThresholdsWithFailuresConfiguration 
minProcessingTime) {
-            this.minProcessingTime = minProcessingTime;
-        }
-
-        public ThresholdsWithFailuresConfiguration getMeanProcessingTime() {
-            return meanProcessingTime;
-        }
-
-        public void setMeanProcessingTime(ThresholdsWithFailuresConfiguration 
meanProcessingTime) {
-            this.meanProcessingTime = meanProcessingTime;
-        }
-
-        public ThresholdsWithFailuresConfiguration getMaxProcessingTime() {
-            return maxProcessingTime;
-        }
-
-        public void setMaxProcessingTime(ThresholdsWithFailuresConfiguration 
maxProcessingTime) {
-            this.maxProcessingTime = maxProcessingTime;
-        }
-
-        public ThresholdsConfiguration copy() {
-            try {
-                return (ThresholdsConfiguration)super.clone();
-            } catch (CloneNotSupportedException e) {
-                throw new RuntimeException(e);
-            }
-        }
-    }
-
-    public static class RouteThresholdsConfiguration extends 
ThresholdsConfiguration {
-        /**
-         * Inherit from global from global configuration.
-         */
-        private boolean inherit = true;
-
-        public boolean isInherit() {
-            return inherit;
-        }
-
-        public void setInherit(boolean inherit) {
-            this.inherit = inherit;
-        }
-    }
-
-    public static class ThresholdsWithFailuresConfiguration {
-        /**
-         * The threshold value.
-         */
-        private String threshold;
-
-        /**
-         * The threshold of number of failures.
-         */
-        private Integer failures;
-
-        public String getThreshold() {
-            return threshold;
-        }
-
-        public void setThreshold(String threshold) {
-            this.threshold = threshold;
-        }
-
-        public Integer getFailures() {
-            return failures;
-        }
-
-        public void setFailures(Integer failures) {
-            this.failures = failures;
-        }
-    }
 }
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckVerboseConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckVerboseConfiguration.java
index 7f62eb0..85c7985 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckVerboseConfiguration.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/health/HealthCheckVerboseConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.spring.boot.health;
 
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
+// TODO: Move to actuate/health
 @ConfigurationProperties("management.info.camel")
 public class HealthCheckVerboseConfiguration {
     /**
diff --git 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/health/HealthCheckRegistryTest.java
 
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/health/HealthCheckRegistryTest.java
deleted file mode 100644
index 87d8652..0000000
--- 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/health/HealthCheckRegistryTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.spring.boot.health;
-
-import java.util.Collection;
-import java.util.Optional;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.health.HealthCheckRegistry;
-import org.apache.camel.health.HealthCheckRepository;
-import org.apache.camel.impl.health.RegistryRepository;
-import org.apache.camel.impl.health.RoutePerformanceCounterEvaluators;
-import org.apache.camel.impl.health.RoutesHealthCheckRepository;
-import org.apache.camel.spring.boot.CamelAutoConfiguration;
-import 
org.apache.camel.spring.boot.actuate.health.CamelHealthAutoConfiguration;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(
-    classes = {
-        CamelAutoConfiguration.class,
-        CamelHealthAutoConfiguration.class,
-        HealthCheckRoutesAutoConfiguration.class
-    },
-    properties = {
-        "camel.health.check.routes.enabled = true",
-        "camel.health.check.routes.thresholds.exchanges-failed = 1",
-        "camel.health.check.routes.thresholds.last-processing-time.threshold = 
1",
-        "camel.health.check.routes.thresholds.last-processing-time.failures = 
2",
-        "camel.health.check.routes.threshold[route-1].inherit = false",
-        "camel.health.check.routes.threshold[route-1].exchanges-inflight = 1",
-        "camel.health.check.routes.threshold[route-2].inherit = true",
-        "camel.health.check.routes.threshold[route-2].exchanges-inflight = 1",
-    }
-)
-public class HealthCheckRegistryTest extends Assert {
-    @Autowired
-    private CamelContext context;
-
-    @Test
-    public void testRepositories() {
-        Collection<HealthCheckRepository> repos = 
HealthCheckRegistry.get(context).getRepositories();
-
-        Assert.assertNotNull(repos);
-        Assert.assertEquals(2, repos.size());
-        
Assert.assertTrue(repos.stream().anyMatch(RegistryRepository.class::isInstance));
-        
Assert.assertTrue(repos.stream().anyMatch(RoutesHealthCheckRepository.class::isInstance));
-
-        Optional<RoutesHealthCheckRepository> repo = repos.stream()
-            .filter(RoutesHealthCheckRepository.class::isInstance)
-            .map(RoutesHealthCheckRepository.class::cast)
-            .findFirst();
-
-        Assert.assertTrue(repo.isPresent());
-
-        // default thresholds configuration
-        Assert.assertEquals(2, repo.get().evaluators().count());
-        Assert.assertEquals(1, 
repo.get().evaluators().filter(RoutePerformanceCounterEvaluators.ExchangesFailed.class::isInstance).count());
-        Assert.assertEquals(1, 
repo.get().evaluators().filter(RoutePerformanceCounterEvaluators.LastProcessingTime.class::isInstance).count());
-
-        // route-1 does not inherit from default thresholds configuration
-        Assert.assertEquals(1, repo.get().evaluators("route-1").count());
-        Assert.assertEquals(1, 
repo.get().evaluators("route-1").filter(RoutePerformanceCounterEvaluators.ExchangesInflight.class::isInstance).count());
-
-        // route-2 inherits from default thresholds configuration
-        Assert.assertEquals(3, repo.get().evaluators("route-2").count());
-        Assert.assertEquals(1, 
repo.get().evaluators("route-2").filter(RoutePerformanceCounterEvaluators.ExchangesFailed.class::isInstance).count());
-        Assert.assertEquals(1, 
repo.get().evaluators("route-2").filter(RoutePerformanceCounterEvaluators.LastProcessingTime.class::isInstance).count());
-        Assert.assertEquals(1, 
repo.get().evaluators("route-2").filter(RoutePerformanceCounterEvaluators.ExchangesInflight.class::isInstance).count());
-    }
-}

Reply via email to