diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
index f29c72e95a..41d50c2609 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
@@ -292,6 +292,7 @@ class FrameworkExtension extends Extension
$container->removeDefinition('console.command.messenger_failed_messages_retry');
$container->removeDefinition('console.command.messenger_failed_messages_show');
$container->removeDefinition('console.command.messenger_failed_messages_remove');
+ $container->removeDefinition('cache.messenger.restart_workers_signal');
}
$propertyInfoEnabled = $this->isConfigEnabled($container, $config['property_info']);
diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd
index 69deb492a2..14ed3913b6 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd
@@ -414,6 +414,7 @@
+
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_disabled.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_disabled.php
new file mode 100644
index 0000000000..e02542d977
--- /dev/null
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_disabled.php
@@ -0,0 +1,5 @@
+loadFromExtension('framework', [
+ 'messenger' => false,
+]);
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_disabled.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_disabled.xml
new file mode 100644
index 0000000000..6f57398b30
--- /dev/null
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_disabled.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_disabled.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_disabled.yml
new file mode 100644
index 0000000000..1b2d2d1a4f
--- /dev/null
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_disabled.yml
@@ -0,0 +1,2 @@
+framework:
+ messenger: false
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
index 45a3c02e76..33751dbf2d 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
@@ -659,9 +659,23 @@ abstract class FrameworkExtensionTest extends TestCase
$this->assertTrue($container->hasDefinition('web_link.add_link_header_listener'));
}
+ public function testMessengerServicesRemovedWhenDisabled()
+ {
+ $container = $this->createContainerFromFile('messenger_disabled');
+ $this->assertFalse($container->hasDefinition('console.command.messenger_consume_messages'));
+ $this->assertFalse($container->hasDefinition('console.command.messenger_debug'));
+ $this->assertFalse($container->hasDefinition('console.command.messenger_stop_workers'));
+ $this->assertFalse($container->hasDefinition('console.command.messenger_setup_transports'));
+ $this->assertFalse($container->hasDefinition('console.command.messenger_failed_messages_retry'));
+ $this->assertFalse($container->hasDefinition('console.command.messenger_failed_messages_show'));
+ $this->assertFalse($container->hasDefinition('console.command.messenger_failed_messages_remove'));
+ $this->assertFalse($container->hasDefinition('cache.messenger.restart_workers_signal'));
+ }
+
public function testMessenger()
{
$container = $this->createContainerFromFile('messenger');
+ $this->assertTrue($container->hasDefinition('console.command.messenger_consume_messages'));
$this->assertTrue($container->hasAlias('message_bus'));
$this->assertTrue($container->getAlias('message_bus')->isPublic());
$this->assertTrue($container->hasAlias('messenger.default_bus'));