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:49 UTC
[camel] 03/06: CAMEL-15105: make the CamelBeanPostProcessor 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 f95d2cb9d0c7e4aeeeb0e82aff15f8f607609c19
Author: Otavio Rodolfo Piske <an...@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());
}
}