Package org.apache.camel.impl.engine
Class DefaultCamelBeanPostProcessor
- java.lang.Object
-
- org.apache.camel.impl.engine.DefaultCamelBeanPostProcessor
-
- All Implemented Interfaces:
org.apache.camel.spi.CamelBeanPostProcessor
public class DefaultCamelBeanPostProcessor extends Object implements org.apache.camel.spi.CamelBeanPostProcessor
A bean post processor which implements the Bean Integration features in Camel. Features such as the Bean Injection of objects likeEndpoint
andProducerTemplate
together with support for POJO Consuming via theConsume
annotation along with POJO Producing via theProduce
annotation along with other annotations such asDynamicRouter
for creating a Dynamic router via annotations.RecipientList
for creating a Recipient List router via annotations.RoutingSlip
for creating a Routing Slip router via annotations. Components such as camel-spring, and camel-blueprint can leverage this post processor to hook in Camel bean post processing into their bean processing framework.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.camel.CamelContext
camelContext
protected CamelPostProcessorHelper
camelPostProcessorHelper
protected static org.slf4j.Logger
LOG
-
Constructor Summary
Constructors Constructor Description DefaultCamelBeanPostProcessor()
DefaultCamelBeanPostProcessor(org.apache.camel.CamelContext camelContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
bindToRegistrySupported()
Whether support for the annotationBindToRegistry
is supported.protected boolean
canPostProcessBean(Object bean, String beanName)
protected boolean
canSetCamelContext(Object bean, String beanName)
org.apache.camel.CamelContext
getOrLookupCamelContext()
Strategy to get theCamelContext
to use.CamelPostProcessorHelper
getPostProcessorHelper()
Strategy to get theCamelPostProcessorHelper
protected void
injectBindToRegistryFields(Object bean, String beanName, Function<Class,Boolean> accept)
protected void
injectBindToRegistryMethods(Object bean, String beanName, Function<Class,Boolean> accept)
protected void
injectClass(Object bean, String beanName)
void
injectField(Field field, String endpointUri, String endpointProperty, Object bean, String beanName)
void
injectField(Field field, String endpointUri, String endpointProperty, Object bean, String beanName, boolean binding)
void
injectFieldBean(Field field, String name, Object bean, String beanName)
void
injectFieldBeanConfig(Field field, String name, Object bean, String beanName)
void
injectFieldProperty(Field field, String propertyName, String propertyDefaultValue, Object bean, String beanName)
protected void
injectFields(Object bean, String beanName, Function<Class,Boolean> accept)
protected void
injectFirstPass(Object bean, String beanName, Function<Class,Boolean> filter)
protected void
injectMethods(Object bean, String beanName, Function<Class,Boolean> accept)
protected void
injectNestedClasses(Object bean, String beanName)
protected void
injectSecondPass(Object bean, String beanName, Function<Class,Boolean> filter)
Object
postProcessAfterInitialization(Object bean, String beanName)
Object
postProcessBeforeInitialization(Object bean, String beanName)
void
setterBeanConfigInjection(Method method, String name, Object bean, String beanName)
void
setterBeanInjection(Method method, String name, Object bean, String beanName)
protected void
setterInjection(Method method, Object bean, String beanName)
void
setterInjection(Method method, Object bean, String beanName, String endpointUri, String endpointProperty)
void
setterPropertyInjection(Method method, String propertyValue, String propertyDefaultValue, Object bean, String beanName)
-
-
-
Field Detail
-
LOG
protected static final org.slf4j.Logger LOG
-
camelPostProcessorHelper
protected CamelPostProcessorHelper camelPostProcessorHelper
-
camelContext
protected org.apache.camel.CamelContext camelContext
-
-
Method Detail
-
postProcessBeforeInitialization
public Object postProcessBeforeInitialization(Object bean, String beanName) throws Exception
- Specified by:
postProcessBeforeInitialization
in interfaceorg.apache.camel.spi.CamelBeanPostProcessor
- Throws:
Exception
-
postProcessAfterInitialization
public Object postProcessAfterInitialization(Object bean, String beanName) throws Exception
- Specified by:
postProcessAfterInitialization
in interfaceorg.apache.camel.spi.CamelBeanPostProcessor
- Throws:
Exception
-
getOrLookupCamelContext
public org.apache.camel.CamelContext getOrLookupCamelContext()
Strategy to get theCamelContext
to use.
-
getPostProcessorHelper
public CamelPostProcessorHelper getPostProcessorHelper()
Strategy to get theCamelPostProcessorHelper
-
bindToRegistrySupported
protected boolean bindToRegistrySupported()
Whether support for the annotationBindToRegistry
is supported. This is only intended for standalone runtimes such as camel-main, camel-quarkus, etc.
-
injectFirstPass
protected void injectFirstPass(Object bean, String beanName, Function<Class,Boolean> filter)
-
injectSecondPass
protected void injectSecondPass(Object bean, String beanName, Function<Class,Boolean> filter)
-
injectFields
protected void injectFields(Object bean, String beanName, Function<Class,Boolean> accept)
-
injectBindToRegistryFields
protected void injectBindToRegistryFields(Object bean, String beanName, Function<Class,Boolean> accept)
-
injectField
public void injectField(Field field, String endpointUri, String endpointProperty, Object bean, String beanName)
-
injectField
public void injectField(Field field, String endpointUri, String endpointProperty, Object bean, String beanName, boolean binding)
-
injectFieldBean
public void injectFieldBean(Field field, String name, Object bean, String beanName)
-
injectFieldBeanConfig
public void injectFieldBeanConfig(Field field, String name, Object bean, String beanName)
-
injectFieldProperty
public void injectFieldProperty(Field field, String propertyName, String propertyDefaultValue, Object bean, String beanName)
-
injectMethods
protected void injectMethods(Object bean, String beanName, Function<Class,Boolean> accept)
-
injectBindToRegistryMethods
protected void injectBindToRegistryMethods(Object bean, String beanName, Function<Class,Boolean> accept)
-
setterInjection
public void setterInjection(Method method, Object bean, String beanName, String endpointUri, String endpointProperty)
-
setterPropertyInjection
public void setterPropertyInjection(Method method, String propertyValue, String propertyDefaultValue, Object bean, String beanName)
-
setterBeanInjection
public void setterBeanInjection(Method method, String name, Object bean, String beanName)
-
-