Class RabbitChannelDefinitionProcessor

  • All Implemented Interfaces:
    EventListener, org.flowable.eventregistry.api.ChannelModelProcessor, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>

    public class RabbitChannelDefinitionProcessor
    extends Object
    implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>, org.flowable.eventregistry.api.ChannelModelProcessor
    Author:
    Filip Hrisafov
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canProcess​(org.flowable.eventregistry.model.ChannelModel channelModel)  
      boolean canProcessIfChannelModelAlreadyRegistered​(org.flowable.eventregistry.model.ChannelModel channelModel)  
      protected org.springframework.amqp.core.MessageListener createMessageListener​(org.flowable.eventregistry.api.EventRegistry eventRegistry, org.flowable.eventregistry.model.InboundChannelModel inboundChannelModel)  
      protected org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint createRabbitListenerEndpoint​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelModel, String tenantId, org.flowable.eventregistry.api.EventRegistry eventRegistry)  
      org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> getContainerFactory()  
      String getContainerFactoryBeanName()  
      protected String getEndpointId​(org.flowable.eventregistry.model.ChannelModel channelModel, String tenantId)  
      org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry getEndpointRegistry()  
      org.springframework.amqp.rabbit.core.RabbitOperations getRabbitOperations()  
      void onApplicationEvent​(org.springframework.context.event.ContextRefreshedEvent event)  
      protected void processOutboundDefinition​(org.flowable.eventregistry.model.RabbitOutboundChannelModel channelDefinition)  
      void registerChannelModel​(org.flowable.eventregistry.model.ChannelModel channelModel, String tenantId, org.flowable.eventregistry.api.EventRegistry eventRegistry, org.flowable.eventregistry.api.EventRepositoryService eventRepositoryService, boolean fallbackToDefaultTenant)  
      protected void registerEndpoint​(org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint endpoint, org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> factory)
      Register a new RabbitListenerEndpoint alongside the RabbitListenerContainerFactory to use to create the underlying container.
      protected String resolve​(String value)  
      protected org.springframework.amqp.core.AcknowledgeMode resolveAckMode​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)  
      protected org.springframework.amqp.rabbit.core.RabbitAdmin resolveAdmin​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)  
      protected org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> resolveContainerFactory​(org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint endpoint, org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> containerFactory)  
      protected org.springframework.core.task.TaskExecutor resolveExecutor​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)  
      protected Object resolveExpression​(String value)  
      protected String resolveExpressionAsStringOrInteger​(String value, String attribute)  
      protected Integer resolvePriority​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)  
      protected void resolveQueues​(Object resolvedValue, List<String> result, org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)  
      protected String[] resolveQueues​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)  
      void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)  
      void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)  
      void setContainerFactory​(org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> containerFactory)  
      void setContainerFactoryBeanName​(String containerFactoryBeanName)  
      void setEndpointRegistry​(org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry endpointRegistry)  
      void setRabbitOperations​(org.springframework.amqp.rabbit.core.RabbitOperations rabbitOperations)  
      void unregisterChannelModel​(org.flowable.eventregistry.model.ChannelModel channelModel, String tenantId, org.flowable.eventregistry.api.EventRepositoryService eventRepositoryService)  
    • Field Detail

      • logger

        protected final org.slf4j.Logger logger
      • endpointRegistry

        protected org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry endpointRegistry
      • containerFactoryBeanName

        protected String containerFactoryBeanName
      • rabbitOperations

        protected org.springframework.amqp.rabbit.core.RabbitOperations rabbitOperations
      • containerFactory

        protected org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> containerFactory
      • beanFactory

        protected org.springframework.beans.factory.BeanFactory beanFactory
      • applicationContext

        protected org.springframework.context.ApplicationContext applicationContext
      • contextRefreshed

        protected boolean contextRefreshed
      • objectMapper

        protected com.fasterxml.jackson.databind.ObjectMapper objectMapper
      • resolver

        protected org.springframework.beans.factory.config.BeanExpressionResolver resolver
      • embeddedValueResolver

        protected org.springframework.util.StringValueResolver embeddedValueResolver
      • expressionContext

        protected org.springframework.beans.factory.config.BeanExpressionContext expressionContext
    • Constructor Detail

      • RabbitChannelDefinitionProcessor

        public RabbitChannelDefinitionProcessor​(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    • Method Detail

      • canProcess

        public boolean canProcess​(org.flowable.eventregistry.model.ChannelModel channelModel)
        Specified by:
        canProcess in interface org.flowable.eventregistry.api.ChannelModelProcessor
      • canProcessIfChannelModelAlreadyRegistered

        public boolean canProcessIfChannelModelAlreadyRegistered​(org.flowable.eventregistry.model.ChannelModel channelModel)
        Specified by:
        canProcessIfChannelModelAlreadyRegistered in interface org.flowable.eventregistry.api.ChannelModelProcessor
      • registerChannelModel

        public void registerChannelModel​(org.flowable.eventregistry.model.ChannelModel channelModel,
                                         String tenantId,
                                         org.flowable.eventregistry.api.EventRegistry eventRegistry,
                                         org.flowable.eventregistry.api.EventRepositoryService eventRepositoryService,
                                         boolean fallbackToDefaultTenant)
        Specified by:
        registerChannelModel in interface org.flowable.eventregistry.api.ChannelModelProcessor
      • createRabbitListenerEndpoint

        protected org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint createRabbitListenerEndpoint​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelModel,
                                                                                                               String tenantId,
                                                                                                               org.flowable.eventregistry.api.EventRegistry eventRegistry)
      • processOutboundDefinition

        protected void processOutboundDefinition​(org.flowable.eventregistry.model.RabbitOutboundChannelModel channelDefinition)
      • resolveExpressionAsStringOrInteger

        protected String resolveExpressionAsStringOrInteger​(String value,
                                                            String attribute)
      • resolveQueues

        protected String[] resolveQueues​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)
      • resolveQueues

        protected void resolveQueues​(Object resolvedValue,
                                     List<String> result,
                                     org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)
      • resolvePriority

        protected Integer resolvePriority​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)
      • resolveAdmin

        protected org.springframework.amqp.rabbit.core.RabbitAdmin resolveAdmin​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)
      • resolveAckMode

        protected org.springframework.amqp.core.AcknowledgeMode resolveAckMode​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)
      • resolveExecutor

        protected org.springframework.core.task.TaskExecutor resolveExecutor​(org.flowable.eventregistry.model.RabbitInboundChannelModel channelDefinition)
      • resolveExpression

        protected Object resolveExpression​(String value)
      • createMessageListener

        protected org.springframework.amqp.core.MessageListener createMessageListener​(org.flowable.eventregistry.api.EventRegistry eventRegistry,
                                                                                      org.flowable.eventregistry.model.InboundChannelModel inboundChannelModel)
      • unregisterChannelModel

        public void unregisterChannelModel​(org.flowable.eventregistry.model.ChannelModel channelModel,
                                           String tenantId,
                                           org.flowable.eventregistry.api.EventRepositoryService eventRepositoryService)
        Specified by:
        unregisterChannelModel in interface org.flowable.eventregistry.api.ChannelModelProcessor
      • registerEndpoint

        protected void registerEndpoint​(org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint endpoint,
                                        org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> factory)
        Register a new RabbitListenerEndpoint alongside the RabbitListenerContainerFactory to use to create the underlying container.

        The factory may be null if the default factory has to be used for that endpoint.

      • resolveContainerFactory

        protected org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> resolveContainerFactory​(org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint endpoint,
                                                                                                                     org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> containerFactory)
      • getEndpointId

        protected String getEndpointId​(org.flowable.eventregistry.model.ChannelModel channelModel,
                                       String tenantId)
      • setBeanFactory

        public void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)
                            throws org.springframework.beans.BeansException
        Specified by:
        setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
        Throws:
        org.springframework.beans.BeansException
      • setApplicationContext

        public void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)
                                   throws org.springframework.beans.BeansException
        Specified by:
        setApplicationContext in interface org.springframework.context.ApplicationContextAware
        Throws:
        org.springframework.beans.BeansException
      • onApplicationEvent

        public void onApplicationEvent​(org.springframework.context.event.ContextRefreshedEvent event)
        Specified by:
        onApplicationEvent in interface org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>
      • getRabbitOperations

        public org.springframework.amqp.rabbit.core.RabbitOperations getRabbitOperations()
      • setRabbitOperations

        public void setRabbitOperations​(org.springframework.amqp.rabbit.core.RabbitOperations rabbitOperations)
      • getEndpointRegistry

        public org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry getEndpointRegistry()
      • setEndpointRegistry

        public void setEndpointRegistry​(org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry endpointRegistry)
      • getContainerFactoryBeanName

        public String getContainerFactoryBeanName()
      • setContainerFactoryBeanName

        public void setContainerFactoryBeanName​(String containerFactoryBeanName)
      • getContainerFactory

        public org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> getContainerFactory()
      • setContainerFactory

        public void setContainerFactory​(org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory<?> containerFactory)