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 2022/03/04 14:38:07 UTC

[camel] branch main updated (6dedfb0 -> 36c3acb)

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

davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 6dedfb0  Regen
     new ecf84c5  CAMEL-17727: camel-kafka - Use a single health-check repository to hold all consumer/producer checks.
     new 54e3db1  Typo
     new 36c3acb  CAMEL-17727: camel-kafka - Use a single health-check repository to hold all consumer/producer checks.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/health-check/camel-kafka-repository      |  2 +
 .../camel/component/kafka/KafkaConsumer.java       | 50 ++++++++++++++++------
 .../kafka/KafkaHealthCheckRepository.java          | 46 ++++++++++++--------
 .../camel/component/kafka/KafkaProducer.java       | 38 +++++++++++-----
 .../main/java/org/apache/camel/CamelContext.java   |  4 +-
 .../camel/impl/engine/AbstractCamelContext.java    |  4 +-
 .../camel/impl/engine/DefaultRoutesLoader.java     |  2 +-
 .../camel/impl/ExtendedCamelContextConfigurer.java |  6 +++
 .../camel/impl/lw/LightweightCamelContext.java     |  8 ++--
 .../impl/lw/LightweightRuntimeCamelContext.java    |  4 +-
 .../org/apache/camel/main/BaseMainSupport.java     |  2 +-
 .../camel/main/DefaultConfigurationConfigurer.java |  2 +-
 .../java/org/apache/camel/main/KameletMain.java    |  2 +
 13 files changed, 115 insertions(+), 55 deletions(-)
 create mode 100644 components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka-repository
 copy core/camel-health/src/main/java/org/apache/camel/impl/health/HealthCheckRegistryRepository.java => components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java (65%)

[camel] 01/03: CAMEL-17727: camel-kafka - Use a single health-check repository to hold all consumer/producer checks.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ecf84c541d2d3752d9e9795691d6c6ae40cd3783
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Mar 4 15:12:16 2022 +0100

    CAMEL-17727: camel-kafka - Use a single health-check repository to hold all consumer/producer checks.
---
 .../org/apache/camel/health-check/camel-kafka      |  2 +
 .../camel/component/kafka/KafkaConsumer.java       | 38 +++++++---
 .../kafka/KafkaHealthCheckRepository.java          | 88 ++++++++++++++++++++++
 .../camel/component/kafka/KafkaProducer.java       | 22 +++---
 4 files changed, 129 insertions(+), 21 deletions(-)

diff --git a/components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka b/components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka
new file mode 100644
index 0000000..911c924
--- /dev/null
+++ b/components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.kafka.KafkaHealthCheckRepository
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
index 185d8ac..03c9ecb 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
@@ -24,12 +24,11 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Pattern;
 
-import org.apache.camel.CamelContextAware;
 import org.apache.camel.Processor;
 import org.apache.camel.ResumeAware;
 import org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy;
-import org.apache.camel.health.HealthCheck;
 import org.apache.camel.health.HealthCheckAware;
+import org.apache.camel.health.HealthCheckRegistry;
 import org.apache.camel.spi.StateRepository;
 import org.apache.camel.support.BridgeExceptionHandlerToErrorHandler;
 import org.apache.camel.support.DefaultConsumer;
@@ -46,6 +45,7 @@ public class KafkaConsumer extends DefaultConsumer implements ResumeAware<KafkaC
 
     protected ExecutorService executor;
     private final KafkaEndpoint endpoint;
+    private KafkaConsumerHealthCheck consumerHealthCheck;
     // This list helps to work around the infinite loop of KAFKA-1894
     private final List<KafkaFetchRecords> tasks = new ArrayList<>();
     private volatile boolean stopOffsetRepo;
