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 138d6712f56d882500894deebd95e468de05d580 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Thu Mar 30 18:09:45 2023 +0200 CAMEL-15105: make the CamelDependencyInjectionAnnotationFactory a plugin of the context --- .../java/org/apache/camel/ExtendedCamelContext.java | 11 ----------- .../camel/impl/engine/AbstractCamelContext.java | 3 ++- .../impl/engine/DefaultCamelBeanPostProcessor.java | 11 +++++------ .../impl/engine/DefaultCamelContextExtension.java | 19 ------------------- .../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------ .../impl/lw/LightweightCamelContextExtension.java | 11 ----------- .../java/org/apache/camel/support/PluginHelper.java | 17 +++++++++++++++++ 7 files changed, 24 insertions(+), 54 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 a0f73453a80..e2317dc9fed 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.CamelDependencyInjectionAnnotationFactory; import org.apache.camel.spi.ComponentNameResolver; import org.apache.camel.spi.ComponentResolver; import org.apache.camel.spi.ConfigurerResolver; @@ -269,16 +268,6 @@ public interface ExtendedCamelContext { */ void setProcessorExchangeFactory(ProcessorExchangeFactory processorExchangeFactory); - /** - * Returns the annotation dependency injection factory. - */ - CamelDependencyInjectionAnnotationFactory getDependencyInjectionAnnotationFactory(); - - /** - * Sets a custom annotation dependency injection factory. - */ - void setDependencyInjectionAnnotationFactory(CamelDependencyInjectionAnnotationFactory factory); - /** * Returns the management mbean assembler * 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 1b61b6019f1..aa3b4cdd64c 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 @@ -212,7 +212,6 @@ public abstract class AbstractCamelContext extends BaseService volatile ProcessorExchangeFactory processorExchangeFactory; volatile ReactiveExecutor reactiveExecutor; volatile Registry registry; - volatile CamelDependencyInjectionAnnotationFactory dependencyInjectionAnnotationFactory; volatile ComponentResolver componentResolver; volatile ComponentNameResolver componentNameResolver; volatile LanguageResolver languageResolver; @@ -384,6 +383,8 @@ public abstract class AbstractCamelContext extends BaseService this.internalServiceManager = new InternalServiceManager(this, internalRouteStartupManager, startupListeners); camelContextExtension.addContextPlugin(CamelBeanPostProcessor.class, createBeanPostProcessor()); + camelContextExtension.addContextPlugin(CamelDependencyInjectionAnnotationFactory.class, + createDependencyInjectionAnnotationFactory()); if (build) { try { diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java index fcc6f914473..d2e717ad575 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java @@ -35,6 +35,7 @@ import org.apache.camel.PropertyInject; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.CamelBeanPostProcessorInjector; import org.apache.camel.support.DefaultEndpoint; +import org.apache.camel.support.PluginHelper; import org.apache.camel.util.ReflectionHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -493,8 +494,8 @@ public class DefaultCamelBeanPostProcessor implements CamelBeanPostProcessor, Ca getOrLookupCamelContext().getRegistry().unbind(name); } // use dependency injection factory to perform the task of binding the bean to registry - Runnable task = getOrLookupCamelContext().getCamelContextExtension() - .getDependencyInjectionAnnotationFactory().createBindToRegistryFactory(name, bean, beanName, beanPostProcess); + Runnable task = PluginHelper.getDependencyInjectionAnnotationFactory(getOrLookupCamelContext()) + .createBindToRegistryFactory(name, bean, beanName, beanPostProcess); task.run(); } @@ -509,8 +510,7 @@ public class DefaultCamelBeanPostProcessor implements CamelBeanPostProcessor, Ca getOrLookupCamelContext().getRegistry().unbind(name); } // use dependency injection factory to perform the task of binding the bean to registry - Runnable task = getOrLookupCamelContext().getCamelContextExtension() - .getDependencyInjectionAnnotationFactory() + Runnable task = PluginHelper.getDependencyInjectionAnnotationFactory(getOrLookupCamelContext()) .createBindToRegistryFactory(name, value, beanName, beanPostProcess); task.run(); } @@ -528,8 +528,7 @@ public class DefaultCamelBeanPostProcessor implements CamelBeanPostProcessor, Ca getOrLookupCamelContext().getRegistry().unbind(name); } // use dependency injection factory to perform the task of binding the bean to registry - Runnable task = getOrLookupCamelContext().getCamelContextExtension() - .getDependencyInjectionAnnotationFactory() + Runnable task = PluginHelper.getDependencyInjectionAnnotationFactory(getOrLookupCamelContext()) .createBindToRegistryFactory(name, value, beanName, beanPostProcess); task.run(); } 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 957a688daf9..380d702235c 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.CamelDependencyInjectionAnnotationFactory; import org.apache.camel.spi.ComponentNameResolver; import org.apache.camel.spi.ComponentResolver; import org.apache.camel.spi.ConfigurerResolver; @@ -245,24 +244,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext { return text; } - @Override - public CamelDependencyInjectionAnnotationFactory getDependencyInjectionAnnotationFactory() { - if (camelContext.dependencyInjectionAnnotationFactory == null) { - synchronized (camelContext.lock) { - if (camelContext.dependencyInjectionAnnotationFactory == null) { - setDependencyInjectionAnnotationFactory(camelContext.createDependencyInjectionAnnotationFactory()); - } - } - } - return camelContext.dependencyInjectionAnnotationFactory; - } - - @Override - public void setDependencyInjectionAnnotationFactory( - CamelDependencyInjectionAnnotationFactory dependencyInjectionAnnotationFactory) { - camelContext.dependencyInjectionAnnotationFactory = dependencyInjectionAnnotationFactory; - } - @Override public ManagementMBeanAssembler getManagementMBeanAssembler() { return camelContext.managementMBeanAssembler; 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 b31d6e5e66e..a584868bc90 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 @@ -43,8 +43,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "DataFormatResolver": target.setDataFormatResolver(property(camelContext, org.apache.camel.spi.DataFormatResolver.class, value)); return true; case "deferservicefactory": case "DeferServiceFactory": target.setDeferServiceFactory(property(camelContext, org.apache.camel.spi.DeferServiceFactory.class, value)); return true; - case "dependencyinjectionannotationfactory": - case "DependencyInjectionAnnotationFactory": target.setDependencyInjectionAnnotationFactory(property(camelContext, org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory.class, value)); return true; case "description": case "Description": target.setDescription(property(camelContext, java.lang.String.class, value)); return true; case "devconsoleresolver": @@ -140,8 +138,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "DataFormatResolver": return org.apache.camel.spi.DataFormatResolver.class; case "deferservicefactory": case "DeferServiceFactory": return org.apache.camel.spi.DeferServiceFactory.class; - case "dependencyinjectionannotationfactory": - case "DependencyInjectionAnnotationFactory": return org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory.class; case "description": case "Description": return java.lang.String.class; case "devconsoleresolver": @@ -238,8 +234,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "DataFormatResolver": return target.getDataFormatResolver(); case "deferservicefactory": case "DeferServiceFactory": return target.getDeferServiceFactory(); - case "dependencyinjectionannotationfactory": - case "DependencyInjectionAnnotationFactory": return target.getDependencyInjectionAnnotationFactory(); case "description": case "Description": return target.getDescription(); case "devconsoleresolver": 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 b6141635ab2..bd9e016d4b8 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.CamelDependencyInjectionAnnotationFactory; import org.apache.camel.spi.ComponentNameResolver; import org.apache.camel.spi.ComponentResolver; import org.apache.camel.spi.ConfigurerResolver; @@ -289,16 +288,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext { throw new UnsupportedOperationException(); } - @Override - public CamelDependencyInjectionAnnotationFactory getDependencyInjectionAnnotationFactory() { - return camelContext.getCamelContextExtension().getDependencyInjectionAnnotationFactory(); - } - - @Override - public void setDependencyInjectionAnnotationFactory(CamelDependencyInjectionAnnotationFactory factory) { - throw new UnsupportedOperationException(); - } - @Override public ManagementMBeanAssembler getManagementMBeanAssembler() { throw new UnsupportedOperationException(); 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 c9713d823d5..b18a6312719 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 @@ -20,6 +20,7 @@ package org.apache.camel.support; import org.apache.camel.CamelContext; import org.apache.camel.ExtendedCamelContext; import org.apache.camel.spi.CamelBeanPostProcessor; +import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory; public final class PluginHelper { private PluginHelper() { @@ -43,4 +44,20 @@ public final class PluginHelper { public static CamelBeanPostProcessor getBeanPostProcessor(ExtendedCamelContext extendedCamelContext) { return extendedCamelContext.getContextPlugin(CamelBeanPostProcessor.class); } + + /** + * Returns the annotation dependency injection factory. + */ + public static CamelDependencyInjectionAnnotationFactory getDependencyInjectionAnnotationFactory(CamelContext camelContext) { + return getDependencyInjectionAnnotationFactory(camelContext.getCamelContextExtension()); + + } + + /** + * Returns the annotation dependency injection factory. + */ + public static CamelDependencyInjectionAnnotationFactory getDependencyInjectionAnnotationFactory( + ExtendedCamelContext extendedCamelContext) { + return extendedCamelContext.getContextPlugin(CamelDependencyInjectionAnnotationFactory.class); + } }