diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index d41e0a97b9569..97236fdaf5d8c 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -1801,17 +1801,18 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder } $defaultMiddleware = [ - 'before' => [ - ['id' => 'add_bus_name_stamp_middleware'], - ['id' => 'reject_redelivered_message_middleware'], - ['id' => 'dispatch_after_current_bus'], - ['id' => 'failed_message_processing_middleware'], - ], + 'before' => [], 'after' => [ ['id' => 'send_message'], ['id' => 'handle_message'], ], ]; + $defaultMiddleware['before'][] = ['id' => 'add_bus_name_stamp_middleware']; + if (!$config['failure_transport']) { + $defaultMiddleware['before'][] = ['id' => 'reject_redelivered_message_middleware']; + } + $defaultMiddleware['before'][] = ['id' => 'dispatch_after_current_bus']; + $defaultMiddleware['before'][] = ['id' => 'failed_message_processing_middleware']; foreach ($config['buses'] as $busId => $bus) { $middleware = $bus['middleware']; diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_redelivery_failure_disabled.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_redelivery_failure_disabled.php new file mode 100644 index 0000000000000..7b4562510efd2 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_redelivery_failure_disabled.php @@ -0,0 +1,10 @@ +loadFromExtension('framework', [ + 'serializer' => true, + 'messenger' => [ + 'transports' => [ + 'example' => 'redis://127.0.0.1:6379/messages', + ], + ], +]); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_redelivery_failure_enabled.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_redelivery_failure_enabled.php new file mode 100644 index 0000000000000..130a428c7b316 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_redelivery_failure_enabled.php @@ -0,0 +1,12 @@ +loadFromExtension('framework', [ + 'serializer' => true, + 'messenger' => [ + 'failure_transport' => 'failed', + 'transports' => [ + 'example' => 'redis://127.0.0.1:6379/messages', + 'failed' => 'in-memory:///', + ], + ], +]); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_redelivery_failure_disabled.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_redelivery_failure_disabled.xml new file mode 100644 index 0000000000000..4f12a0bce5cf2 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_redelivery_failure_disabled.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_redelivery_failure_enabled.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_redelivery_failure_enabled.xml new file mode 100644 index 0000000000000..164e552529dd5 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_redelivery_failure_enabled.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_redelivery_failure_disabled.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_redelivery_failure_disabled.yml new file mode 100644 index 0000000000000..c4eb7f1c2f4f2 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_redelivery_failure_disabled.yml @@ -0,0 +1,4 @@ +framework: + messenger: + transports: + example: 'redis://127.0.0.1:6379/messages' diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_redelivery_failure_enabled.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_redelivery_failure_enabled.yml new file mode 100644 index 0000000000000..538a684beaa1e --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_redelivery_failure_enabled.yml @@ -0,0 +1,6 @@ +framework: + messenger: + transports: + example: 'redis://127.0.0.1:6379/messages' + failed: 'in-memory:///' + failure_transport: failed diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index d6a3bf5ae995a..6d66ede78e00d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -760,6 +760,18 @@ public function testMessengerTransports() $this->assertEquals(new Reference('messenger.transport.failed'), $container->getDefinition('messenger.failure.send_failed_message_to_failure_transport_listener')->getArgument(0)); } + public function testMessengerRedeliveryFailureTransportDisabled() + { + $container = $this->createContainerFromFile('messenger_redelivery_failure_disabled'); + $this->assertContains(['id' => 'reject_redelivered_message_middleware'], $container->getParameter('messenger.bus.default.middleware')); + } + + public function testMessengerRedeliveryFailureTransportEnabled() + { + $container = $this->createContainerFromFile('messenger_redelivery_failure_enabled'); + $this->assertNotContains(['id' => 'reject_redelivered_message_middleware'], $container->getParameter('messenger.bus.default.middleware')); + } + public function testMessengerRouting() { $container = $this->createContainerFromFile('messenger_routing'); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy