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/03/31 11:05:42 UTC

[camel] 02/02: CAMEL-15105: make the ConfigurerResolver 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

commit 6085a54dd8e6707945b26c88e1b2807a9fda8838
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Mar 31 11:46:26 2023 +0200

    CAMEL-15105: make the ConfigurerResolver a plugin of the context
---
 .../java/org/apache/camel/ExtendedCamelContext.java  | 13 -------------
 .../camel/impl/engine/AbstractCamelContext.java      |  2 --
 .../impl/engine/DefaultCamelContextExtension.java    | 20 --------------------
 .../engine/DefaultServiceBootstrapCloseable.java     |  4 ++--
 .../camel/impl/ExtendedCamelContextConfigurer.java   |  6 ------
 .../impl/lw/LightweightCamelContextExtension.java    | 11 -----------
 .../main/java/org/apache/camel/main/MainHelper.java  |  3 +--
 .../java/org/apache/camel/support/PluginHelper.java  | 16 ++++++++++++++++
 8 files changed, 19 insertions(+), 56 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 7d4b51aebfc..2afb5390787 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
@@ -29,7 +29,6 @@ import org.apache.camel.spi.BeanIntrospection;
 import org.apache.camel.spi.BeanProcessorFactory;
 import org.apache.camel.spi.BeanProxyFactory;
 import org.apache.camel.spi.BootstrapCloseable;
-import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.DeferServiceFactory;
 import org.apache.camel.spi.EndpointStrategy;
