You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/04/01 11:30:29 UTC

[camel] branch main updated (71cc454ae95 -> 5a8152e8fda)

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

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


    from 71cc454ae95 Regen for commit c352cf3f2a719a5e1e5cbc2ab557e62a1e8135ea (#9749)
     new 6f216ea59bc CAMEL-15105: make the PeriodicTaskScheduler a plugin of the context
     new 5a8152e8fda CAMEL-15105: make the HealthCheckResolver a plugin of the context

The 2 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:
 .../aws/secretsmanager/SecretsDevConsole.java      |  3 +-
 .../key/vault/AzureKeyVaultManagerDevConsole.java  |  3 +-
 .../manager/GoogleSecretManagerDevConsole.java     |  3 +-
 .../org/apache/camel/ExtendedCamelContext.java     | 26 -----------------
 .../org/apache/camel/health/HealthCheckHelper.java |  4 +--
 .../camel/impl/engine/AbstractCamelContext.java    |  6 ++--
 .../impl/engine/DefaultCamelContextExtension.java  | 33 ---------------------
 .../camel/impl/ExtendedCamelContextConfigurer.java | 12 --------
 .../impl/lw/LightweightCamelContextExtension.java  | 22 --------------
 .../camel/impl/engine/PeriodTaskSchedulerTest.java |  5 ++--
 .../impl/health/HealthCheckResultStrategyTest.java |  7 ++---
 .../camel/impl/health/MyFooHealthCheckTest.java    |  7 ++---
 .../impl/health/DefaultHealthCheckRegistry.java    |  5 ++--
 .../impl/health/DefaultHealthChecksLoader.java     |  2 +-
 .../org/apache/camel/main/BaseMainSupport.java     |  6 ++--
 .../org/apache/camel/support/PluginHelper.java     | 34 ++++++++++++++++++++++
 16 files changed, 60 insertions(+), 118 deletions(-)


[camel] 02/02: CAMEL-15105: make the HealthCheckResolver a plugin of the context

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

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

commit 5a8152e8fda68aea05ce5c0e35d7e153220611ce
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 12:27:59 2023 +0200

    CAMEL-15105: make the HealthCheckResolver a plugin of the context
---
 .../java/org/apache/camel/ExtendedCamelContext.java   | 16 ----------------
 .../org/apache/camel/health/HealthCheckHelper.java    |  4 ++--
 .../camel/impl/engine/AbstractCamelContext.java       |  4 +---
 .../impl/engine/DefaultCamelContextExtension.java     | 18 ------------------
 .../camel/impl/ExtendedCamelContextConfigurer.java    |  6 ------
 .../impl/lw/LightweightCamelContextExtension.java     | 12 ------------
 .../impl/health/HealthCheckResultStrategyTest.java    |  7 +++----
 .../camel/impl/health/MyFooHealthCheckTest.java       |  7 +++----
 .../camel/impl/health/DefaultHealthCheckRegistry.java |  5 +++--
 .../camel/impl/health/DefaultHealthChecksLoader.java  |  2 +-
 .../java/org/apache/camel/support/PluginHelper.java   | 19 +++++++++++++++++++
 11 files changed, 32 insertions(+), 68 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
index 3cd1cc335be..e1f660b45f6 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
@@ -23,7 +23,6 @@ import java.util.function.Supplier;
 
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.console.DevConsoleResolver;
-import org.apache.camel.health.HealthCheckResolver;
 import org.apache.camel.spi.AnnotationBasedProcessorFactory;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.BeanIntrospection;
@@ -45,7 +44,6 @@ import org.apache.camel.spi.LogListener;
 import org.apache.camel.spi.ManagementMBeanAssembler;
 import org.apache.camel.spi.ModelToXMLDumper;
 import org.apache.camel.spi.NormalizedEndpointUri;
-import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PluginManager;
 import org.apache.camel.spi.ProcessorExchangeFactory;
 import org.apache.camel.spi.ProcessorFactory;
@@ -277,20 +275,6 @@ public interface ExtendedCamelContext {
      */
     void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory);
 
-    /**
-     * Gets the current health check resolver
-     *
-     * @return the resolver
-     */
-    HealthCheckResolver getHealthCheckResolver();
-
-    /**
-     * Sets a custom health check resolver
-     *
-     * @param healthCheckResolver the resolver
-     */
-    void setHealthCheckResolver(HealthCheckResolver healthCheckResolver);
-
     /**
      * Gets the current dev console resolver
      *
diff --git a/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java b/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
index ae8451eb1df..581abc7d57d 100644
--- a/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
+++ b/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
@@ -226,7 +226,7 @@ public final class HealthCheckHelper {
             if (check.isEmpty()) {
                 // use resolver to load from classpath if needed
                 HealthCheckResolver resolver
-                        = context.getCamelContextExtension().getHealthCheckResolver();
+                        = context.getCamelContextExtension().getContextPlugin(HealthCheckResolver.class);
                 HealthCheck hc = resolver.resolveHealthCheck(id);
                 if (hc != null) {
                     check = Optional.of(hc);
@@ -272,7 +272,7 @@ public final class HealthCheckHelper {
             if (repo.isEmpty()) {
                 // use resolver to load from classpath if needed
                 HealthCheckResolver resolver
-                        = context.getCamelContextExtension().getHealthCheckResolver();
+                        = context.getCamelContextExtension().getContextPlugin(HealthCheckResolver.class);
                 HealthCheckRepository hr = resolver.resolveHealthCheckRepository(id);
                 if (hr != null) {
                     repo = Optional.of(hr);
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 5fbee500fa4..e757fe2ce8b 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
@@ -211,7 +211,6 @@ public abstract class AbstractCamelContext extends BaseService
     volatile ProcessorExchangeFactory processorExchangeFactory;
     volatile ReactiveExecutor reactiveExecutor;
     volatile Registry registry;
-    volatile HealthCheckResolver healthCheckResolver;
     volatile DevConsoleResolver devConsoleResolver;
     volatile ManagementStrategy managementStrategy;
     volatile ManagementMBeanAssembler managementMBeanAssembler;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.addContextPlugin(DataFormatResolver.class, createDataFormatResolver());
         camelContextExtension.lazyAddContextPlugin(PeriodTaskResolver.class, this::createPeriodTaskResolver);
         camelContextExtension.lazyAddContextPlugin(PeriodTaskScheduler.class, this::createPeriodTaskScheduler);
+        camelContextExtension.lazyAddContextPlugin(HealthCheckResolver.class, this::createHealthCheckResolver);
 
         if (build) {
             try {
@@ -3263,8 +3263,6 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.getDefaultFactoryFinder();
         getPropertiesComponent();
 
-        camelContextExtension.getHealthCheckResolver();
-
         getExecutorServiceManager();
         camelContextExtension.getExchangeFactoryManager();
         camelContextExtension.getExchangeFactory();
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
index 5d67e91d200..620cc38228c 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
@@ -37,7 +37,6 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.Service;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.console.DevConsoleResolver;
-import org.apache.camel.health.HealthCheckResolver;
 import org.apache.camel.spi.AnnotationBasedProcessorFactory;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.BeanIntrospection;
@@ -64,7 +63,6 @@ import org.apache.camel.spi.ManagementStrategy;
 import org.apache.camel.spi.ManagementStrategyFactory;
 import org.apache.camel.spi.ModelToXMLDumper;
 import org.apache.camel.spi.NormalizedEndpointUri;
-import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PluginManager;
 import org.apache.camel.spi.ProcessorExchangeFactory;
 import org.apache.camel.spi.ProcessorFactory;
@@ -460,22 +458,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
         this.basePackageScan = basePackageScan;
     }
 
-    public HealthCheckResolver getHealthCheckResolver() {
-        if (camelContext.healthCheckResolver == null) {
-            synchronized (camelContext.lock) {
-                if (camelContext.healthCheckResolver == null) {
-                    setHealthCheckResolver(camelContext.createHealthCheckResolver());
-                }
-            }
-        }
-        return camelContext.healthCheckResolver;
-    }
-
-    @Override
-    public void setHealthCheckResolver(HealthCheckResolver healthCheckResolver) {
-        camelContext.healthCheckResolver = camelContext.getInternalServiceManager().addService(healthCheckResolver);
-    }
-
     public DevConsoleResolver getDevConsoleResolver() {
         if (camelContext.devConsoleResolver == null) {
             synchronized (camelContext.lock) {
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 1d4595d1dd8..982cebd9d75 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
@@ -47,8 +47,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ExchangeFactoryManager": target.setExchangeFactoryManager(property(camelContext, org.apache.camel.spi.ExchangeFactoryManager.class, value)); return true;
         case "headersmapfactory":
         case "HeadersMapFactory": target.setHeadersMapFactory(property(camelContext, org.apache.camel.spi.HeadersMapFactory.class, value)); return true;
-        case "healthcheckresolver":
-        case "HealthCheckResolver": target.setHealthCheckResolver(property(camelContext, org.apache.camel.health.HealthCheckResolver.class, value)); return true;
         case "interceptendpointfactory":
         case "InterceptEndpointFactory": target.setInterceptEndpointFactory(property(camelContext, org.apache.camel.spi.InterceptEndpointFactory.class, value)); return true;
         case "internalprocessorfactory":
@@ -114,8 +112,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ExchangeFactoryManager": return org.apache.camel.spi.ExchangeFactoryManager.class;
         case "headersmapfactory":
         case "HeadersMapFactory": return org.apache.camel.spi.HeadersMapFactory.class;
-        case "healthcheckresolver":
-        case "HealthCheckResolver": return org.apache.camel.health.HealthCheckResolver.class;
         case "interceptendpointfactory":
         case "InterceptEndpointFactory": return org.apache.camel.spi.InterceptEndpointFactory.class;
         case "internalprocessorfactory":
@@ -182,8 +178,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ExchangeFactoryManager": return target.getExchangeFactoryManager();
         case "headersmapfactory":
         case "HeadersMapFactory": return target.getHeadersMapFactory();
-        case "healthcheckresolver":
-        case "HealthCheckResolver": return target.getHealthCheckResolver();
         case "interceptendpointfactory":
         case "InterceptEndpointFactory": return target.getInterceptEndpointFactory();
         case "internalprocessorfactory":
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
index 9257979aedd..35da047b4ee 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
@@ -38,7 +38,6 @@ import org.apache.camel.Service;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.console.DevConsoleResolver;
-import org.apache.camel.health.HealthCheckResolver;
 import org.apache.camel.spi.AnnotationBasedProcessorFactory;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.BeanIntrospection;
@@ -59,7 +58,6 @@ import org.apache.camel.spi.LogListener;
 import org.apache.camel.spi.ManagementMBeanAssembler;
 import org.apache.camel.spi.ModelToXMLDumper;
 import org.apache.camel.spi.NormalizedEndpointUri;
-import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PluginManager;
 import org.apache.camel.spi.ProcessorExchangeFactory;
 import org.apache.camel.spi.ProcessorFactory;
@@ -106,16 +104,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public HealthCheckResolver getHealthCheckResolver() {
-        return camelContext.getCamelContextExtension().getHealthCheckResolver();
-    }
-
-    @Override
-    public void setHealthCheckResolver(HealthCheckResolver healthCheckResolver) {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     public DevConsoleResolver getDevConsoleResolver() {
         return camelContext.getCamelContextExtension().getDevConsoleResolver();
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/health/HealthCheckResultStrategyTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/health/HealthCheckResultStrategyTest.java
index ee327fb07e5..8aa633e8929 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/health/HealthCheckResultStrategyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/health/HealthCheckResultStrategyTest.java
@@ -25,6 +25,7 @@ import org.apache.camel.health.HealthCheckHelper;
 import org.apache.camel.health.HealthCheckRegistry;
 import org.apache.camel.health.HealthCheckResultBuilder;
 import org.apache.camel.health.HealthCheckResultStrategy;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
@@ -40,8 +41,7 @@ public class HealthCheckResultStrategyTest extends ContextTestSupport {
         context.getRegistry().bind("myStrategy", new MyResultStrategy());
         context.start();
 
-        HealthCheck hc
-                = context.getCamelContextExtension().getHealthCheckResolver().resolveHealthCheck("myfoo");
+        HealthCheck hc = PluginHelper.getHealthCheckResolver(context).resolveHealthCheck("myfoo");
         Assertions.assertNotNull(hc);
 
         Assertions.assertEquals("acme", hc.getGroup());
@@ -58,8 +58,7 @@ public class HealthCheckResultStrategyTest extends ContextTestSupport {
         context.getRegistry().bind("myStrategy", new MyResultStrategy());
         context.start();
 
-        HealthCheck hc
-                = context.getCamelContextExtension().getHealthCheckResolver().resolveHealthCheck("myfoo");
+        HealthCheck hc = PluginHelper.getHealthCheckResolver(context).resolveHealthCheck("myfoo");
         Assertions.assertNotNull(hc);
 
         HealthCheckRegistry hcr = context.getCamelContextExtension().getContextPlugin(HealthCheckRegistry.class);
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/health/MyFooHealthCheckTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/health/MyFooHealthCheckTest.java
index 78af86ca0b7..1808736f25b 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/health/MyFooHealthCheckTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/health/MyFooHealthCheckTest.java
@@ -22,6 +22,7 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.health.HealthCheck;
 import org.apache.camel.health.HealthCheckHelper;
 import org.apache.camel.health.HealthCheckRegistry;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
@@ -36,8 +37,7 @@ public class MyFooHealthCheckTest extends ContextTestSupport {
     public void testMyFoo() throws Exception {
         context.start();
 
-        HealthCheck hc
-                = context.getCamelContextExtension().getHealthCheckResolver().resolveHealthCheck("myfoo");
+        HealthCheck hc = PluginHelper.getHealthCheckResolver(context).resolveHealthCheck("myfoo");
         Assertions.assertNotNull(hc);
 
         Assertions.assertEquals("acme", hc.getGroup());
@@ -53,8 +53,7 @@ public class MyFooHealthCheckTest extends ContextTestSupport {
     public void testAddToRegistry() throws Exception {
         context.start();
 
-        HealthCheck hc
-                = context.getCamelContextExtension().getHealthCheckResolver().resolveHealthCheck("myfoo");
+        HealthCheck hc = PluginHelper.getHealthCheckResolver(context).resolveHealthCheck("myfoo");
         Assertions.assertNotNull(hc);
 
         HealthCheckRegistry hcr = context.getCamelContextExtension().getContextPlugin(HealthCheckRegistry.class);
diff --git a/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthCheckRegistry.java b/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthCheckRegistry.java
index ea7dde4d017..c5d6869bc6b 100644
--- a/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthCheckRegistry.java
+++ b/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthCheckRegistry.java
@@ -30,6 +30,7 @@ import org.apache.camel.health.HealthCheckRegistry;
 import org.apache.camel.health.HealthCheckRepository;
 import org.apache.camel.health.HealthCheckResolver;
 import org.apache.camel.support.PatternHelper;
+import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.support.service.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
@@ -177,7 +178,7 @@ public class DefaultHealthCheckRegistry extends ServiceSupport implements Health
         HealthCheck answer = checks.stream().filter(h -> h.getId().equals(id)).findFirst()
                 .orElse(camelContext.getRegistry().findByTypeWithName(HealthCheck.class).get(id));
         if (answer == null) {
-            HealthCheckResolver resolver = camelContext.getCamelContextExtension().getHealthCheckResolver();
+            HealthCheckResolver resolver = PluginHelper.getHealthCheckResolver(camelContext);
             answer = resolver.resolveHealthCheck(id);
         }
 
@@ -190,7 +191,7 @@ public class DefaultHealthCheckRegistry extends ServiceSupport implements Health
                 .orElse(camelContext.getRegistry().findByTypeWithName(HealthCheckRepository.class).get(id));
         if (answer == null) {
             // discover via classpath (try first via -health-check-repository and then id as-is)
-            HealthCheckResolver resolver = camelContext.getCamelContextExtension().getHealthCheckResolver();
+            HealthCheckResolver resolver = PluginHelper.getHealthCheckResolver(camelContext);
             answer = resolver.resolveHealthCheckRepository(id);
         }
 
diff --git a/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java b/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java
index d9f6eb684f6..3457e6fec6b 100644
--- a/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java
+++ b/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java
@@ -44,7 +44,7 @@ public class DefaultHealthChecksLoader {
     public DefaultHealthChecksLoader(CamelContext camelContext) {
         this.camelContext = camelContext;
         this.resolver = PluginHelper.getPackageScanResourceResolver(camelContext);
-        this.healthCheckResolver = camelContext.getCamelContextExtension().getHealthCheckResolver();
+        this.healthCheckResolver = PluginHelper.getHealthCheckResolver(camelContext);
     }
 
     public Collection<HealthCheck> loadHealthChecks() {
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
index 7e04519984b..9e2c84da612 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
@@ -21,6 +21,7 @@ import java.util.concurrent.ScheduledExecutorService;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.health.HealthCheckResolver;
 import org.apache.camel.spi.CamelBeanPostProcessor;
 import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory;
 import org.apache.camel.spi.ComponentNameResolver;
@@ -307,4 +308,22 @@ public final class PluginHelper {
     public static PeriodTaskScheduler getPeriodTaskScheduler(ExtendedCamelContext extendedCamelContext) {
         return extendedCamelContext.getContextPlugin(PeriodTaskScheduler.class);
     }
+
+    /**
+     * Gets the current health check resolver
+     *
+     * @return the resolver
+     */
+    public static HealthCheckResolver getHealthCheckResolver(CamelContext camelContext) {
+        return getHealthCheckResolver(camelContext.getCamelContextExtension());
+    }
+
+    /**
+     * Gets the current health check resolver
+     *
+     * @return the resolver
+     */
+    public static HealthCheckResolver getHealthCheckResolver(ExtendedCamelContext extendedCamelContext) {
+        return extendedCamelContext.getContextPlugin(HealthCheckResolver.class);
+    }
 }


