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 10:28:25 UTC

[camel] branch main updated: CAMEL-15105: make the PeriodTaskResolver a plugin of the context

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


The following commit(s) were added to refs/heads/main by this push:
     new 02cc35d1ff5 CAMEL-15105: make the PeriodTaskResolver a plugin of the context
02cc35d1ff5 is described below

commit 02cc35d1ff5a989227c9b65c686c4aacac7b17be
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 09:35:23 2023 +0200

    CAMEL-15105: make the PeriodTaskResolver a plugin of the context
---
 .../java/org/apache/camel/ExtendedCamelContext.java    | 11 -----------
 .../apache/camel/impl/engine/AbstractCamelContext.java |  2 +-
 .../impl/engine/DefaultCamelContextExtension.java      | 18 ------------------
 .../camel/impl/ExtendedCamelContextConfigurer.java     |  6 ------
 .../impl/lw/LightweightCamelContextExtension.java      | 11 -----------
 .../java/org/apache/camel/main/BaseMainSupport.java    | 12 ++++++------
 .../java/org/apache/camel/support/PluginHelper.java    | 15 +++++++++++++++
 7 files changed, 22 insertions(+), 53 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 9f6b387c643..e3ff1eb98f7 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
@@ -45,7 +45,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.PeriodTaskResolver;
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PluginManager;
 import org.apache.camel.spi.ProcessorExchangeFactory;
