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 f95d2cb9d0c7e4aeeeb0e82aff15f8f607609c19 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Thu Mar 30 16:44:07 2023 +0200 CAMEL-15105: make the CamelBeanPostProcessor a plugin of the context --- .../camel/spring/xml/CamelContextFactoryBean.java | 4 ++-- .../org/apache/camel/test/junit5/CamelTestSupport.java | 5 +++-- .../camel/test/main/junit5/CamelMainContext.java | 3 ++- .../java/org/apache/camel/ExtendedCamelContext.java | 13 ------------- .../apache/camel/impl/engine/AbstractCamelContext.java | 13 +++---------- .../impl/engine/DefaultCamelContextExtension.java | 18 ------------------ .../DefaultDependencyInjectionAnnotationFactory.java | 10 ++++++---- .../org/apache/camel/impl/engine/DefaultInjector.java | 3 ++- .../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------ .../impl/lw/LightweightCamelContextExtension.java | 11 ----------- .../core/xml/AbstractCamelContextFactoryBean.java | 3 ++- .../core/xml/AbstractCamelContextFactoryBeanTest.java | 3 ++- .../camel/impl/BeanInjectProducerTemplateTest.java | 3 ++- .../apache/camel/impl/BeanInjectRouteBuilderTest.java | 3 ++- .../impl/BindToRegistryBeanPostProcessorTest.java | 3 ++- .../camel/impl/CamelBeanPostProcessorInjectorTest.java | 3 ++- .../impl/CamelProduceInterfaceEventNotifierTest.java | 3 ++- .../DefaultCamelBeanPostProcessorFieldFirstTest.java | 3 ++- .../camel/impl/DefaultCamelBeanPostProcessorTest.java | 3 ++- .../java/org/apache/camel/main/BaseMainSupport.java | 7 ++++--- .../camel/main/DefaultConfigurationConfigurer.java | 3 ++- .../main/download/BasePackageScanDownloadListener.java | 3 ++- .../main/injection/AnnotationDependencyInjection.java | 7 ++++--- .../test/infra/core/AbstractCamelContextExtension.java | 5 +++-- 24 files changed, 51 insertions(+), 87 deletions(-) diff --git a/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/CamelContextFactoryBean.java b/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/CamelContextFactoryBean.java index 7a359740a51..33d2373355a 100644 --- a/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/CamelContextFactoryBean.java +++ b/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/CamelContextFactoryBean.java @@ -348,8 +348,8 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr } // register the bean post processor on camel context if (beanPostProcessor instanceof org.apache.camel.spi.CamelBeanPostProcessor) { - context.getCamelContextExtension() - .setBeanPostProcessor((org.apache.camel.spi.CamelBeanPostProcessor) beanPostProcessor); + context.getCamelContextExtension().addContextPlugin(org.apache.camel.spi.CamelBeanPostProcessor.class, + (org.apache.camel.spi.CamelBeanPostProcessor) beanPostProcessor); } } } diff --git a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java index d71ef6221e0..9d709d99ad7 100644 --- a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java +++ b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java @@ -58,6 +58,7 @@ import org.apache.camel.spi.PropertiesSource; import org.apache.camel.spi.Registry; import org.apache.camel.support.BreakpointSupport; import org.apache.camel.support.EndpointHelper; +import org.apache.camel.support.PluginHelper; import org.apache.camel.test.CamelRouteCoverageDumper; import org.apache.camel.util.StopWatch; import org.apache.camel.util.StringHelper; @@ -690,9 +691,9 @@ public abstract class CamelTestSupport boolean spring = hasClassAnnotation("org.springframework.boot.test.context.SpringBootTest", "org.springframework.context.annotation.ComponentScan"); if (!spring) { - context.getCamelContextExtension().getBeanPostProcessor().postProcessBeforeInitialization(this, + PluginHelper.getBeanPostProcessor(context).postProcessBeforeInitialization(this, getClass().getName()); - context.getCamelContextExtension().getBeanPostProcessor().postProcessAfterInitialization(this, + PluginHelper.getBeanPostProcessor(context).postProcessAfterInitialization(this, getClass().getName()); } } diff --git a/components/camel-test/camel-test-main-junit5/src/main/java/org/apache/camel/test/main/junit5/CamelMainContext.java b/components/camel-test/camel-test-main-junit5/src/main/java/org/apache/camel/test/main/junit5/CamelMainContext.java index bc8c4d4f1df..35cc608d618 100644 --- a/components/camel-test/camel-test-main-junit5/src/main/java/org/apache/camel/test/main/junit5/CamelMainContext.java +++ b/components/camel-test/camel-test-main-junit5/src/main/java/org/apache/camel/test/main/junit5/CamelMainContext.java @@ -40,6 +40,7 @@ import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.Registry; import org.apache.camel.support.BreakpointSupport; +import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.support.HierarchyTraversalMode; @@ -148,7 +149,7 @@ final class CamelMainContext implements ExtensionContext.Store.CloseableResource configureShutdownTimeout(camelContext); configureDebuggerIfNeeded(camelContext); initCamelContext(camelContext); - final CamelBeanPostProcessor beanPostProcessor = extendedCamelContext.getBeanPostProcessor(); + final CamelBeanPostProcessor beanPostProcessor = PluginHelper.getBeanPostProcessor(extendedCamelContext); for (Object instance : instances) { initInstance(beanPostProcessor, instance); replaceBeansInRegistry(camelContext.getRegistry(), instance); 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 faccf2112d4..a0f73453a80 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.CamelBeanPostProcessor; import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory; import org.apache.camel.spi.ComponentNameResolver; import org.apache.camel.spi.ComponentResolver; @@ -270,18 +269,6 @@ public interface ExtendedCamelContext { */ void setProcessorExchangeFactory(ProcessorExchangeFactory processorExchangeFactory); - /** - * Returns the bean post processor used to do any bean customization. - * - * @return the bean post processor. - */ - CamelBeanPostProcessor getBeanPostProcessor(); - - /** - * Sets a custom bean post processor to use. - */ - void setBeanPostProcessor(CamelBeanPostProcessor beanPostProcessor); - /** * Returns the annotation dependency injection factory. */ 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 4440b794930..1b61b6019f1 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 CamelBeanPostProcessor beanPostProcessor; volatile CamelDependencyInjectionAnnotationFactory dependencyInjectionAnnotationFactory; volatile ComponentResolver componentResolver; volatile ComponentNameResolver componentNameResolver; @@ -384,6 +383,8 @@ public abstract class AbstractCamelContext extends BaseService this.internalServiceManager = new InternalServiceManager(this, internalRouteStartupManager, startupListeners); + camelContextExtension.addContextPlugin(CamelBeanPostProcessor.class, createBeanPostProcessor()); + if (build) { try { build(); @@ -2652,7 +2653,7 @@ public abstract class AbstractCamelContext extends BaseService } protected void doStartCamel() throws Exception { - if (!camelContextExtension.getBeanPostProcessor().isEnabled()) { + if (!camelContextExtension.getContextPlugin(CamelBeanPostProcessor.class).isEnabled()) { LOG.info("BeanPostProcessor is disabled. Dependency injection of Camel annotations in beans is not supported."); } if (LOG.isDebugEnabled()) { @@ -4170,14 +4171,6 @@ public abstract class AbstractCamelContext extends BaseService camelContextExtension.setProcessorExchangeFactory(processorExchangeFactory); } - public CamelBeanPostProcessor getBeanPostProcessor() { - return camelContextExtension.getBeanPostProcessor(); - } - - public void setBeanPostProcessor(CamelBeanPostProcessor beanPostProcessor) { - camelContextExtension.setBeanPostProcessor(beanPostProcessor); - } - public void setDataFormatResolver(DataFormatResolver dataFormatResolver) { camelContextExtension.setDataFormatResolver(dataFormatResolver); } 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 de7e1b81270..957a688daf9 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.CamelBeanPostProcessor; import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory; import org.apache.camel.spi.ComponentNameResolver; import org.apache.camel.spi.ComponentResolver; @@ -246,23 +245,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext { return text; } - @Override - public CamelBeanPostProcessor getBeanPostProcessor() { - if (camelContext.beanPostProcessor == null) { - synchronized (camelContext.lock) { - if (camelContext.beanPostProcessor == null) { - setBeanPostProcessor(camelContext.createBeanPostProcessor()); - } - } - } - return camelContext.beanPostProcessor; - } - - @Override - public void setBeanPostProcessor(CamelBeanPostProcessor beanPostProcessor) { - camelContext.beanPostProcessor = camelContext.getInternalServiceManager().addService(beanPostProcessor); - } - @Override public CamelDependencyInjectionAnnotationFactory getDependencyInjectionAnnotationFactory() { if (camelContext.dependencyInjectionAnnotationFactory == null) { diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java index 267bd2c7133..a2b6fced400 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java @@ -19,7 +19,9 @@ package org.apache.camel.impl.engine; import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; import org.apache.camel.RuntimeCamelException; +import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory; +import org.apache.camel.support.PluginHelper; /** * Default implementation of the {@link CamelDependencyInjectionAnnotationFactory}. @@ -48,10 +50,10 @@ public class DefaultDependencyInjectionAnnotationFactory return () -> { if (beanPostProcess) { try { - camelContext.getCamelContextExtension().getBeanPostProcessor() - .postProcessBeforeInitialization(bean, beanName); - camelContext.getCamelContextExtension().getBeanPostProcessor() - .postProcessAfterInitialization(bean, beanName); + final CamelBeanPostProcessor beanPostProcessor = PluginHelper.getBeanPostProcessor(camelContext); + + beanPostProcessor.postProcessBeforeInitialization(bean, beanName); + beanPostProcessor.postProcessAfterInitialization(bean, beanName); } catch (Exception e) { throw RuntimeCamelException.wrapRuntimeException(e); } diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java index e7133a999dc..2b4b47cdf01 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java @@ -25,6 +25,7 @@ import org.apache.camel.RuntimeCamelException; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.Injector; import org.apache.camel.support.ObjectHelper; +import org.apache.camel.support.PluginHelper; /** * A default implementation of {@link Injector} which just uses reflection to instantiate new objects using their zero @@ -38,7 +39,7 @@ public class DefaultInjector implements Injector { public DefaultInjector(CamelContext context) { this.camelContext = context; - this.postProcessor = context.getCamelContextExtension().getBeanPostProcessor(); + this.postProcessor = PluginHelper.getBeanPostProcessor(camelContext); } @Override 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 699c2707cf3..b31d6e5e66e 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 "beanpostprocessor": - case "BeanPostProcessor": target.setBeanPostProcessor(property(camelContext, org.apache.camel.spi.CamelBeanPostProcessor.class, value)); return true; case "bootstrapconfigurerresolver": case "BootstrapConfigurerResolver": target.setBootstrapConfigurerResolver(property(camelContext, org.apache.camel.spi.ConfigurerResolver.class, value)); return true; case "bootstrapfactoryfinder": @@ -128,8 +126,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 "beanpostprocessor": - case "BeanPostProcessor": return org.apache.camel.spi.CamelBeanPostProcessor.class; case "bootstrapconfigurerresolver": case "BootstrapConfigurerResolver": return org.apache.camel.spi.ConfigurerResolver.class; case "bootstrapfactoryfinder": @@ -228,8 +224,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "BasePackageScan": return target.getBasePackageScan(); case "beanintrospection": case "BeanIntrospection": return target.getBeanIntrospection(); - case "beanpostprocessor": - case "BeanPostProcessor": return target.getBeanPostProcessor(); case "bootstrapconfigurerresolver": case "BootstrapConfigurerResolver": return target.getBootstrapConfigurerResolver(); case "bootstrapfactoryfinder": 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 fa436742ee0..b6141635ab2 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.CamelBeanPostProcessor; import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory; import org.apache.camel.spi.ComponentNameResolver; import org.apache.camel.spi.ComponentResolver; @@ -290,16 +289,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext { throw new UnsupportedOperationException(); } - @Override - public CamelBeanPostProcessor getBeanPostProcessor() { - return camelContext.getCamelContextExtension().getBeanPostProcessor(); - } - - @Override - public void setBeanPostProcessor(CamelBeanPostProcessor beanPostProcessor) { - throw new UnsupportedOperationException(); - } - @Override public CamelDependencyInjectionAnnotationFactory getDependencyInjectionAnnotationFactory() { return camelContext.getCamelContextExtension().getDependencyInjectionAnnotationFactory(); diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java index 4d2b6bf21ed..6fdcd4a98ff 100644 --- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java +++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java @@ -142,6 +142,7 @@ import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.ObjectHelper; import org.apache.camel.support.OrderedComparator; import org.apache.camel.support.PatternHelper; +import org.apache.camel.support.PluginHelper; import org.apache.camel.util.StringHelper; import org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy; import org.slf4j.Logger; @@ -1156,7 +1157,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex context.setStartupSummaryLevel(getStartupSummaryLevel()); } if (getBeanPostProcessorEnabled() != null) { - CamelBeanPostProcessor cbpp = context.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor cbpp = PluginHelper.getBeanPostProcessor(context); if (cbpp != null) { cbpp.setEnabled(CamelContextHelper.parseBoolean(context, getBeanPostProcessorEnabled())); } diff --git a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java index 4d64a7fb048..84890b16ac5 100644 --- a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java +++ b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java @@ -136,7 +136,8 @@ public class AbstractCamelContextFactoryBeanTest { when(context.getManagementNameStrategy()).thenReturn(mock(ManagementNameStrategy.class)); when(context.getExecutorServiceManager()).thenReturn(mock(ExecutorServiceManager.class)); when(context.getInflightRepository()).thenReturn(mock(InflightRepository.class)); - when(context.getCamelContextExtension().getBeanPostProcessor()).thenReturn(mock(CamelBeanPostProcessor.class)); + when(context.getCamelContextExtension().getContextPlugin(CamelBeanPostProcessor.class)) + .thenReturn(mock(CamelBeanPostProcessor.class)); @SuppressWarnings("unchecked") final AbstractCamelContextFactoryBean<ModelCamelContext> factory = mock(AbstractCamelContextFactoryBean.class); diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectProducerTemplateTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectProducerTemplateTest.java index b0eb84fd4b3..f160de14e0a 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectProducerTemplateTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectProducerTemplateTest.java @@ -22,6 +22,7 @@ import org.apache.camel.ContextTestSupport; import org.apache.camel.FluentProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.spi.CamelBeanPostProcessor; +import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.Test; public class BeanInjectProducerTemplateTest extends ContextTestSupport { @@ -35,7 +36,7 @@ public class BeanInjectProducerTemplateTest extends ContextTestSupport { // manual post process us as ContextTestSupport in camel-core doesn't do // that out of the box - CamelBeanPostProcessor post = context.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor post = PluginHelper.getBeanPostProcessor(context); post.postProcessBeforeInitialization(this, "BeanInjectProducerTemplateTest"); post.postProcessAfterInitialization(this, "BeanInjectProducerTemplateTest"); return context; diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java index 35180d4b296..971a97a1957 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java @@ -24,6 +24,7 @@ import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.Registry; +import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.Test; public class BeanInjectRouteBuilderTest extends ContextTestSupport { @@ -44,7 +45,7 @@ public class BeanInjectRouteBuilderTest extends ContextTestSupport { // manual post process us as ContextTestSupport in camel-core doesn't do // that out of the box - CamelBeanPostProcessor post = context.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor post = PluginHelper.getBeanPostProcessor(context); post.postProcessBeforeInitialization(this, "MyRoute"); post.postProcessAfterInitialization(this, "MyRoute"); return context; diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/BindToRegistryBeanPostProcessorTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/BindToRegistryBeanPostProcessorTest.java index 54a6f84e822..77ae4cafdaa 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/BindToRegistryBeanPostProcessorTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/BindToRegistryBeanPostProcessorTest.java @@ -21,6 +21,7 @@ import org.apache.camel.BindToRegistry; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; import org.apache.camel.spi.CamelBeanPostProcessor; +import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -41,7 +42,7 @@ public class BindToRegistryBeanPostProcessorTest extends ContextTestSupport { @Test public void testPostProcessor() throws Exception { // bean post processing dont run on ContextTestSupport - CamelBeanPostProcessor cbpp = context.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor cbpp = PluginHelper.getBeanPostProcessor(context); cbpp.postProcessBeforeInitialization(this, "this"); cbpp.postProcessAfterInitialization(this, "this"); diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/CamelBeanPostProcessorInjectorTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/CamelBeanPostProcessorInjectorTest.java index 7be1629811a..349a54c98cc 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/CamelBeanPostProcessorInjectorTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/CamelBeanPostProcessorInjectorTest.java @@ -26,6 +26,7 @@ import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.CamelBeanPostProcessorInjector; import org.apache.camel.spi.CamelLogger; import org.apache.camel.support.ObjectHelper; +import org.apache.camel.support.PluginHelper; import org.apache.camel.util.ReflectionHelper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -40,7 +41,7 @@ public class CamelBeanPostProcessorInjectorTest extends ContextTestSupport { @BeforeEach public void setUp() throws Exception { super.setUp(); - postProcessor = context.getCamelContextExtension().getBeanPostProcessor(); + postProcessor = PluginHelper.getBeanPostProcessor(context); postProcessor.addCamelBeanPostProjectInjector(new MyInjector()); helper = new CamelPostProcessorHelper(context); } diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java index b72d42d0810..c3de76a5635 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java @@ -25,6 +25,7 @@ import org.apache.camel.Produce; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.CamelEvent; import org.apache.camel.support.EventNotifierSupport; +import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -81,7 +82,7 @@ public class CamelProduceInterfaceEventNotifierTest extends ContextTestSupport { @BeforeEach public void setUp() throws Exception { super.setUp(); - postProcessor = context.getCamelContextExtension().getBeanPostProcessor(); + postProcessor = PluginHelper.getBeanPostProcessor(context); } interface FooService { diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorFieldFirstTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorFieldFirstTest.java index cd2e33a822c..8e7b5df9d44 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorFieldFirstTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorFieldFirstTest.java @@ -22,6 +22,7 @@ import org.apache.camel.BindToRegistry; import org.apache.camel.ContextTestSupport; import org.apache.camel.PropertyInject; import org.apache.camel.spi.CamelBeanPostProcessor; +import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -56,7 +57,7 @@ public class DefaultCamelBeanPostProcessorFieldFirstTest extends ContextTestSupp @BeforeEach public void setUp() throws Exception { super.setUp(); - postProcessor = context.getCamelContextExtension().getBeanPostProcessor(); + postProcessor = PluginHelper.getBeanPostProcessor(context); } @BindToRegistry diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java index 3dd80b4d088..74e69fb79fa 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java @@ -22,6 +22,7 @@ import org.apache.camel.ContextTestSupport; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; import org.apache.camel.spi.CamelBeanPostProcessor; +import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -60,7 +61,7 @@ public class DefaultCamelBeanPostProcessorTest extends ContextTestSupport { @BeforeEach public void setUp() throws Exception { super.setUp(); - postProcessor = context.getCamelContextExtension().getBeanPostProcessor(); + postProcessor = PluginHelper.getBeanPostProcessor(context); } @BindToRegistry 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 af36f96e99b..73257a02a59 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 @@ -63,6 +63,7 @@ import org.apache.camel.spi.StartupStepRecorder; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.DefaultContextReloadStrategy; import org.apache.camel.support.LifecycleStrategySupport; +import org.apache.camel.support.PluginHelper; import org.apache.camel.support.PropertyBindingSupport; import org.apache.camel.support.ResourceHelper; import org.apache.camel.support.SimpleEventNotifierSupport; @@ -307,7 +308,7 @@ public abstract class BaseMainSupport extends BaseService { // lets use Camel's bean post processor on any existing configuration classes // so the instance has some support for dependency injection - CamelBeanPostProcessor postProcessor = camelContext.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor postProcessor = PluginHelper.getBeanPostProcessor(camelContext); // discover configurations from the registry Set<CamelConfiguration> registryConfigurations = camelContext.getRegistry().findByType(CamelConfiguration.class); @@ -608,7 +609,7 @@ public abstract class BaseMainSupport extends BaseService { configurer.setRoutesCollector(routesCollector); } - configurer.setBeanPostProcessor(camelContext.getCamelContextExtension().getBeanPostProcessor()); + configurer.setBeanPostProcessor(PluginHelper.getBeanPostProcessor(camelContext)); configurer.setRoutesBuilders(mainConfigurationProperties.getRoutesBuilders()); configurer.setRoutesBuilderClasses(mainConfigurationProperties.getRoutesBuilderClasses()); if (mainConfigurationProperties.isBasePackageScanEnabled()) { @@ -631,7 +632,7 @@ public abstract class BaseMainSupport extends BaseService { configurer.setRoutesCollector(routesCollector); } - configurer.setBeanPostProcessor(camelContext.getCamelContextExtension().getBeanPostProcessor()); + configurer.setBeanPostProcessor(PluginHelper.getBeanPostProcessor(camelContext)); configurer.setRoutesBuilders(mainConfigurationProperties.getRoutesBuilders()); configurer.setRoutesBuilderClasses(mainConfigurationProperties.getRoutesBuilderClasses()); if (mainConfigurationProperties.isBasePackageScanEnabled()) { diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java index 67e4bc57fff..3e33d41b02b 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java @@ -80,6 +80,7 @@ import org.apache.camel.support.ClassicUuidGenerator; import org.apache.camel.support.DefaultContextReloadStrategy; import org.apache.camel.support.DefaultUuidGenerator; import org.apache.camel.support.OffUuidGenerator; +import org.apache.camel.support.PluginHelper; import org.apache.camel.support.RouteWatcherReloadStrategy; import org.apache.camel.support.ShortUuidGenerator; import org.apache.camel.support.SimpleUuidGenerator; @@ -135,7 +136,7 @@ public final class DefaultConfigurationConfigurer { ecc.getStartupStepRecorder().setRecordingProfile(config.getStartupRecorderProfile()); ecc.setLightweight(config.isLightweight()); - ecc.getBeanPostProcessor().setEnabled(config.isBeanPostProcessorEnabled()); + PluginHelper.getBeanPostProcessor(ecc).setEnabled(config.isBeanPostProcessorEnabled()); ecc.getBeanIntrospection().setExtendedStatistics(config.isBeanIntrospectionExtendedStatistics()); if (config.getBeanIntrospectionLoggingLevel() != null) { ecc.getBeanIntrospection().setLoggingLevel(config.getBeanIntrospectionLoggingLevel()); diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/BasePackageScanDownloadListener.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/BasePackageScanDownloadListener.java index 4859389556d..2f5505e6860 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/BasePackageScanDownloadListener.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/BasePackageScanDownloadListener.java @@ -29,6 +29,7 @@ import org.apache.camel.CamelContextAware; import org.apache.camel.Configuration; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.PackageScanClassResolver; +import org.apache.camel.support.PluginHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,7 +90,7 @@ public class BasePackageScanDownloadListener implements ArtifactDownloadListener } } - CamelBeanPostProcessor postProcessor = camelContext.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor postProcessor = PluginHelper.getBeanPostProcessor(camelContext); // prepare the directly configured instances for (Object configuration : configs) { postProcessor.postProcessBeforeInitialization(configuration, configuration.getClass().getName()); diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java index 03c17071a18..9d799827994 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java @@ -40,6 +40,7 @@ import org.apache.camel.spi.CamelBeanPostProcessorInjector; import org.apache.camel.spi.CompilePostProcessor; import org.apache.camel.spi.Registry; import org.apache.camel.spi.TypeConverterRegistry; +import org.apache.camel.support.PluginHelper; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.ReflectionHelper; import org.eclipse.microprofile.config.inject.ConfigProperty; @@ -60,7 +61,7 @@ public final class AnnotationDependencyInjection { public static void initAnnotationBasedDependencyInjection(CamelContext context) { Registry registry = context.getRegistry(); - CamelBeanPostProcessor cbbp = context.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor cbbp = PluginHelper.getBeanPostProcessor(context); // camel / common registry.bind("CamelTypeConverterCompilePostProcessor", new TypeConverterCompilePostProcessor()); @@ -108,7 +109,7 @@ public final class AnnotationDependencyInjection { BindToRegistry bir = instance.getClass().getAnnotation(BindToRegistry.class); Configuration cfg = instance.getClass().getAnnotation(Configuration.class); if (bir != null || cfg != null || instance instanceof CamelConfiguration) { - CamelBeanPostProcessor bpp = camelContext.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor bpp = PluginHelper.getBeanPostProcessor(camelContext); if (bir != null && ObjectHelper.isNotEmpty(bir.value())) { name = bir.value(); } else if (cfg != null && ObjectHelper.isNotEmpty(cfg.value())) { @@ -278,7 +279,7 @@ public final class AnnotationDependencyInjection { private static void bindBean(CamelContext context, String name, Object instance, boolean postProcess) { // to support hot reloading of beans then we need to enable unbind mode in bean post processor Registry registry = context.getRegistry(); - CamelBeanPostProcessor bpp = context.getCamelContextExtension().getBeanPostProcessor(); + CamelBeanPostProcessor bpp = PluginHelper.getBeanPostProcessor(context); bpp.setUnbindEnabled(true); try { // re-bind the bean to the registry diff --git a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/AbstractCamelContextExtension.java b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/AbstractCamelContextExtension.java index 3d73fa278fd..533406ff0d9 100644 --- a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/AbstractCamelContextExtension.java +++ b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/AbstractCamelContextExtension.java @@ -19,6 +19,7 @@ package org.apache.camel.test.infra.core; import org.apache.camel.CamelContext; import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.support.PluginHelper; import org.apache.camel.test.infra.core.annotations.ContextProvider; import org.junit.jupiter.api.extension.ExtensionContext; @@ -39,9 +40,9 @@ abstract class AbstractCamelContextExtension implements CamelContextExtension { } protected void setupBeanPostProcessors(CamelContext context, Object testInstance) throws Exception { - context.getCamelContextExtension().getBeanPostProcessor().postProcessBeforeInitialization(testInstance, + PluginHelper.getBeanPostProcessor(context).postProcessBeforeInitialization(testInstance, testInstance.getClass().getName()); - context.getCamelContextExtension().getBeanPostProcessor().postProcessAfterInitialization(testInstance, + PluginHelper.getBeanPostProcessor(context).postProcessAfterInitialization(testInstance, testInstance.getClass().getName()); } }