[camel] 01/02: CAMEL-15105: make the PeriodicTaskScheduler a plugin of the context

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

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

commit 6f216ea59bcf9588c36e40a4915f9834aee3069b
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 11:49:31 2023 +0200

    CAMEL-15105: make the PeriodicTaskScheduler a plugin of the context
---
 .../component/aws/secretsmanager/SecretsDevConsole.java   |  3 ++-
 .../azure/key/vault/AzureKeyVaultManagerDevConsole.java   |  3 ++-
 .../secret/manager/GoogleSecretManagerDevConsole.java     |  3 ++-
 .../main/java/org/apache/camel/ExtendedCamelContext.java  | 10 ----------
 .../apache/camel/impl/engine/AbstractCamelContext.java    |  2 +-
 .../camel/impl/engine/DefaultCamelContextExtension.java   | 15 ---------------
 .../apache/camel/impl/ExtendedCamelContextConfigurer.java |  6 ------
 .../camel/impl/lw/LightweightCamelContextExtension.java   | 10 ----------
 .../apache/camel/impl/engine/PeriodTaskSchedulerTest.java |  5 +++--
 .../main/java/org/apache/camel/main/BaseMainSupport.java  |  6 +++---
 .../main/java/org/apache/camel/support/PluginHelper.java  | 15 +++++++++++++++
 11 files changed, 28 insertions(+), 50 deletions(-)

diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java
index 45962b8adb4..c632c9b8f69 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsDevConsole.java
@@ -26,6 +26,7 @@ import org.apache.camel.component.aws.secretsmanager.vault.CloudTrailReloadTrigg
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PropertiesFunction;
 import org.apache.camel.spi.annotations.DevConsole;
+import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonArray;
@@ -54,7 +55,7 @@ public class SecretsDevConsole extends AbstractDevConsole {
         }
         AwsVaultConfiguration aws = getCamelContext().getVaultConfiguration().getAwsVaultConfiguration();
         if (aws != null && aws.isRefreshEnabled()) {
-            PeriodTaskScheduler scheduler = getCamelContext().getCamelContextExtension().getPeriodTaskScheduler();
+            PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(getCamelContext());
             secretsRefreshTask = scheduler.getTaskByType(CloudTrailReloadTriggerTask.class);
         }
     }
diff --git a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java
index a46a4d18efc..e995b197927 100644
--- a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java
+++ b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/AzureKeyVaultManagerDevConsole.java
@@ -25,6 +25,7 @@ import java.util.Map;
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PropertiesFunction;
 import org.apache.camel.spi.annotations.DevConsole;
+import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonArray;
@@ -53,7 +54,7 @@ public class AzureKeyVaultManagerDevConsole extends AbstractDevConsole {
         }
         AzureVaultConfiguration azure = getCamelContext().getVaultConfiguration().getAzureVaultConfiguration();
         if (azure != null && azure.isRefreshEnabled()) {
-            PeriodTaskScheduler scheduler = getCamelContext().getCamelContextExtension().getPeriodTaskScheduler();
+            PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(getCamelContext());
             secretsRefreshTask = scheduler.getTaskByType(EventhubsReloadTriggerTask.class);
         }
     }
