public MethodInvokingMessageProcessor(IApplicationContext context, object targetObject, Type attribute)
     : base(context)
 {
     _targetObject = targetObject;
     _method       = FindAnnotatedMethod(targetObject, attribute);
     _messageHandlerMethodFactory = ConfigureMessageHandlerFactory();
     _invocableHandlerMethod      = _messageHandlerMethodFactory.CreateInvocableHandlerMethod(_targetObject, _method);
 }
 public MethodInvokingMessageProcessor(IApplicationContext context, object targetObject, MethodInfo method)
     : base(context)
 {
     _targetObject = targetObject;
     _method       = method;
     _messageHandlerMethodFactory = ConfigureMessageHandlerFactory();
     _invocableHandlerMethod      = _messageHandlerMethodFactory.CreateInvocableHandlerMethod(_targetObject, _method);
 }
Ejemplo n.º 3
0
 public RabbitListenerAttributeProcessor(
     IApplicationContext applicationContext,
     IRabbitListenerEndpointRegistry endpointRegistry,
     IRabbitListenerEndpointRegistrar registrar,
     IMessageHandlerMethodFactory messageHandlerMethodFactory,
     IEnumerable <RabbitListenerMetadata> rabbitListeners,
     ILoggerFactory loggerFactory = null)
 {
     ApplicationContext         = applicationContext;
     EndpointRegistry           = endpointRegistry;
     registrar.EndpointRegistry = endpointRegistry;
     Registrar = registrar;
     MessageHandlerMethodFactory = messageHandlerMethodFactory;
     _rabbitListenerMetadata     = rabbitListeners.ToList();
     _loggerFactory = loggerFactory;
     _logger        = _loggerFactory?.CreateLogger <RabbitListenerAttributeProcessor>();
 }
Ejemplo n.º 4
0
        public void Initialize()
        {
            _logger?.LogDebug("RabbitListenerAttributeProcessor initializing");

            foreach (var metadata in _rabbitListenerMetadata)
            {
                var bean     = CreateTargetBean(metadata.TargetClass);
                var beanName = metadata.TargetClass.Name;
                foreach (var lm in metadata.ListenerMethods)
                {
                    foreach (var rabbitListener in lm.Attributes)
                    {
                        ProcessAmqpListener(rabbitListener, lm.Method, bean, beanName);
                    }
                }

                if (metadata.HandlerMethods.Count > 0)
                {
                    ProcessMultiMethodListeners(metadata.ClassAnnotations, metadata.HandlerMethods, bean, beanName);
                }
            }

            Registrar.ApplicationContext = ApplicationContext;
            var instances = ApplicationContext.GetServices <IRabbitListenerConfigurer>();

            foreach (var configurer in instances)
            {
                configurer.ConfigureRabbitListeners(Registrar);
            }

            if (ContainerFactoryServiceName != null)
            {
                Registrar.ContainerFactoryServiceName = ContainerFactoryServiceName;
            }

            var handlerMethodFactory = Registrar.MessageHandlerMethodFactory;

            if (handlerMethodFactory != null)
            {
                MessageHandlerMethodFactory = handlerMethodFactory;
            }

            _logger?.LogDebug("Initializing IRabbitListenerEndpointRegistrar");
            Registrar.Initialize();
        }
 public StreamListenerAttributeProcessor(
     IApplicationContext context,
     IOptionsMonitor <SpringIntegrationOptions> springIntegrationOptionsMonitor,
     IEnumerable <IStreamListenerParameterAdapter> streamListenerParameterAdapters,
     IEnumerable <IStreamListenerResultAdapter> streamListenerResultAdapters,
     IDestinationResolver <IMessageChannel> binderAwareChannelResolver,
     IMessageHandlerMethodFactory messageHandlerMethodFactory,
     IEnumerable <IStreamListenerSetupMethodOrchestrator> methodOrchestrators,
     IEnumerable <IStreamListenerMethod> methods)
 {
     _context = context;
     _springIntegrationOptionsMonitor = springIntegrationOptionsMonitor;
     _binderAwareChannelResolver      = binderAwareChannelResolver;
     _messageHandlerMethodFactory     = messageHandlerMethodFactory;
     _streamListenerMethods           = methods.ToList();
     _methodOrchestrators             = methodOrchestrators.ToList();
     _methodOrchestrators.Add(new DefaultStreamListenerSetupMethodOrchestrator(this, context, streamListenerParameterAdapters, streamListenerResultAdapters));
 }
 public RabbitListenerEndpointRegistrar(IMessageHandlerMethodFactory messageHandlerMethodFactory = null)
 {
     MessageHandlerMethodFactory = messageHandlerMethodFactory;
 }