Class DefaultCamelBeanPostProcessor

java.lang.Object
org.apache.camel.impl.engine.DefaultCamelBeanPostProcessor
All Implemented Interfaces:
org.apache.camel.CamelContextAware, org.apache.camel.spi.CamelBeanPostProcessor, org.apache.camel.spi.HasCamelContext

public class DefaultCamelBeanPostProcessor extends Object implements org.apache.camel.spi.CamelBeanPostProcessor, org.apache.camel.CamelContextAware
A bean post processor which implements the Bean Integration features in Camel. Features such as the Bean Injection of objects like Endpoint and ProducerTemplate together with support for POJO Consuming via the Consume annotation along with POJO Producing via the Produce annotation along with other annotations such as DynamicRouter 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 or camel-blueprint can leverage this post processor to hook in Camel bean post processing into their bean processing framework.

  • Field Details

    • LOG

      protected static final org.slf4j.Logger LOG
    • beanPostProcessorInjectors

      protected final List<org.apache.camel.spi.CamelBeanPostProcessorInjector> beanPostProcessorInjectors
    • camelPostProcessorHelper

      protected CamelPostProcessorHelper camelPostProcessorHelper
    • camelContext

      protected org.apache.camel.CamelContext camelContext
    • enabled

      protected boolean enabled
    • unbindEnabled

      protected boolean unbindEnabled
  • Constructor Details

    • DefaultCamelBeanPostProcessor

      public DefaultCamelBeanPostProcessor()
    • DefaultCamelBeanPostProcessor

      public DefaultCamelBeanPostProcessor(org.apache.camel.CamelContext camelContext)
  • Method Details

    • getCamelContext

      public org.apache.camel.CamelContext getCamelContext()
      Specified by:
      getCamelContext in interface org.apache.camel.spi.HasCamelContext
    • setCamelContext

      public void setCamelContext(org.apache.camel.CamelContext camelContext)
      Specified by:
      setCamelContext in interface org.apache.camel.CamelContextAware
    • setEnabled

      public void setEnabled(boolean enabled)
      Specified by:
      setEnabled in interface org.apache.camel.spi.CamelBeanPostProcessor
    • isEnabled

      public boolean isEnabled()
      Specified by:
      isEnabled in interface org.apache.camel.spi.CamelBeanPostProcessor
    • isUnbindEnabled

      public boolean isUnbindEnabled()
      Specified by:
      isUnbindEnabled in interface org.apache.camel.spi.CamelBeanPostProcessor
    • setUnbindEnabled

      public void setUnbindEnabled(boolean unbindEnabled)
      Specified by:
      setUnbindEnabled in interface org.apache.camel.spi.CamelBeanPostProcessor
    • addCamelBeanPostProjectInjector

      public void addCamelBeanPostProjectInjector(org.apache.camel.spi.CamelBeanPostProcessorInjector injector)
      Specified by:
      addCamelBeanPostProjectInjector in interface org.apache.camel.spi.CamelBeanPostProcessor
    • postProcessBeforeInitialization

      public Object postProcessBeforeInitialization(Object bean, String beanName) throws Exception
      Specified by:
      postProcessBeforeInitialization in interface org.apache.camel.spi.CamelBeanPostProcessor
      Throws:
      Exception
    • postProcessAfterInitialization

      public Object postProcessAfterInitialization(Object bean, String beanName) throws Exception
      Specified by:
      postProcessAfterInitialization in interface org.apache.camel.spi.CamelBeanPostProcessor
      Throws:
      Exception
    • getOrLookupCamelContext

      public org.apache.camel.CamelContext getOrLookupCamelContext()
      Strategy to get the CamelContext to use.
    • getPostProcessorHelper

      public CamelPostProcessorHelper getPostProcessorHelper()
      Strategy to get the CamelPostProcessorHelper
    • canPostProcessBean

      protected boolean canPostProcessBean(Object bean, String beanName)
    • bindToRegistrySupported

      protected boolean bindToRegistrySupported()
      Whether support for the annotation BindToRegistry is supported. This is only intended for standalone runtimes such as camel-main, camel-quarkus, etc.
    • canSetCamelContext

      protected boolean canSetCamelContext(Object bean, String beanName)
    • injectCamelContextPass

      protected void injectCamelContextPass(Object bean, String beanName)
    • injectFirstPass

      protected void injectFirstPass(Object bean, String beanName, Function<Class<?>,Boolean> filter)
    • injectSecondPass

      protected void injectSecondPass(Object bean, String beanName, Function<Class<?>,Boolean> filter)
    • injectEndpointFields

      protected void injectEndpointFields(Object bean, String beanName, Function<Class<?>,Boolean> accept)
    • 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)
    • injectClass

      protected void injectClass(Object bean, String beanName)
    • injectNestedClasses

      protected void injectNestedClasses(Object bean, String beanName)
    • setterInjection

      protected void setterInjection(Method method, Object bean, String beanName)
    • 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)
    • setterBeanConfigInjection

      public void setterBeanConfigInjection(Method method, String name, Object bean, String beanName)