@@ -71,16 +71,6 @@ public class KafkaConsumer extends DefaultConsumer implements ResumeAware<KafkaC
     protected void doBuild() throws Exception {
         super.doBuild();
 
-        // build health-check
-        String rid = getRouteId();
-        if (rid == null) {
-            // not from a route so need some other uuid
-            rid = endpoint.getCamelContext().getUuidGenerator().generateUuid();
-        }
-        HealthCheck hc = new KafkaConsumerHealthCheck(this, rid);
-        CamelContextAware.trySetCamelContext(hc, endpoint.getCamelContext());
-        setHealthCheck(hc);
-
         if (endpoint.getComponent().getPollExceptionStrategy() != null) {
             pollExceptionStrategy = endpoint.getComponent().getPollExceptionStrategy();
         } else {
@@ -125,6 +115,21 @@ public class KafkaConsumer extends DefaultConsumer implements ResumeAware<KafkaC
                 endpoint.getConfiguration().isBreakOnFirstError());
         super.doStart();
 
+        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
+        if (hcr != null) {
+            String rid = getRouteId();
+            if (rid == null) {
+                // not from a route so need some other uuid
+                rid = endpoint.getCamelContext().getUuidGenerator().generateUuid();
+            }
+            consumerHealthCheck = new KafkaConsumerHealthCheck(this, rid);
+
+            hcr.getRepository("camel-kafka").ifPresent(r -> {
+                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
+                kr.addHealthCheck(consumerHealthCheck);
+            });
+        }
+
         // is the offset repository already started?
         StateRepository<String, String> repo = endpoint.getConfiguration().getOffsetRepository();
         if (repo instanceof ServiceSupport) {
@@ -159,6 +164,15 @@ public class KafkaConsumer extends DefaultConsumer implements ResumeAware<KafkaC
     protected void doStop() throws Exception {
         LOG.info("Stopping Kafka consumer on topic: {}", endpoint.getConfiguration().getTopic());
 
+        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
+        if (hcr != null) {
+            hcr.getRepository("camel-kafka").ifPresent(r -> {
+                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
+                kr.removeHealthCheck(consumerHealthCheck);
+            });
+            consumerHealthCheck = null;
+        }
+
         if (executor != null) {
             if (getEndpoint() != null && getEndpoint().getCamelContext() != null) {
                 // signal kafka consumer to stop
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java
new file mode 100644
index 0000000..be54414
--- /dev/null
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java
@@ -0,0 +1,88 @@
+/*
+ * 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.component.kafka;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Stream;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
+import org.apache.camel.DeferredContextBinding;
+import org.apache.camel.NonManagedService;
+import org.apache.camel.StaticService;
+import org.apache.camel.health.HealthCheck;
+import org.apache.camel.health.HealthCheckRepository;
+import org.apache.camel.support.service.ServiceSupport;
+
+/**
+ * Repository for camel-kafka {@link HealthCheck}s.
+ */
+@org.apache.camel.spi.annotations.HealthCheck("camel-kafka")
+@DeferredContextBinding
+public class KafkaHealthCheckRepository extends ServiceSupport
+        implements CamelContextAware, HealthCheckRepository, StaticService, NonManagedService {
+
+    private final List<HealthCheck> checks = new ArrayList<>();
+    private volatile CamelContext context;
+    private boolean enabled = true;
+
+    public KafkaHealthCheckRepository() {
+    }
+
+    @Override
+    public void setCamelContext(CamelContext camelContext) {
+        this.context = camelContext;
+    }
+
+    @Override
+    public String getId() {
+        return "camel-kafka";
+    }
+
+    @Override
+    public CamelContext getCamelContext() {
+        return context;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        this.enabled = enabled;
+    }
+
+    @Override
+    public Stream<HealthCheck> stream() {
+        return this.context != null && enabled
+                ? checks.stream()
+                : Stream.empty();
+    }
+
+    public void addHealthCheck(HealthCheck healthCheck) {
+        CamelContextAware.trySetCamelContext(healthCheck, getCamelContext());
+        this.checks.add(healthCheck);
+    }
+
+    public void removeHealthCheck(HealthCheck healthCheck) {
+        this.checks.remove(healthCheck);
+    }
+
+}
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
index 43abcf9..8256697 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
@@ -61,7 +61,7 @@ public class KafkaProducer extends DefaultAsyncProducer {
 
     @SuppressWarnings("rawtypes")
     private org.apache.kafka.clients.producer.Producer kafkaProducer;
-    private KafkaProducerHealthCheck healthCheck;
+    private KafkaProducerHealthCheck producerHealthCheck;
     private String clientId;
     private final KafkaEndpoint endpoint;
     private final KafkaConfiguration configuration;
@@ -178,19 +178,23 @@ public class KafkaProducer extends DefaultAsyncProducer {
         // install producer health-check
         HealthCheckRegistry hcr = getEndpoint().getCamelContext().getExtension(HealthCheckRegistry.class);
         if (hcr != null) {
-            healthCheck = new KafkaProducerHealthCheck(this, clientId);
-            hcr.register(healthCheck);
+            producerHealthCheck = new KafkaProducerHealthCheck(this, clientId);
+            hcr.getRepository("camel-kafka").ifPresent(r -> {
+                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
+                kr.addHealthCheck(producerHealthCheck);
+            });
         }
     }
 
     @Override
     protected void doStop() throws Exception {
-        if (healthCheck != null) {
-            HealthCheckRegistry hcr = getEndpoint().getCamelContext().getExtension(HealthCheckRegistry.class);
-            if (hcr != null) {
-                hcr.unregister(healthCheck);
-            }
-            healthCheck = null;
+        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
+        if (hcr != null) {
+            hcr.getRepository("camel-kafka").ifPresent(r -> {
+                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
+                kr.removeHealthCheck(producerHealthCheck);
+            });
+            producerHealthCheck = null;
         }
 
         if (kafkaProducer != null && closeKafkaProducer) {

[camel] 03/03: CAMEL-17727: camel-kafka - Use a single health-check repository to hold all consumer/producer checks.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 36c3acbddf3ad608e859562cdd975848cddd08af
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Mar 4 15:37:21 2022 +0100

    CAMEL-17727: camel-kafka - Use a single health-check repository to hold all consumer/producer checks.
---
 .../{camel-kafka => camel-kafka-repository}        |  0
 .../camel/component/kafka/KafkaConsumer.java       | 54 +++++++++++++---------
 .../kafka/KafkaHealthCheckRepository.java          |  2 +-
 .../camel/component/kafka/KafkaProducer.java       | 38 +++++++++------
 .../java/org/apache/camel/main/KameletMain.java    |  2 +
 5 files changed, 61 insertions(+), 35 deletions(-)

diff --git a/components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka b/components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka-repository
similarity index 100%
rename from components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka
rename to components/camel-kafka/src/generated/resources/META-INF/services/org/apache/camel/health-check/camel-kafka-repository
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
index 03c9ecb..1fe4d7e 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
@@ -18,17 +18,21 @@ package org.apache.camel.component.kafka;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 import java.util.Properties;
 import java.util.UUID;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Pattern;
 
+import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.Processor;
 import org.apache.camel.ResumeAware;
 import org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy;
 import org.apache.camel.health.HealthCheckAware;
 import org.apache.camel.health.HealthCheckRegistry;
+import org.apache.camel.health.HealthCheckRepository;
+import org.apache.camel.health.HealthCheckResolver;
 import org.apache.camel.spi.StateRepository;
 import org.apache.camel.support.BridgeExceptionHandlerToErrorHandler;
 import org.apache.camel.support.DefaultConsumer;
@@ -46,6 +50,7 @@ public class KafkaConsumer extends DefaultConsumer implements ResumeAware<KafkaC
     protected ExecutorService executor;
     private final KafkaEndpoint endpoint;
     private KafkaConsumerHealthCheck consumerHealthCheck;
+    private KafkaHealthCheckRepository healthCheckRepository;
     // This list helps to work around the infinite loop of KAFKA-1894
     private final List<KafkaFetchRecords> tasks = new ArrayList<>();
     private volatile boolean stopOffsetRepo;
@@ -115,21 +120,6 @@ public class KafkaConsumer extends DefaultConsumer implements ResumeAware<KafkaC
                 endpoint.getConfiguration().isBreakOnFirstError());
         super.doStart();
 
-        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
-        if (hcr != null) {
-            String rid = getRouteId();
-            if (rid == null) {
-                // not from a route so need some other uuid
-                rid = endpoint.getCamelContext().getUuidGenerator().generateUuid();
-            }
-            consumerHealthCheck = new KafkaConsumerHealthCheck(this, rid);
-
-            hcr.getRepository("camel-kafka").ifPresent(r -> {
-                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
-                kr.addHealthCheck(consumerHealthCheck);
-            });
-        }
-
         // is the offset repository already started?
         StateRepository<String, String> repo = endpoint.getConfiguration().getOffsetRepository();
         if (repo instanceof ServiceSupport) {
@@ -158,18 +148,40 @@ public class KafkaConsumer extends DefaultConsumer implements ResumeAware<KafkaC
 
             tasks.add(task);
         }
+
+        // health-check is optional so discover and resolve
+        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
+        if (hcr != null) {
+            Optional<HealthCheckRepository> hrc = hcr.getRepository("camel-kafka");
+            if (hrc.isEmpty()) {
+                // use resolver to load from classpath if needed
+                HealthCheckResolver resolver
+                        = endpoint.getCamelContext().adapt(ExtendedCamelContext.class).getHealthCheckResolver();
+                HealthCheckRepository hr = resolver.resolveHealthCheckRepository("camel-kafka");
+                if (hr != null) {
+                    hrc = Optional.of(hr);
+                    hcr.register(hr);
+                }
+            }
+            if (hrc.isPresent()) {
+                healthCheckRepository = (KafkaHealthCheckRepository) hrc.get();
+                String rid = getRouteId();
+                if (rid == null) {
+                    // not from a route so need some other uuid
+                    rid = endpoint.getCamelContext().getUuidGenerator().generateUuid();
+                }
+                consumerHealthCheck = new KafkaConsumerHealthCheck(this, rid);
+                healthCheckRepository.addHealthCheck(consumerHealthCheck);
+            }
+        }
     }
 
     @Override
     protected void doStop() throws Exception {
         LOG.info("Stopping Kafka consumer on topic: {}", endpoint.getConfiguration().getTopic());
 
-        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
-        if (hcr != null) {
-            hcr.getRepository("camel-kafka").ifPresent(r -> {
-                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
-                kr.removeHealthCheck(consumerHealthCheck);
-            });
+        if (healthCheckRepository != null && consumerHealthCheck != null) {
+            healthCheckRepository.removeHealthCheck(consumerHealthCheck);
             consumerHealthCheck = null;
         }
 
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java
index be54414..7517605 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaHealthCheckRepository.java
@@ -32,7 +32,7 @@ import org.apache.camel.support.service.ServiceSupport;
 /**
  * Repository for camel-kafka {@link HealthCheck}s.
  */
-@org.apache.camel.spi.annotations.HealthCheck("camel-kafka")
+@org.apache.camel.spi.annotations.HealthCheck("camel-kafka-repository")
 @DeferredContextBinding
 public class KafkaHealthCheckRepository extends ServiceSupport
         implements CamelContextAware, HealthCheckRepository, StaticService, NonManagedService {
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
index 8256697..acd020d 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Properties;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
@@ -29,6 +30,7 @@ import java.util.concurrent.Future;
 
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.Exchange;
+import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.Message;
 import org.apache.camel.component.kafka.producer.support.DelegatingCallback;
 import org.apache.camel.component.kafka.producer.support.KafkaProducerCallBack;
@@ -37,6 +39,8 @@ import org.apache.camel.component.kafka.producer.support.KeyValueHolderIterator;
 import org.apache.camel.component.kafka.producer.support.ProducerUtil;
 import org.apache.camel.component.kafka.serde.KafkaHeaderSerializer;
 import org.apache.camel.health.HealthCheckRegistry;
+import org.apache.camel.health.HealthCheckRepository;
+import org.apache.camel.health.HealthCheckResolver;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.support.DefaultAsyncProducer;
 import org.apache.camel.util.KeyValueHolder;
@@ -62,6 +66,7 @@ public class KafkaProducer extends DefaultAsyncProducer {
     @SuppressWarnings("rawtypes")
     private org.apache.kafka.clients.producer.Producer kafkaProducer;
     private KafkaProducerHealthCheck producerHealthCheck;
+    private KafkaHealthCheckRepository healthCheckRepository;
     private String clientId;
     private final KafkaEndpoint endpoint;
     private final KafkaConfiguration configuration;
@@ -175,25 +180,32 @@ public class KafkaProducer extends DefaultAsyncProducer {
             }
         }
 
-        // install producer health-check
-        HealthCheckRegistry hcr = getEndpoint().getCamelContext().getExtension(HealthCheckRegistry.class);
+        // health-check is optional so discover and resolve
+        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
         if (hcr != null) {
-            producerHealthCheck = new KafkaProducerHealthCheck(this, clientId);
-            hcr.getRepository("camel-kafka").ifPresent(r -> {
-                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
-                kr.addHealthCheck(producerHealthCheck);
-            });
+            Optional<HealthCheckRepository> hrc = hcr.getRepository("camel-kafka");
+            if (hrc.isEmpty()) {
+                // use resolver to load from classpath if needed
+                HealthCheckResolver resolver
+                        = endpoint.getCamelContext().adapt(ExtendedCamelContext.class).getHealthCheckResolver();
+                HealthCheckRepository hr = resolver.resolveHealthCheckRepository("camel-kafka");
+                if (hr != null) {
+                    hrc = Optional.of(hr);
+                    hcr.register(hr);
+                }
+            }
+            if (hrc.isPresent()) {
+                healthCheckRepository = (KafkaHealthCheckRepository) hrc.get();
+                producerHealthCheck = new KafkaProducerHealthCheck(this, clientId);
+                healthCheckRepository.addHealthCheck(producerHealthCheck);
+            }
         }
     }
 
     @Override
     protected void doStop() throws Exception {
-        HealthCheckRegistry hcr = endpoint.getCamelContext().getExtension(HealthCheckRegistry.class);
-        if (hcr != null) {
-            hcr.getRepository("camel-kafka").ifPresent(r -> {
-                KafkaHealthCheckRepository kr = (KafkaHealthCheckRepository) r;
-                kr.removeHealthCheck(producerHealthCheck);
-            });
+        if (healthCheckRepository != null && producerHealthCheck != null) {
+            healthCheckRepository.removeHealthCheck(producerHealthCheck);
             producerHealthCheck = null;
         }
 
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index 3637142..665c872 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -161,6 +161,8 @@ public class KameletMain extends MainCommandLineSupport {
         }
         answer.setApplicationContextClassLoader(kameletClassLoader);
         answer.setRegistry(registry);
+        // load camel component and custom health-checks
+        answer.setLoadHealthChecks(true);
 
         // embed HTTP server if port is specified
         Object port = getInitialProperties().get("camel.jbang.platform-http.port");

[camel] 02/03: Typo

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 54e3db1c4703fdd802f6a5c181425c0eb7de943d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Mar 4 15:16:16 2022 +0100

    Typo
    
    Typo
---
 core/camel-api/src/main/java/org/apache/camel/CamelContext.java   | 4 ++--
 .../java/org/apache/camel/impl/engine/AbstractCamelContext.java   | 4 ++--
 .../java/org/apache/camel/impl/engine/DefaultRoutesLoader.java    | 2 +-
 .../org/apache/camel/impl/ExtendedCamelContextConfigurer.java     | 6 ++++++
 .../java/org/apache/camel/impl/lw/LightweightCamelContext.java    | 8 ++++----
 .../org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java  | 4 ++--
 .../src/main/java/org/apache/camel/main/BaseMainSupport.java      | 2 +-
 .../org/apache/camel/main/DefaultConfigurationConfigurer.java     | 2 +-
 8 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
index d4ddd58..2a2ad44 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
@@ -1222,13 +1222,13 @@ public interface CamelContext extends CamelContextLifecycle, RuntimeConfiguratio
      * Whether camel-k style modeline is also enabled when not using camel-k. Enabling this allows to use a camel-k like
      * experience by being able to configure various settings using modeline directly in your route source code.
      */
-    Boolean ismodeline();
+    Boolean isModeline();
 
     /**
      * Whether camel-k style modeline is also enabled when not using camel-k. Enabling this allows to use a camel-k like
      * experience by being able to configure various settings using modeline directly in your route source code.
      */
-    void setmodeline(Boolean modeline);
+    void setModeline(Boolean modeline);
 
     /**
      * Whether to enable developer console (requires camel-console on classpath).
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index dd55c69..2dbd898 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -4294,12 +4294,12 @@ public abstract class AbstractCamelContext extends BaseService
     }
 
     @Override
-    public Boolean ismodeline() {
+    public Boolean isModeline() {
         return modeline != null && modeline;
     }
 
     @Override
-    public void setmodeline(Boolean modeline) {
+    public void setModeline(Boolean modeline) {
         this.modeline = modeline;
     }
 
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java
index 71e9321..f06701f 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java
@@ -155,7 +155,7 @@ public class DefaultRoutesLoader extends ServiceSupport implements RoutesLoader,
         Set<String> answer = new LinkedHashSet<>();
         Collection<RoutesBuilder> builders = findRoutesBuilders(resources);
 
-        if (camelContext.ismodeline()) {
+        if (camelContext.isModeline()) {
             ModelineFactory factory = camelContext.adapt(ExtendedCamelContext.class).getModelineFactory();
             // gather resources for modeline
             for (Resource resource : resources) {
diff --git a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
index 8a2bf2a..e6fc9fb 100644
--- a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
+++ b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
@@ -127,6 +127,8 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ModelJAXBContextFactory": target.setModelJAXBContextFactory(property(camelContext, org.apache.camel.spi.ModelJAXBContextFactory.class, value)); return true;
         case "modeltoxmldumper":
         case "ModelToXMLDumper": target.setModelToXMLDumper(property(camelContext, org.apache.camel.spi.ModelToXMLDumper.class, value)); return true;
+        case "modeline":
+        case "Modeline": target.setModeline(property(camelContext, java.lang.Boolean.class, value)); return true;
         case "modelinefactory":
         case "ModelineFactory": target.setModelineFactory(property(camelContext, org.apache.camel.spi.ModelineFactory.class, value)); return true;
         case "name":
@@ -328,6 +330,8 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ModelJAXBContextFactory": return org.apache.camel.spi.ModelJAXBContextFactory.class;
         case "modeltoxmldumper":
         case "ModelToXMLDumper": return org.apache.camel.spi.ModelToXMLDumper.class;
+        case "modeline":
+        case "Modeline": return java.lang.Boolean.class;
         case "modelinefactory":
         case "ModelineFactory": return org.apache.camel.spi.ModelineFactory.class;
         case "name":
@@ -530,6 +534,8 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ModelJAXBContextFactory": return target.getModelJAXBContextFactory();
         case "modeltoxmldumper":
         case "ModelToXMLDumper": return target.getModelToXMLDumper();
+        case "modeline":
+        case "Modeline": return target.isModeline();
         case "modelinefactory":
         case "ModelineFactory": return target.getModelineFactory();
         case "name":
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
index 531584e..7d48ffb 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
@@ -925,13 +925,13 @@ public class LightweightCamelContext implements ExtendedCamelContext, CatalogCam
     }
 
     @Override
-    public Boolean ismodeline() {
-        return delegate.ismodeline();
+    public Boolean isModeline() {
+        return delegate.isModeline();
     }
 
     @Override
-    public void setmodeline(Boolean modeline) {
-        delegate.setmodeline(modeline);
+    public void setModeline(Boolean modeline) {
+        delegate.setModeline(modeline);
     }
 
     @Override
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
index 034a1ee..86d326f 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
@@ -1243,12 +1243,12 @@ public class LightweightRuntimeCamelContext implements ExtendedCamelContext, Cat
     }
 
     @Override
-    public Boolean ismodeline() {
+    public Boolean isModeline() {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public void setmodeline(Boolean modeline) {
+    public void setModeline(Boolean modeline) {
         throw new UnsupportedOperationException();
     }
 
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 959a3fa..78cbc66 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
@@ -533,7 +533,7 @@ public abstract class BaseMainSupport extends BaseService {
     protected void configureRoutes(CamelContext camelContext) throws Exception {
         // then configure and add the routes
         RoutesConfigurer configurer = new RoutesConfigurer();
-        configurer.setmodeline(camelContext.ismodeline());
+        configurer.setmodeline(camelContext.isModeline());
 
         if (mainConfigurationProperties.isRoutesCollectorEnabled()) {
             configurer.setRoutesCollector(routesCollector);
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 5b1a71d..6760214 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
@@ -232,7 +232,7 @@ public final class DefaultConfigurationConfigurer {
         camelContext.setLoadTypeConverters(config.isLoadTypeConverters());
         camelContext.setLoadHealthChecks(config.isLoadHealthChecks());
         camelContext.setDevConsole(config.isDevConsoleEnabled());
-        camelContext.setmodeline(config.isModeline());
+        camelContext.setModeline(config.isModeline());
         if (config.isRoutesReloadEnabled()) {
             RouteWatcherReloadStrategy reloader = new RouteWatcherReloadStrategy(
                     config.getRoutesReloadDirectory(), config.isRoutesReloadDirectoryRecursive());