@@ -693,16 +692,6 @@ public interface ExtendedCamelContext {
      */
     void setPeriodTaskScheduler(PeriodTaskScheduler periodTaskScheduler);
 
-    /**
-     * Gets the period task resolver
-     */
-    PeriodTaskResolver getPeriodTaskResolver();
-
-    /**
-     * To use a custom period task resolver
-     */
-    void setPeriodTaskResolver(PeriodTaskResolver periodTaskResolver);
-
     /**
      * 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 974bdc9e9ff..463ff7bf548 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 PeriodTaskResolver periodTaskResolver;
     volatile PeriodTaskScheduler periodTaskScheduler;
     volatile InternalProcessorFactory internalProcessorFactory;
     volatile InterceptEndpointFactory interceptEndpointFactory;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.lazyAddContextPlugin(ModelineFactory.class, this::createModelineFactory);
         camelContextExtension.lazyAddContextPlugin(ModelJAXBContextFactory.class, this::createModelJAXBContextFactory);
         camelContextExtension.addContextPlugin(DataFormatResolver.class, createDataFormatResolver());
+        camelContextExtension.lazyAddContextPlugin(PeriodTaskResolver.class, this::createPeriodTaskResolver);
 
         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 cb23b93b38f..35514f8e210 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
@@ -64,7 +64,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.PeriodTaskResolver;
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PluginManager;
 import org.apache.camel.spi.ProcessorExchangeFactory;
@@ -366,23 +365,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
         return factories.computeIfAbsent(path, camelContext::createFactoryFinder);
     }
 
-    @Override
-    public PeriodTaskResolver getPeriodTaskResolver() {
-        if (camelContext.periodTaskResolver == null) {
-            synchronized (camelContext.lock) {
-                if (camelContext.periodTaskResolver == null) {
-                    setPeriodTaskResolver(camelContext.createPeriodTaskResolver());
-                }
-            }
-        }
-        return camelContext.periodTaskResolver;
-    }
-
-    @Override
-    public void setPeriodTaskResolver(PeriodTaskResolver periodTaskResolver) {
-        camelContext.periodTaskResolver = camelContext.getInternalServiceManager().addService(periodTaskResolver);
-    }
-
     public PeriodTaskScheduler getPeriodTaskScheduler() {
         if (camelContext.periodTaskScheduler == 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 4d704f4dae6..1abc1508172 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 "periodtaskresolver":
-        case "PeriodTaskResolver": target.setPeriodTaskResolver(property(camelContext, org.apache.camel.spi.PeriodTaskResolver.class, value)); return true;
         case "periodtaskscheduler":
         case "PeriodTaskScheduler": target.setPeriodTaskScheduler(property(camelContext, org.apache.camel.spi.PeriodTaskScheduler.class, value)); return true;
         case "processorexchangefactory":
@@ -130,8 +128,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 "periodtaskresolver":
-        case "PeriodTaskResolver": return org.apache.camel.spi.PeriodTaskResolver.class;
         case "periodtaskscheduler":
         case "PeriodTaskScheduler": return org.apache.camel.spi.PeriodTaskScheduler.class;
         case "processorexchangefactory":
@@ -202,8 +198,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "ModelToXMLDumper": return target.getModelToXMLDumper();
         case "name":
         case "Name": return target.getName();
-        case "periodtaskresolver":
-        case "PeriodTaskResolver": return target.getPeriodTaskResolver();
         case "periodtaskscheduler":
         case "PeriodTaskScheduler": return target.getPeriodTaskScheduler();
         case "processorexchangefactory":
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 c8602079b6f..f805740ed97 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
@@ -59,7 +59,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.PeriodTaskResolver;
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PluginManager;
 import org.apache.camel.spi.ProcessorExchangeFactory;
@@ -694,11 +693,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public PeriodTaskResolver getPeriodTaskResolver() {
-        return camelContext.getCamelContextExtension().getPeriodTaskResolver();
-    }
-
     @Override
     public void setPeriodTaskScheduler(PeriodTaskScheduler periodTaskScheduler) {
         throw new UnsupportedOperationException();
@@ -709,11 +703,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
         return camelContext.getCamelContextExtension().getPeriodTaskScheduler();
     }
 
-    @Override
-    public void setPeriodTaskResolver(PeriodTaskResolver periodTaskResolver) {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     public PluginManager getPluginManager() {
         return camelContext.getCamelContextExtension().getPluginManager();
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 14a5a091135..2eb09f00fc8 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
@@ -398,8 +398,8 @@ public abstract class BaseMainSupport extends BaseService {
         }
 
         if (vc.aws().isRefreshEnabled()) {
-            Optional<Runnable> task = camelContext.getCamelContextExtension()
-                    .getPeriodTaskResolver().newInstance("aws-secret-refresh", Runnable.class);
+            Optional<Runnable> task = PluginHelper.getPeriodTaskResolver(camelContext)
+                    .newInstance("aws-secret-refresh", Runnable.class);
             if (task.isPresent()) {
                 long period = vc.aws().getRefreshPeriod();
                 Runnable r = task.get();
@@ -417,8 +417,8 @@ public abstract class BaseMainSupport extends BaseService {
         }
 
         if (vc.gcp().isRefreshEnabled()) {
-            Optional<Runnable> task = camelContext.getCamelContextExtension()
-                    .getPeriodTaskResolver().newInstance("gcp-secret-refresh", Runnable.class);
+            Optional<Runnable> task = PluginHelper.getPeriodTaskResolver(camelContext)
+                    .newInstance("gcp-secret-refresh", Runnable.class);
             if (task.isPresent()) {
                 long period = vc.gcp().getRefreshPeriod();
                 Runnable r = task.get();
@@ -436,8 +436,8 @@ public abstract class BaseMainSupport extends BaseService {
         }
 
         if (vc.azure().isRefreshEnabled()) {
-            Optional<Runnable> task = camelContext.getCamelContextExtension()
-                    .getPeriodTaskResolver().newInstance("azure-secret-refresh", Runnable.class);
+            Optional<Runnable> task = PluginHelper.getPeriodTaskResolver(camelContext)
+                    .newInstance("azure-secret-refresh", Runnable.class);
             if (task.isPresent()) {
                 long period = vc.azure().getRefreshPeriod();
                 Runnable r = task.get();
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 550440266b0..3db96cee8c9 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
@@ -33,6 +33,7 @@ import org.apache.camel.spi.ModelJAXBContextFactory;
 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.UriFactoryResolver;
 
 public final class PluginHelper {
@@ -277,4 +278,18 @@ public final class PluginHelper {
     public static DataFormatResolver getDataFormatResolver(ExtendedCamelContext extendedCamelContext) {
         return extendedCamelContext.getContextPlugin(DataFormatResolver.class);
     }
+
+    /**
+     * Gets the period task resolver
+     */
+    public static PeriodTaskResolver getPeriodTaskResolver(CamelContext camelContext) {
+        return getPeriodTaskResolver(camelContext.getCamelContextExtension());
+    }
+
+    /**
+     * Gets the period task resolver
+     */
+    public static PeriodTaskResolver getPeriodTaskResolver(ExtendedCamelContext extendedCamelContext) {
+        return extendedCamelContext.getContextPlugin(PeriodTaskResolver.class);
+    }
 }