diff --git a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java
index 0cef8350354..89072482f2f 100644
--- a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java
+++ b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerDevConsole.java
@@ -26,6 +26,7 @@ import org.apache.camel.component.google.secret.manager.vault.PubsubReloadTrigge
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PropertiesFunction;
 import org.apache.camel.spi.annotations.DevConsole;
+import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonArray;
@@ -54,7 +55,7 @@ public class GoogleSecretManagerDevConsole extends AbstractDevConsole {
         }
         GcpVaultConfiguration gcp = getCamelContext().getVaultConfiguration().getGcpVaultConfiguration();
         if (gcp != null && gcp.isRefreshEnabled()) {
-            PeriodTaskScheduler scheduler = getCamelContext().getCamelContextExtension().getPeriodTaskScheduler();
+            PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(getCamelContext());
             secretsRefreshTask = scheduler.getTaskByType(PubsubReloadTriggerTask.class);
         }
     }
diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
index e3ff1eb98f7..3cd1cc335be 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
@@ -682,16 +682,6 @@ public interface ExtendedCamelContext {
      */
     byte getStatusPhase();
 
-    /**
-     * Gets the period task scheduler
-     */
-    PeriodTaskScheduler getPeriodTaskScheduler();
-
-    /**
-     * To use a custom period task scheduler
-     */
-    void setPeriodTaskScheduler(PeriodTaskScheduler periodTaskScheduler);
-
     /**
      * Gets access to the internal plugin manager
      *
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 463ff7bf548..5fbee500fa4 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
@@ -224,7 +224,6 @@ public abstract class AbstractCamelContext extends BaseService
     volatile RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory;
     volatile RuntimeCamelCatalog runtimeCamelCatalog;
     volatile ProcessorFactory processorFactory;
-    volatile PeriodTaskScheduler periodTaskScheduler;
     volatile InternalProcessorFactory internalProcessorFactory;
     volatile InterceptEndpointFactory interceptEndpointFactory;
     volatile RouteFactory routeFactory;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.lazyAddContextPlugin(ModelJAXBContextFactory.class, this::createModelJAXBContextFactory);
         camelContextExtension.addContextPlugin(DataFormatResolver.class, createDataFormatResolver());
         camelContextExtension.lazyAddContextPlugin(PeriodTaskResolver.class, this::createPeriodTaskResolver);
+        camelContextExtension.lazyAddContextPlugin(PeriodTaskScheduler.class, this::createPeriodTaskScheduler);
 
         if (build) {
             try {
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
index 35514f8e210..5d67e91d200 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
@@ -365,21 +365,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
         return factories.computeIfAbsent(path, camelContext::createFactoryFinder);
     }
 
-    public PeriodTaskScheduler getPeriodTaskScheduler() {
-        if (camelContext.periodTaskScheduler == null) {
-            synchronized (camelContext.lock) {
-                if (camelContext.periodTaskScheduler == null) {
-                    setPeriodTaskScheduler(camelContext.createPeriodTaskScheduler());
-                }
-            }
-        }
-        return camelContext.periodTaskScheduler;
-    }
-
-    public void setPeriodTaskScheduler(PeriodTaskScheduler periodTaskScheduler) {
-        camelContext.periodTaskScheduler = camelContext.getInternalServiceManager().addService(periodTaskScheduler);
-    }
-
     @Override
     public void setupManagement(Map<String, Object> options) {
         LOG.trace("Setting up management");
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 1abc1508172..1d4595d1dd8 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
@@ -59,8 +59,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ModelToXMLDumper": target.setModelToXMLDumper(property(camelContext, org.apache.camel.spi.ModelToXMLDumper.class, value)); return true;
         case "name":
         case "Name": target.setName(property(camelContext, java.lang.String.class, value)); return true;
-        case "periodtaskscheduler":
-        case "PeriodTaskScheduler": target.setPeriodTaskScheduler(property(camelContext, org.apache.camel.spi.PeriodTaskScheduler.class, value)); return true;
         case "processorexchangefactory":
         case "ProcessorExchangeFactory": target.setProcessorExchangeFactory(property(camelContext, org.apache.camel.spi.ProcessorExchangeFactory.class, value)); return true;
         case "processorfactory":
@@ -128,8 +126,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ModelToXMLDumper": return org.apache.camel.spi.ModelToXMLDumper.class;
         case "name":
         case "Name": return java.lang.String.class;
-        case "periodtaskscheduler":
-        case "PeriodTaskScheduler": return org.apache.camel.spi.PeriodTaskScheduler.class;
         case "processorexchangefactory":
         case "ProcessorExchangeFactory": return org.apache.camel.spi.ProcessorExchangeFactory.class;
         case "processorfactory":
@@ -198,8 +194,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ModelToXMLDumper": return target.getModelToXMLDumper();
         case "name":
         case "Name": return target.getName();
-        case "periodtaskscheduler":
-        case "PeriodTaskScheduler": return target.getPeriodTaskScheduler();
         case "processorexchangefactory":
         case "ProcessorExchangeFactory": return target.getProcessorExchangeFactory();
         case "processorfactory":
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
index f805740ed97..9257979aedd 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
@@ -693,16 +693,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public void setPeriodTaskScheduler(PeriodTaskScheduler periodTaskScheduler) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public PeriodTaskScheduler getPeriodTaskScheduler() {
-        return camelContext.getCamelContextExtension().getPeriodTaskScheduler();
-    }
-
     @Override
     public PluginManager getPluginManager() {
         return camelContext.getCamelContextExtension().getPluginManager();
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/engine/PeriodTaskSchedulerTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/engine/PeriodTaskSchedulerTest.java
index 4d218f97eab..462d43bd8b9 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/engine/PeriodTaskSchedulerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/engine/PeriodTaskSchedulerTest.java
@@ -21,6 +21,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.spi.PeriodTaskScheduler;
+import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.TimerListenerManager;
 import org.apache.camel.support.service.ServiceSupport;
 import org.awaitility.Awaitility;
@@ -40,7 +41,7 @@ public class PeriodTaskSchedulerTest extends ContextTestSupport {
     public void testScheduler() throws Exception {
         counter.set(0);
 
-        PeriodTaskScheduler scheduler = context.getCamelContextExtension().getPeriodTaskScheduler();
+        PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(context);
         if (scheduler instanceof TimerListenerManager) {
             // speedup unit test
             ((TimerListenerManager) scheduler).setInterval(10);
@@ -57,7 +58,7 @@ public class PeriodTaskSchedulerTest extends ContextTestSupport {
 
         MyTask task = new MyTask();
 
-        PeriodTaskScheduler scheduler = context.getCamelContextExtension().getPeriodTaskScheduler();
+        PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(context);
         if (scheduler instanceof TimerListenerManager) {
             // speedup unit test
             ((TimerListenerManager) scheduler).setInterval(10);
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 2eb09f00fc8..800799dcc75 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
@@ -411,7 +411,7 @@ public abstract class BaseMainSupport extends BaseService {
                     ContextReloadStrategy reloader = new DefaultContextReloadStrategy();
                     camelContext.addService(reloader);
                 }
-                PeriodTaskScheduler scheduler = getCamelContext().getCamelContextExtension().getPeriodTaskScheduler();
+                PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(getCamelContext());
                 scheduler.schedulePeriodTask(r, period);
             }
         }
@@ -430,7 +430,7 @@ public abstract class BaseMainSupport extends BaseService {
                     ContextReloadStrategy reloader = new DefaultContextReloadStrategy();
                     camelContext.addService(reloader);
                 }
-                PeriodTaskScheduler scheduler = getCamelContext().getCamelContextExtension().getPeriodTaskScheduler();
+                PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(getCamelContext());
                 scheduler.schedulePeriodTask(r, period);
             }
         }
@@ -449,7 +449,7 @@ public abstract class BaseMainSupport extends BaseService {
                     ContextReloadStrategy reloader = new DefaultContextReloadStrategy();
                     camelContext.addService(reloader);
                 }
-                PeriodTaskScheduler scheduler = getCamelContext().getCamelContextExtension().getPeriodTaskScheduler();
+                PeriodTaskScheduler scheduler = PluginHelper.getPeriodTaskScheduler(getCamelContext());
                 scheduler.schedulePeriodTask(r, period);
             }
         }
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
index 3db96cee8c9..7e04519984b 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
@@ -34,6 +34,7 @@ import org.apache.camel.spi.ModelineFactory;
 import org.apache.camel.spi.PackageScanClassResolver;
 import org.apache.camel.spi.PackageScanResourceResolver;
 import org.apache.camel.spi.PeriodTaskResolver;
+import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.UriFactoryResolver;
 
 public final class PluginHelper {
@@ -292,4 +293,18 @@ public final class PluginHelper {
     public static PeriodTaskResolver getPeriodTaskResolver(ExtendedCamelContext extendedCamelContext) {
         return extendedCamelContext.getContextPlugin(PeriodTaskResolver.class);
     }
+
+    /**
+     * Gets the period task scheduler
+     */
+    public static PeriodTaskScheduler getPeriodTaskScheduler(CamelContext camelContext) {
+        return getPeriodTaskScheduler(camelContext.getCamelContextExtension());
+    }
+
+    /**
+     * Gets the period task scheduler
+     */
+    public static PeriodTaskScheduler getPeriodTaskScheduler(ExtendedCamelContext extendedCamelContext) {
+        return extendedCamelContext.getContextPlugin(PeriodTaskScheduler.class);
+    }
 }