@@ -389,18 +388,6 @@ public interface ExtendedCamelContext {
      */
     FactoryFinder getBootstrapFactoryFinder(String path);
 
-    /**
-     * Gets the bootstrap {@link ConfigurerResolver} to use. This bootstrap resolver is only intended to be used during
-     * bootstrap (starting) CamelContext.
-     */
-    ConfigurerResolver getBootstrapConfigurerResolver();
-
-    /**
-     * sets the bootstrap {@link ConfigurerResolver} to use. This bootstrap resolver is only intended to be used during
-     * bootstrap (starting) CamelContext.
-     */
-    void setBootstrapConfigurerResolver(ConfigurerResolver configurerResolver);
-
     /**
      * Gets the FactoryFinder which will be used for the loading the factory class from META-INF in the given path
      *
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 13e0ebdc8d2..5be02c3e266 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
@@ -203,7 +203,6 @@ public abstract class AbstractCamelContext extends BaseService
     final List<BootstrapCloseable> bootstraps = new CopyOnWriteArrayList<>();
     final Map<String, FactoryFinder> bootstrapFactories = new ConcurrentHashMap<>();
     volatile FactoryFinder bootstrapFactoryFinder;
-    volatile ConfigurerResolver bootstrapConfigurerResolver;
     final Object lock = new Object();
     final RouteController internalRouteController = new InternalRouteController(this);
     volatile DeferServiceFactory deferServiceFactory;
@@ -3267,7 +3266,6 @@ public abstract class AbstractCamelContext extends BaseService
         getTypeConverterRegistry();
         getInjector();
         camelContextExtension.getDefaultFactoryFinder();
-        camelContextExtension.getBootstrapConfigurerResolver();
         getPropertiesComponent();
 
         camelContextExtension.getDataFormatResolver();
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 d2d6d6a21b3..2856c0acd3e 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
@@ -43,7 +43,6 @@ import org.apache.camel.spi.BeanIntrospection;
 import org.apache.camel.spi.BeanProcessorFactory;
 import org.apache.camel.spi.BeanProxyFactory;
 import org.apache.camel.spi.BootstrapCloseable;
-import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.Debugger;
 import org.apache.camel.spi.DebuggerFactory;
@@ -338,25 +337,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
         return getFactoryFinder(FactoryFinder.DEFAULT_PATH);
     }
 
-    @Override
-    public ConfigurerResolver getBootstrapConfigurerResolver() {
-        if (camelContext.bootstrapConfigurerResolver == null) {
-            synchronized (camelContext.lock) {
-                if (camelContext.bootstrapConfigurerResolver == null) {
-                    camelContext.bootstrapConfigurerResolver = new BootstrapConfigurerResolver(
-                            getFactoryFinderResolver().resolveBootstrapFactoryFinder(camelContext.getClassResolver(),
-                                    ConfigurerResolver.RESOURCE_PATH));
-                }
-            }
-        }
-        return camelContext.bootstrapConfigurerResolver;
-    }
-
-    @Override
-    public void setBootstrapConfigurerResolver(ConfigurerResolver configurerResolver) {
-        camelContext.bootstrapConfigurerResolver = configurerResolver;
-    }
-
     @Override
     public FactoryFinder getBootstrapFactoryFinder() {
         if (camelContext.bootstrapFactoryFinder == null) {
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java
index 11ace4e04d3..ff10d2c453c 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultServiceBootstrapCloseable.java
@@ -27,6 +27,7 @@ import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.ConfigurerStrategy;
 import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.ProcessorFactory;
+import org.apache.camel.support.PluginHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -68,7 +69,7 @@ public class DefaultServiceBootstrapCloseable implements BootstrapCloseable {
         }
 
         // clear bootstrap configurer resolver
-        ConfigurerResolver cr = camelContextExtension.getBootstrapConfigurerResolver();
+        ConfigurerResolver cr = PluginHelper.getBootstrapConfigurerResolver(camelContextExtension);
         if (cr instanceof BootstrapCloseable) {
             try {
                 ((BootstrapCloseable) cr).close();
@@ -76,7 +77,6 @@ public class DefaultServiceBootstrapCloseable implements BootstrapCloseable {
                 LOG.warn("Error during closing bootstrap service. This exception is ignored", e);
             }
         }
-        camelContextExtension.setBootstrapConfigurerResolver(null);
 
         // clear processor factory
         ProcessorFactory pf = camelContextExtension.getProcessorFactory();
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 e335485b22b..e72e9d31d13 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
@@ -29,8 +29,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "BasePackageScan": target.setBasePackageScan(property(camelContext, java.lang.String.class, value)); return true;
         case "beanintrospection":
         case "BeanIntrospection": target.setBeanIntrospection(property(camelContext, org.apache.camel.spi.BeanIntrospection.class, value)); return true;
-        case "bootstrapconfigurerresolver":
-        case "BootstrapConfigurerResolver": target.setBootstrapConfigurerResolver(property(camelContext, org.apache.camel.spi.ConfigurerResolver.class, value)); return true;
         case "bootstrapfactoryfinder":
         case "BootstrapFactoryFinder": target.setBootstrapFactoryFinder(property(camelContext, org.apache.camel.spi.FactoryFinder.class, value)); return true;
         case "dataformatresolver":
@@ -114,8 +112,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "BasePackageScan": return java.lang.String.class;
         case "beanintrospection":
         case "BeanIntrospection": return org.apache.camel.spi.BeanIntrospection.class;
-        case "bootstrapconfigurerresolver":
-        case "BootstrapConfigurerResolver": return org.apache.camel.spi.ConfigurerResolver.class;
         case "bootstrapfactoryfinder":
         case "BootstrapFactoryFinder": return org.apache.camel.spi.FactoryFinder.class;
         case "dataformatresolver":
@@ -200,8 +196,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "BasePackageScan": return target.getBasePackageScan();
         case "beanintrospection":
         case "BeanIntrospection": return target.getBeanIntrospection();
-        case "bootstrapconfigurerresolver":
-        case "BootstrapConfigurerResolver": return target.getBootstrapConfigurerResolver();
         case "bootstrapfactoryfinder":
         case "BootstrapFactoryFinder": return target.getBootstrapFactoryFinder();
         case "dataformatresolver":
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 7eb7b2bbd2b..e7083ac83a1 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
@@ -44,7 +44,6 @@ import org.apache.camel.spi.BeanIntrospection;
 import org.apache.camel.spi.BeanProcessorFactory;
 import org.apache.camel.spi.BeanProxyFactory;
 import org.apache.camel.spi.BootstrapCloseable;
-import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.DeferServiceFactory;
 import org.apache.camel.spi.EndpointStrategy;
@@ -293,16 +292,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public ConfigurerResolver getBootstrapConfigurerResolver() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void setBootstrapConfigurerResolver(ConfigurerResolver configurerResolver) {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     public FactoryFinder getBootstrapFactoryFinder() {
         throw new UnsupportedOperationException();
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java b/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
index 578419e8ff0..f0e41beee80 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
@@ -297,8 +297,7 @@ public final class MainHelper {
         if (configurer == null) {
             String name = target.getClass().getName();
             // see if there is a configurer for it (use bootstrap)
-            configurer = context.getCamelContextExtension()
-                    .getBootstrapConfigurerResolver().resolvePropertyConfigurer(name, context);
+            configurer = PluginHelper.getBootstrapConfigurerResolver(context).resolvePropertyConfigurer(name, context);
         }
 
         try {
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 8ef62d0efd9..4dd6a259d05 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
@@ -151,4 +151,20 @@ public final class PluginHelper {
     public static ScheduledExecutorService getErrorHandlerExecutorService(ExtendedCamelContext extendedCamelContext) {
         return extendedCamelContext.getContextPlugin(ScheduledExecutorService.class);
     }
+
+    /**
+     * Gets the bootstrap {@link ConfigurerResolver} to use. This bootstrap resolver is only intended to be used during
+     * bootstrap (starting) CamelContext.
+     */
+    public static ConfigurerResolver getBootstrapConfigurerResolver(CamelContext camelContext) {
+        return getBootstrapConfigurerResolver(camelContext.getCamelContextExtension());
+    }
+
+    /**
+     * Gets the bootstrap {@link ConfigurerResolver} to use. This bootstrap resolver is only intended to be used during
+     * bootstrap (starting) CamelContext.
+     */
+    public static ConfigurerResolver getBootstrapConfigurerResolver(ExtendedCamelContext extendedCamelContext) {
+        return extendedCamelContext.getContextPlugin(ConfigurerResolver.class);
+    }
 }