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 <[email protected]> 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); + } }
