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 07:13:52 UTC

[camel] 06/06: CAMEL-15105: make the ComponentNameResolver 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 ad6157f08e275a24cffec4f38a96d019ff96f09f
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Mar 30 18:57:24 2023 +0200

    CAMEL-15105: make the ComponentNameResolver a plugin of the context
---
 .../main/java/org/apache/camel/ExtendedCamelContext.java | 11 -----------
 .../apache/camel/impl/engine/AbstractCamelContext.java   |  3 +--
 .../camel/impl/engine/DefaultCamelContextExtension.java  | 16 ----------------
 .../camel/impl/ExtendedCamelContextConfigurer.java       |  6 ------
 .../camel/impl/lw/LightweightCamelContextExtension.java  | 11 -----------
 .../impl/engine/DefaultComponentNameResolverTest.java    |  3 ++-
 .../main/java/org/apache/camel/support/PluginHelper.java | 15 +++++++++++++++
 7 files changed, 18 insertions(+), 47 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 e15fc468a1f..7e314a477b0 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
@@ -30,7 +30,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.ComponentNameResolver;
 import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.DeferServiceFactory;
@@ -288,16 +287,6 @@ public interface ExtendedCamelContext {
      */
     void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory);
 
-    /**
-     * Gets the {@link ComponentNameResolver} to use.
-     */
-    ComponentNameResolver getComponentNameResolver();
-
-    /**
-     * Sets a custom {@link ComponentNameResolver} to use.
-     */
-    void setComponentNameResolver(ComponentNameResolver componentNameResolver);
-
     /**
      * Gets the {@link LanguageResolver} to use.
      */
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 dfb8924bdab..b73df87fa17 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
@@ -213,7 +213,6 @@ public abstract class AbstractCamelContext extends BaseService
     volatile ProcessorExchangeFactory processorExchangeFactory;
     volatile ReactiveExecutor reactiveExecutor;
     volatile Registry registry;
-    volatile ComponentNameResolver componentNameResolver;
     volatile LanguageResolver languageResolver;
     volatile ConfigurerResolver configurerResolver;
     volatile UriFactoryResolver uriFactoryResolver;
@@ -386,6 +385,7 @@ public abstract class AbstractCamelContext extends BaseService
         camelContextExtension.addContextPlugin(CamelDependencyInjectionAnnotationFactory.class,
                 createDependencyInjectionAnnotationFactory());
         camelContextExtension.addContextPlugin(ComponentResolver.class, createComponentResolver());
+        camelContextExtension.addContextPlugin(ComponentNameResolver.class, createComponentNameResolver());
 
         if (build) {
             try {
@@ -3273,7 +3273,6 @@ public abstract class AbstractCamelContext extends BaseService
         getPropertiesComponent();
 
         camelContextExtension.getLanguageResolver();
-        camelContextExtension.getComponentNameResolver();
         camelContextExtension.getDataFormatResolver();
         camelContextExtension.getHealthCheckResolver();
 
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 4d48d6498ce..8094600f7f8 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
@@ -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.ComponentNameResolver;
 import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.Debugger;
@@ -248,21 +247,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
         return camelContext.managementMBeanAssembler;
     }
 
-    public ComponentNameResolver getComponentNameResolver() {
-        if (camelContext.componentNameResolver == null) {
-            synchronized (camelContext.lock) {
-                if (camelContext.componentNameResolver == null) {
-                    setComponentNameResolver(camelContext.createComponentNameResolver());
-                }
-            }
-        }
-        return camelContext.componentNameResolver;
-    }
-
-    public void setComponentNameResolver(ComponentNameResolver componentNameResolver) {
-        camelContext.componentNameResolver = camelContext.getInternalServiceManager().addService(componentNameResolver);
-    }
-
     public LanguageResolver getLanguageResolver() {
         if (camelContext.languageResolver == 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 c4a7ee9606a..7ebf603b71e 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
@@ -33,8 +33,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         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 "componentnameresolver":
-        case "ComponentNameResolver": target.setComponentNameResolver(property(camelContext, org.apache.camel.spi.ComponentNameResolver.class, value)); return true;
         case "configurerresolver":
         case "ConfigurerResolver": target.setConfigurerResolver(property(camelContext, org.apache.camel.spi.ConfigurerResolver.class, value)); return true;
         case "dataformatresolver":
@@ -126,8 +124,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "BootstrapConfigurerResolver": return org.apache.camel.spi.ConfigurerResolver.class;
         case "bootstrapfactoryfinder":
         case "BootstrapFactoryFinder": return org.apache.camel.spi.FactoryFinder.class;
-        case "componentnameresolver":
-        case "ComponentNameResolver": return org.apache.camel.spi.ComponentNameResolver.class;
         case "configurerresolver":
         case "ConfigurerResolver": return org.apache.camel.spi.ConfigurerResolver.class;
         case "dataformatresolver":
@@ -220,8 +216,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
         case "BootstrapConfigurerResolver": return target.getBootstrapConfigurerResolver();
         case "bootstrapfactoryfinder":
         case "BootstrapFactoryFinder": return target.getBootstrapFactoryFinder();
-        case "componentnameresolver":
-        case "ComponentNameResolver": return target.getComponentNameResolver();
         case "configurerresolver":
         case "ConfigurerResolver": return target.getConfigurerResolver();
         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 53a2e4a86d4..e9426d21cd7 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
@@ -45,7 +45,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.ComponentNameResolver;
 import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.DeferServiceFactory;
@@ -127,16 +126,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public ComponentNameResolver getComponentNameResolver() {
-        return camelContext.getCamelContextExtension().getComponentNameResolver();
-    }
-
-    @Override
-    public void setComponentNameResolver(ComponentNameResolver componentResolver) {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     public LanguageResolver getLanguageResolver() {
         return camelContext.getCamelContextExtension().getLanguageResolver();
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultComponentNameResolverTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultComponentNameResolverTest.java
index 3386bd92d07..c47db5b3a8b 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultComponentNameResolverTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultComponentNameResolverTest.java
@@ -20,6 +20,7 @@ import java.util.Set;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.spi.ComponentNameResolver;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -36,7 +37,7 @@ public class DefaultComponentNameResolverTest extends ContextTestSupport {
     public void testDefaultComponentNameResolver() throws Exception {
         context.start();
 
-        ComponentNameResolver resolver = context.getCamelContextExtension().getComponentNameResolver();
+        ComponentNameResolver resolver = PluginHelper.getComponentNameResolver(context);
         assertNotNull(resolver);
 
         Set<String> names = resolver.resolveNames(context);
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 1cb505705a6..a675479a364 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 org.apache.camel.CamelContext;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.spi.CamelBeanPostProcessor;
 import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory;
+import org.apache.camel.spi.ComponentNameResolver;
 import org.apache.camel.spi.ComponentResolver;
 
 public final class PluginHelper {
@@ -75,4 +76,18 @@ public final class PluginHelper {
     public static ComponentResolver getComponentResolver(ExtendedCamelContext extendedCamelContext) {
         return extendedCamelContext.getContextPlugin(ComponentResolver.class);
     }
+
+    /**
+     * Gets the {@link ComponentNameResolver} to use.
+     */
+    public static ComponentNameResolver getComponentNameResolver(CamelContext camelContext) {
+        return getComponentNameResolver(camelContext.getCamelContextExtension());
+    }
+
+    /**
+     * Gets the {@link ComponentNameResolver} to use.
+     */
+    public static ComponentNameResolver getComponentNameResolver(ExtendedCamelContext extendedCamelContext) {
+        return extendedCamelContext.getContextPlugin(ComponentNameResolver.class);
+    }
 }