From 59f1db586c51e5dc05c055dfcbcf5acee18eb7f6 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 29 Apr 2020 19:09:23 +0200 Subject: [PATCH] Fix compat with Messenger 5.1 --- .../Compiler/WellKnownSchemaFilterPass.php | 4 ++- .../AbstractDoctrineExtensionTest.php | 1 + ...schema_filter_default_tables_messenger.xml | 2 +- ...filter_default_tables_messenger_legacy.xml | 21 ++++++++++++++++ ...ema_filter_overridden_tables_messenger.xml | 2 +- ...ter_overridden_tables_messenger_legacy.xml | 25 +++++++++++++++++++ ...schema_filter_default_tables_messenger.yml | 2 +- ...filter_default_tables_messenger_legacy.yml | 16 ++++++++++++ ...ema_filter_overridden_tables_messenger.yml | 2 +- ...ter_overridden_tables_messenger_legacy.yml | 18 +++++++++++++ 10 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger_legacy.xml create mode 100644 Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger_legacy.xml create mode 100644 Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger_legacy.yml create mode 100644 Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger_legacy.yml diff --git a/DependencyInjection/Compiler/WellKnownSchemaFilterPass.php b/DependencyInjection/Compiler/WellKnownSchemaFilterPass.php index 8680df0e6..2b9ef5a05 100644 --- a/DependencyInjection/Compiler/WellKnownSchemaFilterPass.php +++ b/DependencyInjection/Compiler/WellKnownSchemaFilterPass.php @@ -7,7 +7,8 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler; use Symfony\Component\Lock\Store\PdoStore; -use Symfony\Component\Messenger\Transport\Doctrine\Connection; +use Symfony\Component\Messenger\Transport\Doctrine\Connection as LegacyConnection; +use Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection; /** * Blacklist tables used by well-known Symfony classes. @@ -39,6 +40,7 @@ public function process(ContainerBuilder $container) $blacklist[] = $definition->getArguments()[1]['db_table'] ?? 'lock_keys'; break; + case LegacyConnection::class: case Connection::class: $blacklist[] = $definition->getArguments()[0]['table_name'] ?? 'messenger_messages'; break; diff --git a/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php b/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php index 7dae52123..d307797ba 100644 --- a/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php +++ b/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php @@ -790,6 +790,7 @@ public static function dataWellKnownSchemaFilterServices() yield ['cache', 'cache_items']; yield ['lock', 'lock_keys']; yield ['messenger', 'messenger_messages']; + yield ['messenger_legacy', 'messenger_messages']; yield ['session', 'sessions']; } diff --git a/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger.xml b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger.xml index a25dadf43..e7602d3b2 100644 --- a/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger.xml +++ b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger.xml @@ -16,6 +16,6 @@ - + diff --git a/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger_legacy.xml b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger_legacy.xml new file mode 100644 index 000000000..a25dadf43 --- /dev/null +++ b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_default_tables_messenger_legacy.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger.xml b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger.xml index eda437a57..a74ae973e 100644 --- a/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger.xml +++ b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger.xml @@ -16,7 +16,7 @@ - + app_messages diff --git a/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger_legacy.xml b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger_legacy.xml new file mode 100644 index 000000000..eda437a57 --- /dev/null +++ b/Tests/DependencyInjection/Fixtures/config/xml/well_known_schema_filter_overridden_tables_messenger_legacy.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + app_messages + + + + diff --git a/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger.yml b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger.yml index 6cc941e20..4481d63fc 100644 --- a/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger.yml +++ b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger.yml @@ -13,4 +13,4 @@ services: public: true symfony.messenger: - class: 'Symfony\Component\Messenger\Transport\Doctrine\Connection' + class: 'Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection' diff --git a/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger_legacy.yml b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger_legacy.yml new file mode 100644 index 000000000..6cc941e20 --- /dev/null +++ b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_default_tables_messenger_legacy.yml @@ -0,0 +1,16 @@ +doctrine: + dbal: + default_connection: connection1 + connections: + connection1: + schema_filter: ~^(?!t_)~ + connection2: [] + connection3: [] + +services: + well_known_filter: + alias: 'doctrine.dbal.well_known_schema_asset_filter' + public: true + + symfony.messenger: + class: 'Symfony\Component\Messenger\Transport\Doctrine\Connection' diff --git a/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger.yml b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger.yml index fb54b7c4c..9b44ec405 100644 --- a/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger.yml +++ b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger.yml @@ -13,6 +13,6 @@ services: public: true symfony.messenger: - class: 'Symfony\Component\Messenger\Transport\Doctrine\Connection' + class: 'Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection' arguments: - table_name: app_messages diff --git a/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger_legacy.yml b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger_legacy.yml new file mode 100644 index 000000000..fb54b7c4c --- /dev/null +++ b/Tests/DependencyInjection/Fixtures/config/yml/well_known_schema_filter_overridden_tables_messenger_legacy.yml @@ -0,0 +1,18 @@ +doctrine: + dbal: + default_connection: connection1 + connections: + connection1: + schema_filter: ~^(?!t_)~ + connection2: [] + connection3: [] + +services: + well_known_filter: + alias: 'doctrine.dbal.well_known_schema_asset_filter' + public: true + + symfony.messenger: + class: 'Symfony\Component\Messenger\Transport\Doctrine\Connection' + arguments: + - table_name: app_messages